モデルをデプロイできるよう準備する

完了

機械学習モデルから価値を得るには、それを デプロイ して、ビジネスで必要なときにいつでも予測を生成できるようにします。 ただし、デプロイする前に、パイプラインの残りの部分の動作を形成するいくつかの決定を行います。

医療技術企業である Proseware では、データ サイエンス チームは、患者が今後のクリニックの予約を見逃す可能性があるかどうかを予測する分類モデルをトレーニングします。 クリニックのスタッフは、このノーショーリスクスコアを使って、事前に電話して来院確認を行う患者を判断し、そうしなければ空いたままになる予約枠を埋められるようにします。 このモデルは、運用環境で使用するのに十分な精度を持つ。 課題は、モデルが再トレーニングされるたびにチームが繰り返すことができるプロセスで、予測に確実に対応することです。

エンドポイントの種類を選択する

Azure Machine Learningは 2 種類のエンドポイントをサポートしており、予測の使用方法によって選択が異なります。 バッチ エンドポイントは、定期的なスコアリング ジョブに適した、スケジュールに基づいて多数のレコードの予測を生成します。 オンライン エンドポイントは、要求を受信した瞬間に短い待機時間で予測を同期的に返します。

Proseware のスケジューリング システムは、スタッフが予約または予定を再スケジュールするとすぐにモデルを呼び出します。そのため、その日の確認呼び出しに対してリスクの高い予定にすぐにフラグを設定できます。 予測はすぐに戻る必要があるため、チームはモデルをマネージド オンライン エンドポイントにデプロイします。

モデルを MLflow に登録する

データ サイエンス チームは、ノーショー リスク モデルをトレーニングし、機械学習の実験を追跡し、モデルを標準形式でパッケージ化するためのオープンソース プラットフォームである MLflow を使用してパッケージ化します。 トレーニング スクリプトが mlflow.autolog()を呼び出すと、MLflow はトレーニング ジョブの出力の一部として、モデル、そのパラメーター、およびメトリックを自動的にログに記録します。

モデルは MLflow モデルとしてパッケージ化されているため、カスタム スコアリング スクリプトを記述したり、環境を自分で定義したりすることなく、ジョブの出力から直接登録できます。 Azure Machine Learningは、デプロイ時にモデルの MLflow メタデータ (コードなしのデプロイと呼ばれる機能) から両方を生成します。 pickle ファイルなどのカスタム モデル形式を使用するチームは、そのスコアリング スクリプトと環境を作成して維持する必要があります。

Tip

Azure Machine Learningでの MLflow モデルのデプロイの詳細について説明します。

モデルを登録するには、完了したトレーニング ジョブの出力またはワークスペース データストアに格納されているモデル ファイルをポイントします。 登録されると、モデルはワークスペース内のバージョン管理された資産となり、デプロイを作成する際に、ユーザーまたは自動化されたワークフローが名前とバージョンで参照できるようになります。

モデルの進化に合わせて、既存のバージョンを置き換える代わりに、変更された成果物を新しいバージョンとして登録します。 バージョンの説明とタグは更新できますが、その他の変更には新しいバージョンが必要です。 既定のリストで不要になったバージョンをアーカイブします。 アーカイブではモデルは削除されず、ワークフローは必要に応じてアーカイブされたバージョンを参照できます。

Tip

登録済みモデルの管理について詳しくは、こちらをご覧ください。

繰り返し可能なデプロイを計画する

モデルの登録とデプロイは最初のリリースで手動で行われますが、Proseware では、新しい予定データが入ってくると、定期的にノーショー モデルを再トレーニングする予定です。 すべての新しいバージョンに対して同じ手動の手順を繰り返すのが遅く、エラーが発生しやすいため、チームの目標は、パイプラインを介して登録、デプロイ、テストを自動化することです。これは、このモジュールの残りの部分が目指すものです。