【de:code 2019連動】ML最前線!Automated MLとMLOpsによる機械学習モデル開発の自動化【前編】

皆さん、こんにちは!
FIXER R&D Division の千賀です。

今日は5月29〜30日に開催された、皆さんおなじみの Microsoft 技術者向けカンファレンス《de:code 2019》で講演した内容から、少し内容を整理して前後編に分けてお伝えします。(講演スライドはこちら

【お知らせ】ハンズオンセミナー開催!(浜松町、参加無料)

ここで解説する内容を実際に体験して習得してもらうため、6月21日(金)に東京・浜松町でハンズオンセミナーを開催します。下記のURLからぜひ参加お申し込みください。遠方で参加いただけない方のためにオンラインでのライブ配信も予定しています。

https://fixer-lab.connpass.com/event/133303/

これまでの機械学習は、データサイエンティストが数学や統計学的知識を用いて職人芸のようにモデル開発を行ってきました。ところがここ1年ほどでその様子が大きく様変わりし、特に Azure で提供開始された Azure Machine Learning Service のおかげで、職人芸的なアートの世界から、その名の通り再現性の高いサイエンスになってきています。

その結果、非常にハードルが高くてごく一部の一握りの人たちにしか扱えなかった機械学習が、ビジネスレイヤーのいろいろな人に扱えるようになってきました。いわゆる、AIやデータの民主化です。

そこで、Azure Machine Learning Service(以下、AMLS)によるモデル開発の自動化の方法と、そこにAzure DevOpsを組み合わせてMLOpsを実現する方法とを前編後編に分けて解説します。

モデル開発の自動化

前編ではモデル開発の自動化について解説していきます。

モデル開発の自動化にはAMLSのAutomated Machine Learning(以下、AutoML)と呼ばれる機能を用いて行います。
AutoMLは一回の学習で最適なモデル作成をするのではなく、通常のデータサイエンティストがモデル開発を行うときと同じように、アルゴリズムを変えたりハイパーパラメータを調整したりの試行錯誤を繰り返すことによって最適なモデルを作り上げます。

実際にAutoMLを利用したモデル開発をしてみましょう。

開発にはAzure Notebooksを利用します。
Azure Notebooksはクラウド上で Jupyter Notebookを作成、実行するためのサービスです。 無料で利用することができます。

今回はソースコードをあらかじめ用意したので、その内容に沿って解説します。まずは下のURLにアクセスしてください。
https://notebooks.azure.com/hiroshi1000/projects/decode2019-MLOps/tree/decode2019-Azure-MLOps

アクセスするとソースコードが入っているプロジェクトが表示されます。

プロジェクト画面

cloud.ipynbを開きます。これで内容は確認できますが、 Jupyter Notebook の特徴であるコードの実行などができないので、緑色の[Clone]ボタンをクリックします。

cloud.ipynb

クローン後の名前等を設定できるので、自分が分かりやすいように変更します。その後[Clone]をクリックします。

クローン後の名前等を設定

クローンが完了すると自分のプロジェクトとして実行や内容の返納をすることができます。

実行や内容の返納

通常のモデル開発

まずはAutoMLを利用しない通常のモデル作成を見てみましょう。
cloud.ipynbをクリックして開きます。コメントで何が行われているか書いてありますので読んでいただくとより理解が深まるかと思います。

通常のモデル作成

上から順にコードを実行すると学習に必要な環境がAzure上に作成されます。
(※一部ご自身が利用されるAzureのSubscription Idを入力する箇所があります。)

学習は以下のコードで実行しています。AMLS上に作成したコンピューティングリソースを利用して行っており、具体的な学習の内容はtrain.pyの中に書いてあります。

train.py

実行の途中経過や結果はAMLSからも確認できます。

実行の途中経過や結果

作成したモデルの精度(accuracy)は90.59%となりました。

モデルの精度

AutoMLでモデル開発

次にAutoMLでのモデル開発を見ていきましょう。
cloud-AutoML.ipynbにモデルの自動開発のコードが書かれてますので、これを開きます。

AutoMLの肝となるが下のコードになります。 ‘automl_settings’ で試行錯誤の回数(作成するモデルの個数)や評価対象にするメトリック(Accuracyや AUC_weightedなど)などトレーニングの設定を行っています。詳しい内容はドキュメントを参考にしてください。
https://docs.microsoft.com/ja-jp/azure/machine-learning/service/how-to-configure-auto-train#configure-your-experiment-settings

AutoMLでの開発

設定をしたAutoMLを実行すると以下のようにモデルが作成され、評価も行われます。

モデルの作成と評価

AutoMLで作成したモデルの精度(Accuracy)は96.64%となりました。

モデルの精度

まとめ

通常のモデル作成では精度は90.59%でAutoMLでは96.64%となりました。
専門的な知識やコーディングをしなくても高精度なモデルが作成できるのでぜひ試してみてください。

後編では作成したモデルの自動デプロイまで行うML Opsの組み方を解説します。

%d人のブロガーが「いいね」をつけました。