[AI03] Azure Machine Learning service Deep Dive ~自動機械学習から MLOps まで~ / 2019年5月30日
TL;DR(要約)
- 自動機械学習(Azure Automated Machine Learning)により、モデル構築の部分を楽に行うことができる。
- Azure MLで作成したモデルをWindows 10のローカルの.NETでも使用することができる。
- Azure Dev Opsを利用することで、運用管理(モデル登録をトリガーにしてデプロイ、リリース)まで行うことができる。
リソース
- セッション詳細
-
Let's Action
-
Windows Machine Learning
- ドキュメント
- GitHubに公開されているサンプル
- 事前学習済みのONNXファイル
感想
機械学習を行っていく上では、最適なモデルを構築するということが楽しくもあり困難なところですが、自動機械学習(Azure Automated Machine Learning)により、モデル構築の部分を楽に行うことができ、どのような業務を実現できるか、というところに集中しやすくなると感じました。
また、Azure MLで作成したモデルをWindows 10のローカルの.NETでも使用することができるため、モデルをAzureで作成し、ローカルで作成したモデルを使用する、ということが実現できそうです。
また、最終的には、モデルの改善まで含めた自動化により、機会学習の結果運用工数が増えた、というところを改善できるのではないか、と感じました。
本セッションのゴール
- (1)特徴と基本機能
- (2)自動機械学習
- (3)運用管理
(1)特徴と基本機能
プロセス
データの準備が出来上がってきたら実験。
アメリカでは実験という言う言い方をする。実験がうまくいけば、運用管理するが、準備、実験も変更していくことが大事である。
データ分析の現場が抱える課題とは?
自分のデータが終わったら削除しないといけない、というところに問題が出ている。
ゴリゴリに実験と運用を回しているところだととこういう課題が出てくる。
皆様のお客様が抱えているそれぞれの課題があると思うが、今回のセッションが助けになるところはあるのではないか。
Azure Machine Learning Serviceの特徴
オープンであること
スキル、オープンソースのロジックを導入している、開発環境、他のサービスにモデルを連携したりその逆もできる
インフラがパワフルであること
MLライフサイクルを管理することができる
資産管理、コラボレーション、再学習がサポートされている
自分のラップトップでは終わらない処理を行える
自分のラップトップでは終わらない処理をAzureに送付して送ってくれる。
環境について
Pythonライブラリ
制限なし。3.6, 3.7
開発環境
Previewではあるが、NotebookのVMも提供されている。
マネージドな計算環境
- 必要に応じ起動し、スケールアップダウンが自由に行える
- 自動でライブラリが準備される。
低優先度オプション
- 80%割引。余剰の部分を使用するので、もしかすると割り込まれる可能性があるが、コストが安い。
利用ケース
- ハイパーパラメータのチューニング
- 自動機械学習
- 分散深層学習
マネージドな推論環境
注目すべき使用方法としては、Azure IoT Edge。Dockerに詳しくなくても使える。
ML Ops
効率的に、モデル開発とモデル運用管理を密に連携することで、機械学習ライフライクルを効率的、自動的に回し、テスト、本番へデプロイしておしまい、ということではなく、モデルの再学習、再作成を行っていくということが大事である
Azure Dev Ops
ダッシュボードや、アプリケーション開発のライフサイクルをサポートする。
機械学習では?
モデルを作成、テスト、リリース、評価し、モデルを再生成するというところで使用できる。
そもそもとして、
自動化するために、機械学習を入れたのに、運用でもっと人がいるようになった、ということをどうにかしたい。また、説明責任を求められる場合にも、Azure Dev Opsはすべてコードが残るので説明責任とコンプライアンスが解決できる
(2)自動機械学習(Automated Machine Learning)
データとゴール設定と処理時間を設定すると、精度が高いモデルを自動で作成する最新アプローチ。詳しい人でもそうでない人でも使用できる。
基本フロー
前処理をして、アルゴリズムを選択して、各種類の中から、適用したい機械学習のアルゴリズムを選んで、調整してモデル学習を行う
Model Interpretablity SDK
銀行など与信管理を行う業務では、ブラックボックスの判定は使用できない(説明できない)。そこで、説明をどうすればいいかということで、SHAP、LIMEなどのOSSを利用した統合APIを提供した。
【デモ】 自動機械学習
デモで作成するモデルの説明
1. 必要な設定を行う
- タスクは選ぶ(classification)
- 作成するモデルの数
- itelation 回数
2. 実行
- pipline どのプロセスにいるのか
GUI
Pythonでデモしているが、GUIでもできる。
GUIではゴール条件を示したいときには、Advanced から行い、使いたくないものを減らす。こまかいモデルの精度を確認することもできる
3. ダッシュボードで確認
数行かくとダッシュボードを出すことができる。これは現在はPythonのみ。
説明変数に寄与していますよ、ということを確認することができる。予測値に対する解釈もできる
不良な場合に、なぜ不良なのかを知りたいときに、プロットをクリックすると説明変数の詳細が確認できる
棒グラフで上に伸びているものは、不良に寄与、下は品質向上に寄与している(今回の図では不良品ということがわかる)
(3)運用管理
モデル登録をトリガーにしてデプロイ、リリースまで
Azureで作成した以外のモデルも含めて管理できる
Azure Machine Learning serviceで作成したモデルだけではなく、他で作成したモデルも使用できる。モデルの管理だけに、Azure Machine Learning Serviceを使っているというお客様もいるほどである。
モデル登録を契機として自動でデプロイするというところまでできる。
作業項目を管理している画面
まとめ
自動機械学習で工数を大幅削減しよう
本日のまとめ
- Azure Machine Learningは機械学習プロジェクトを効率的に進めることができるオープンプラットフォーム
- 自動機械学習 Automated Machine Learningは実験の試行錯誤を強力にサポート
- モデル運用管理の仕組みを考えていく必要あり。Azure DevOpsとの連携が大きな手助けに
おまけ
Let's Action
新機能として、3つのインタフェースが提供される
あらゆるサービスから、Automated MLが利用できる
Windows Machine Learning
Windows Machine Learningでは、Windows 10での推論を実現できる!
既存のモデルや、独自のデータを使って学習済みのモデルを構築することができる(Machine Learning service / Custom Vision)