ソリューション アーキテクチャを調べる
小規模なチームで小規模なプロジェクトに取り組む場合、使用する Azure Machine Learning ワークスペースを 1 つにすることが理にかなっている場合があります。 その 1 つのワークスペースを使用して、モデルのトレーニング、テスト、デプロイのすべてを行うことができます。 ただし、Proseware では、開業医向けの Web アプリケーションと統合する複数のモデルを構築して保守するときに簡単にスケーリングできる堅牢で、将来性が保証されたソリューションが必要です。
モデルを開発から運用環境に迅速かつ安全に移行するために、高度な機械学習操作(MLOps) アーキテクチャに合意しました。
Note
この図は、MLOps アーキテクチャを簡略化したものです。 より詳細なアーキテクチャを表示するには、MLOps (v2) ソリューション アクセラレータのさまざまなユース ケースをご確認ください。
アーキテクチャには次のものが含まれます。
- セットアップ: ソリューションに必要なすべての Azure リソースを作成します。
- モデル開発 (内部ループ): モデルをトレーニングおよび評価するためのデータを探して処理します。
- 継続的インテグレーション: モデルをパッケージ化して登録します。
- モデル デプロイ (外部ループ): モデルをデプロイします。
- 継続的デプロイ: モデルをテストし、運用環境にレベル上げします。
- 監視: モデルとエンドポイントのパフォーマンスを監視します。
機械学習モデルを大規模に操作するために、Proseware では、ステージごとに個別の環境を使用したいと考えています。 環境を分離すれば、リソースへのアクセスの制御が容易になります。 その後、各環境を個別の Azure Machine Learning ワークスペースに関連付けることができます。
Note
このモジュールでは、環境を DevOps での解釈に基づいて使用しています。 Azure Machine Learning では、環境という用語が、スクリプトの実行に必要な Python パッケージのコレクションを記述するためにも使用されることに注意してください。 これら 2 つの環境の概念は互いに独立しています。 Azure Machine Learning の環境の詳細について説明します。
あなたは、モデルをデプロイする前にテストできるように、次の 3 つの環境で作業する必要があります。
開発環境は、内部ループに使用されます。
- データ サイエンティストは、モデルのトレーニングを行います。
- モデルはパッケージ化されて登録されます。
ステージング環境は、外部ループの一部に使用されます。
- リンティングおよび単体テストを使用してコードとモデルをテストします。
- モデルをデプロイして、エンドポイントをテストします。
運用環境は、外部ループの別の部分に使用されます。
- モデルを運用エンドポイントにデプロイします。 運用エンドポイントは Web アプリケーションに統合されます。
- モデルとエンドポイントのパフォーマンスを監視し、必要に応じて再トレーニングを開始します。
多くの機械学習タスクは自動化でき、そうする必要がありますが、ゲート承認が必要なポイントについても計画する必要があります。 モデルのトレーニングとパッケージ化が完了したら、ステージング環境に移行する前にモデルを検証するようにリード データ サイエンティストに通知する必要があります。
同様に、ステージング環境でモデルが精力的にテストされた後、ソフトウェア開発チームのいずれかのメンバーが、モデルを運用環境にデプロイする前にすべてのテストの成功を検証したことを保証するためにゲート承認を追加する必要があります。
環境を操作する場合、ゲート承認を使用すると、ある環境から次の環境へのデプロイを制御できます。