Azure Databricks and Azure Machine Learning better together 和訳してみた

##はじめに
Microsoft Ignite 2019 にて行われた「Azure Databricks and Azure Machine Learning better together」のセッション内容を翻訳し、まとめたので紹介します。
本セッションと、 Microsoft Ignite2019 の動画一覧のリンクを下記に紹介します。

■本セッション動画のリンク
[Azure Databricks and Azure Machine Learning better together](https://myignite.techcommunity.microsoft.com/sessions/83919)

■Microsoft Ignite2019 動画一覧のリンク
[My Ignite Session Catalog](https://myignite.techcommunity.microsoft.com/sessions?t=%257B%2522from%2522%253A%25222019-11-03T08%253A00%253A00-05%253A00%2522%252C%2522to%2522%253A%25222019-11-08T19%253A00%253A00-05%253A00%2522%257D&g=%255B%2522on-demand%2522%255D)

##Azure Databricks and Azure Machine Learning better together
###Azure Databricks
Azure Databricks は、とてもシンプルなクラウドネイティブソリューションです。Azure Databricks には、ユーザがビジネスに集中できるよう、様々な機能や特徴が搭載してあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/863f92b5-e3c0-cb9f-4357-6db9c92bd2f6.png)
■Azure Databricks の特徴

- ユーザの生産性を高めることが可能
- セキュアなクラウド環境で構築が可能
- 自由にスケーリングが可能

###Azure Machine Learning
Azure Machine Learning は、end-to-end の AI クラウドを提供するサービスです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/c24a4f6a-35d3-8e5f-7d64-ff630cece411.png)
■Azure Machine Learning の主な特徴

- データサイエンスの生産性を向上させる環境を用意
- 実験の質を高めることが可能
- 様々な環境でモデルの構築とマネジメントが可能

###Lifecycle of Machine Learning
機械学習における開発のゴールはメトリクスの最適化です。
一般的な機械学習の開発の流れは、図のようなイメージになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/8da65587-6e16-a1eb-c447-1ab3d7d5225d.png)
■開発の流れ

- データの準備
- モデルの最適化を目指す
- インプットするデータとパラメータの品質を高める
- 様々なソフトウェアを使用してモデルの作成
- モデルの生成
- モデルのモニタリング

機械学習の開発において、メトリクスの最適化はとても大変です。その上、データの品質やモデルで使用するハイパーパラメータの用意、モデル作成に使うツールやフレームワークのトラッキングや管理もする必要があります。更に、モデルが作成できても、そのモデルの管理や改良といった作業も行う必要があります。その他にも、セキュアな環境やスケーリングも必要となります。

図は、典型的な end-to-end の機械学習のライフサイクルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/88c99ae8-56d7-c89a-0d3f-dd933ea62142.png)
データの準備→テスト→検証→デプロイ→モニタリング、が一般的なプロセスですが、現実はこの様な左から右の直線的なプロセスではありません。

実際の機械学習のプロセスは、図のような循環型のものになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/ee2c072e-407f-c806-e0e2-477aae41e31c.png)
モデルの構築完了後も、再テストや再構築、そして再びテストといった具合で、機械学習におけるライフサイクルは循環型であり、このサイクルは途切れることはありません。

###MLflow
MLflow は、この延々と続くサイクルをより快適にするために導入されました。MLflow はオープンソースの ML ライフサイクルマネジメントツールです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/5ca0ac2e-b3f1-5361-40fc-af717bc988d1.png)
MLflow を組み合わせることで、以下の内容が可能となりました。

- 一箇所に実験をまとめることが可能
- 監査証跡の管理可能
- Azure ML にモデルをシームレスでデプロイ可能
- Azure ML でモデルを管理可能

MLflow には3つのコンポーネントが存在し、それぞれ以下の特徴があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/c3dd59ae-6e51-a822-7337-703b60c789a0.png)
■MLflow のコンポーネント

- Tracking
 - 実験のレコーディングとクエリを行う 
- Projects
 - どの様なプラットフォームでも実行できる再生産可能なフォーマットにパッケージ化する
- Modeling
 - 様々な開発ツールをサポートする基本的なモデル 

###Standardizing the ML life cycle on Azure Databricks
Azure Databricks を利用することで、ML のライフサイクルにおけるそれぞれの項目において、以下のサービスを利用することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/9db31044-adbc-0240-f137-7d7791f8da98.png)
■ML のライフサイクル

- データの用意：Delta Lake
 - モデルにデータを与えたり、実験データを増やす
- モデルの構築：Azure Data bricks、MLflow
 - トラッキング、実験の再現
- モデルのデプロイ：MLflow models
 - 複数のクラウドとの統合、モデルのマネジメントとモニタリング

###MLOps with Azure Machine Learning
MLOps においても、Azure Machine Learning を利用することをオススメします。Azure Machine Learning を利用することで、以下のことが可能となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/ed84d00f-632b-7c3d-fe8d-d8ea3db042df.png)
■Azure Machine Learning を利用するメリット

- 異なるパラメータを利用してモデルのデプロイが可能
- 異なる実験結果の記録が可能
- 異なるモデルをシームレスにデプロイが可能

この他にも、様々なメリットがあるので MLOps でも Azure Machine Learning の利用をオススメします。

##おわりに
Azure Databricks and Azure Machine Learning better together の動画のまとめは以上となります。
これ以外にも、Microsoft Ignite 2019にて紹介された動画が公開されておりますので、ぜひ、そちらもどうぞ。