この記事では、Azure Machine Learning レジストリが機械学習資産をワークスペースから切り離して、開発、テスト、運用環境で MLOps を使用できるようにする方法について説明します。 環境は、IT システムの複雑さに応じて異なる場合があります。 次の要因は、必要な環境の数と種類に影響します。
- セキュリティとコンプライアンスのポリシー。 運用環境は、アクセスの制御、ネットワーク アーキテクチャ、データ公開の点で開発環境から分離する必要があります。
- サブスクリプション。 開発環境と運用環境では、多くの場合、課金、予算作成、コスト管理の目的で個別のサブスクリプションが使用されます。
- リージョン。 待ち時間と冗長の要件をサポートするために、さまざまな Azure リージョンにデプロイすることが必要な場合があります。
上記のシナリオでは、開発、テスト、運用に異なる Azure Machine Learning ワークスペースを使用する可能性があります。 この構成では、モデルのトレーニングとデプロイに関して次の課題が発生する可能性があります。
開発ワークスペースでモデルをトレーニングしても、運用ワークスペース (場合によっては別の Azure サブスクリプションまたはリージョン) のエンドポイントにデプロイする必要がある可能性があります。 この場合は、トレーニング ジョブをトレース バックできる必要があります。 たとえば、運用のデプロイで正確性やパフォーマンスの問題が発生した場合に、モデルのトレーニングに使用したメトリック、ログ、コード、環境、データを分析する必要があります。
開発ワークスペースでテスト データまたは匿名化されたデータを使用してトレーニング パイプラインを開発しても、運用ワークスペース内の運用データを使用してモデルを再トレーニングする必要がある場合があります。 この場合、実際のデータでトレーニングの最適化が適切に実行されるように、サンプル データと運用データのトレーニング メトリックを比較することが必要になる場合があります。
レジストリを使用したクロスワークスペース MLOps
レジストリは、Git リポジトリと同様に、機械学習資産をワークスペースから切り離し、中央の場所で資産をホストするため、組織内のすべてのワークスペースからアクセスできます。 レジストリを使用して、 モデル、 環境、 コンポーネント、 データ資産などの資産を格納および共有します。
開発、テスト、運用環境を通じてモデルを促進するには、まず開発環境でモデルを繰り返し開発します。 適切な候補モデルがある場合は、レジストリに発行します。 その後、レジストリから異なるワークスペース内のエンドポイントにモデルをデプロイできます。
ヒント
既にワークスペースに登録されているモデルがある場合は、これらのモデルをレジストリにレベル上げすることができます。 トレーニング ジョブの出力から、モデルをレジストリに直接登録することもできます。
あるワークスペースでパイプラインを開発し、他のワークスペースで実行する場合は、まずパイプラインの構成要素を形成するコンポーネントと環境を登録します。 パイプライン ジョブを送信すると、各ワークスペースに固有のコンピューティングとトレーニング データによって、実行されるワークスペースが決まります。
次の図は、探索的および開発ワークスペース間のトレーニング パイプラインの昇格、その後にテストと運用へのトレーニング済みモデルの昇格を示しています。