はじめに
Microsoft Ignite 2019 にて行われた「Azure Databricks and Azure Machine Learning better together」のセッション内容を翻訳し、まとめたので紹介します。
本セッションと、 Microsoft Ignite2019 の動画一覧のリンクを下記に紹介します。
■本セッション動画のリンク
Azure Databricks and Azure Machine Learning better together
■Microsoft Ignite2019 動画一覧のリンク
My Ignite Session Catalog
Azure Databricks and Azure Machine Learning better together
Azure Databricks
Azure Databricks は、とてもシンプルなクラウドネイティブソリューションです。Azure Databricks には、ユーザがビジネスに集中できるよう、様々な機能や特徴が搭載してあります。

■Azure Databricks の特徴
- ユーザの生産性を高めることが可能
- セキュアなクラウド環境で構築が可能
- 自由にスケーリングが可能
Azure Machine Learning
Azure Machine Learning は、end-to-end の AI クラウドを提供するサービスです。

■Azure Machine Learning の主な特徴
- データサイエンスの生産性を向上させる環境を用意
- 実験の質を高めることが可能
- 様々な環境でモデルの構築とマネジメントが可能
Lifecycle of Machine Learning
機械学習における開発のゴールはメトリクスの最適化です。
一般的な機械学習の開発の流れは、図のようなイメージになります。

■開発の流れ
- データの準備
- モデルの最適化を目指す
- インプットするデータとパラメータの品質を高める
- 様々なソフトウェアを使用してモデルの作成
- モデルの生成
- モデルのモニタリング
機械学習の開発において、メトリクスの最適化はとても大変です。その上、データの品質やモデルで使用するハイパーパラメータの用意、モデル作成に使うツールやフレームワークのトラッキングや管理もする必要があります。更に、モデルが作成できても、そのモデルの管理や改良といった作業も行う必要があります。その他にも、セキュアな環境やスケーリングも必要となります。
図は、典型的な end-to-end の機械学習のライフサイクルです。

データの準備→テスト→検証→デプロイ→モニタリング、が一般的なプロセスですが、現実はこの様な左から右の直線的なプロセスではありません。
実際の機械学習のプロセスは、図のような循環型のものになります。

モデルの構築完了後も、再テストや再構築、そして再びテストといった具合で、機械学習におけるライフサイクルは循環型であり、このサイクルは途切れることはありません。
MLflow
MLflow は、この延々と続くサイクルをより快適にするために導入されました。MLflow はオープンソースの ML ライフサイクルマネジメントツールです。

MLflow を組み合わせることで、以下の内容が可能となりました。
- 一箇所に実験をまとめることが可能
- 監査証跡の管理可能
- Azure ML にモデルをシームレスでデプロイ可能
- Azure ML でモデルを管理可能
MLflow には3つのコンポーネントが存在し、それぞれ以下の特徴があります。

■MLflow のコンポーネント
- Tracking
- 実験のレコーディングとクエリを行う
- Projects
- どの様なプラットフォームでも実行できる再生産可能なフォーマットにパッケージ化する
- Modeling
- 様々な開発ツールをサポートする基本的なモデル
Standardizing the ML life cycle on Azure Databricks
Azure Databricks を利用することで、ML のライフサイクルにおけるそれぞれの項目において、以下のサービスを利用することができます。

■ML のライフサイクル
- データの用意:Delta Lake
- モデルにデータを与えたり、実験データを増やす
- モデルの構築:Azure Data bricks、MLflow
- トラッキング、実験の再現
- モデルのデプロイ:MLflow models
- 複数のクラウドとの統合、モデルのマネジメントとモニタリング
MLOps with Azure Machine Learning
MLOps においても、Azure Machine Learning を利用することをオススメします。Azure Machine Learning を利用することで、以下のことが可能となります。

■Azure Machine Learning を利用するメリット
- 異なるパラメータを利用してモデルのデプロイが可能
- 異なる実験結果の記録が可能
- 異なるモデルをシームレスにデプロイが可能
この他にも、様々なメリットがあるので MLOps でも Azure Machine Learning の利用をオススメします。
おわりに
Azure Databricks and Azure Machine Learning better together の動画のまとめは以上となります。
これ以外にも、Microsoft Ignite 2019にて紹介された動画が公開されておりますので、ぜひ、そちらもどうぞ。