Azure Machine Learning Studio: PowerShellによるWeb Serviceのデプロイと運用を検証する① 準備編

Michaelです。
今回から、Azure Machine Learning Studio (ML Studio)のPowerShell用モジュール「AzureMLPS」を使用して、PowerShellによるWeb Serviceのデプロイと運用を検証していきます。
初回は、PowerShellでWeb Serviceをデプロイするための基本となるExperimentの作成とWeb Service作成を行います。

Web Serviceの運用

機械学習を業務に活用する場合、予測モデルの作成とそれをアプリケーション連携させる仕組みが必要になります。Azure ML Studioでは、GUI上で容易に予測モデルとWeb Service (API)を作成することができるため、機械学習初心者でも比較的簡単にモデル作成から、アプリケーション連携、運用までを行うことができます。

反面、Azure ML Studioを使った機械学習の運用を考える場合、GUIベースというサービスの特徴が運用上の足かせとなる場合が出てきます。例えば、店舗を全国展開しており、気候、風土が予測に影響をするようなケースでは、全国一括したモデルを運用するより、地域、店舗ごとの数十、数百のモデルを用意して運用するほうが多くの場合で精度が高くなります。このような多数のモデルの運用をGUIで管理するのは非現実的です。
そこで、多数のモデルを運用することを想定して、GUIでなくプログラムによるAzure ML Studioのモデル運用を考えてみます。

PowerShellによるWeb Serviceのデプロイと運用

Azure ML Studio では、Web Serviceにエンドポイントを追加して、モデルを置き換えることにより複数のモデルを1つのWeb Serviceで運用することができます。モデルの作成に関しては、学習用Web Service (再学習API)を使用すれば、データセットに合わせて作成することができるため、以下の3つの操作をプログラムで実装できれば、Web Serviceのデプロイ、運用を簡略化、自動化できるはずです。

1. 学習用Web Serviceでモデルを作成
2. 予測用Web Serviceにエンドポイントを追加
3. 追加したエンドポイントのモデルを置換

AzureMLPSには、これらの操作を実行できるコマンドレットが含まれるため、PowerShellを使用することで、Web Service運用の自動化ができます。
今回は、PowerShellを使用したWeb Service運用を行う上で必要となる学習用Web Serviceと予測用Web Serviceを作成していきます。

学習用Web Serviceの作成

まずは、個々のモデルを作成するための学習用ExperimentとWeb Serviceを作成します。
学習用Experimentは、作成したモデルをBlobに書き出すための「Web Service Output」を「Train Model」に、モデル評価値を書き出すための「Web Service Output」を「Evaluate Model」にそれぞれ接続します。


「Web Service Output」の設定を識別しやすいようにプロパティーから、出力の名称を任意で設定します。


入力データがモデル毎に変わるため、「Import Data」のパラメータを外部変数に設定しておきます。今回はデータをBlob Storageから取得するため、「Path to container, directory or blob」をWeb Service ParameterとしてWeb Serviceから変更できるように設定します。


以上が設定出来たら、一度Experimentを実行、完了させ、下部メニューバーの「SET UP WEB SERVICE」の「Deploy Web Service [Classic]」を選択して学習用Web Serviceを発行します。

予測用Web Serviceの作成

まずは、予測用ExperimentとWeb Serviceを作成します。
学習用Experimentの画面に戻り、「Predictive Web Service [Recommended]」を選択して予測用Experimentを作成します。


作成された予測用Experimentを再度実行して正常に完了することを確認し、下部メニューバーの「DEPLOY WEB SERVICE」の「Deploy Web Service [Classic]」を選択して予測用Web Serviceを発行します。


まとめ

今回は、ここまでとなります。次回は、実際にPowerShellをモデルとWeb Serviceエンドポイントを作成していきます。

この記事を書いた人

azure-recipe-user