概要

MLOps ワークロードオーケストレーターソリューションは、機械学習 (ML) モデルのプロダクショナイゼーション向けにアーキテクチャのベストプラクティスを合理化および強制するのに役立ちます。このソリューションは、AWS の機械学習サービスとサードパーティーサービスの機械学習パイプラインを管理するための標準インターフェイスを提供する、拡張可能なフレームワークです。このソリューションのテンプレートにより、お客様は以下のことが可能になります。
- モデルのトレーニング
- 学習済みモデルのアップロード (Bring Your Own Model [BYOM] とも呼ばれる)
- パイプラインオーケストレーションの設定
- パイプラインの運用を監視する
このソリューションでは、成功可能なプロセスを大量に繰り返し実行できるようにすることで、チームの俊敏性と効率の向上を図ります。
利点

Amazon SageMaker モデルダッシュボードを使用して、ソリューションで作成した Amazon SageMaker リソース (モデル、エンドポイント、モデルカード、バッチ変換ジョブなど) を表示する。
技術的な詳細情報

さまざまなユースケースとビジネスニーズをサポートするために、このソリューションでは 2つの AWS CloudFormation テンプレートが提供されています。
- 単一のアカウントテンプレートを使用して、ソリューションのすべてのパイプラインを同じ AWS アカウントにデプロイします。このオプションは、実験、開発、または小規模の本番ワークロードに適しています。
- マルチアカウントテンプレートを使用して、異なる AWS アカウント間で複数の環境 (開発、ステージング、本番環境など) をプロビジョニングします。これにより、ガバナンスが改善され、ML パイプラインのデプロイのセキュリティと制御が向上し、安全な実験とより迅速なイノベーションが提供され、本番データとワークロードが安全かつ利用可能に保たれるだけでなく、ビジネスの継続性が確保されます。
-
オプション 1 - 単一アカウントのデプロイ
-
オプション 2 - マルチアカウントデプロイ
-
オプション 1 - 単一アカウントのデプロイ
-
ステップ 1
オーケストレーター (ソリューション所有者もしくは DevOps エンジニア) は、AWS アカウントでソリューションを起動させ、必要なオプション (Amazon SageMaker モデルレジストリの使用や、既存の Amazon S3 バケットの提供など) を選択します。ステップ 2
オーケストレーターは、ターゲットパイプラインに必要なアセット (モデルアーティファクト、トレーニングデータ、カスタムアルゴリズムの zip ファイルなど) を Amazon S3 アセットバケットにアップロードします。Amazon SageMaker モデルレジストリを使用している場合は、オーケストレーター (または自動化パイプライン) は、モデルをモデルレジストリに登録する必要があります。ステップ 3a
このソリューションでは、Amazon API Gateway に API コールを送信するか、mlops-config.json ファイルを Git リポジトリにコミットすることで、単一アカウントの AWS CodePipeline をプロビジョニングします。
ステップ 3b
パイプラインのタイプに応じて、オーケストレーターの AWS Lambda 関数は、API 呼び出しの本文または mlops-config.json ファイルを使用してターゲット AWS CloudFormation テンプレートとそのパラメータ/設定をパッケージ化し、AWS CodePipeline インスタンスのソースステージとして使用します。ステップ 4
DeployPipeline ステージは、パッケージ化された CloudFormation テンプレートとそのパラメータ/構成を取得し、ターゲットパイプラインを同じアカウントにデプロイします。ステップ 5
ターゲットパイプラインがプロビジョニングされた後、ユーザーはその機能にアクセスできます。Amazon Simple Notification Service (Amazon SNS) 通知は、ソリューションの起動パラメータで提供される E メールに送信されます。 -
オプション 2 - マルチアカウントデプロイ
-
ステップ 1
オーケストレーター (ソリューション所有者またはオーケストレータアカウントへの管理者アクセス権を持つ DevOps エンジニア) は、AWS Organizations 情報 (開発、ステージング、本番組織のユニット ID とアカウント番号など) を提供します。また、必要なオプション (Amazon SageMaker モデルの使用や、既存の Amazon S3 バケットの提供など) を特定した後、それぞれの AWS アカウントでソリューションを起動させます。ステップ 2
オーケストレーターは、ターゲットパイプラインに必要なアセット (モデルアーティファクト、トレーニングデータ、カスタムアルゴリズムの zip ファイルなど) を AWS Orchestrator アカウントの Amazon S3 アセットバケットにアップロードします。Amazon SageMaker モデルレジストリを使用している場合は、オーケストレーター(または自動化パイプライン) は、モデルをモデルレジストリに登録する必要があります。ステップ 3a
Amazon API Gateway への API コール、または mlops-config.json ファイルを Git リポジトリにコミットすることで、マルチアカウントの AWS CodePipeline インスタンスを構築するソリューションです。
ステップ 3b
パイプラインのタイプに応じて、オーケストレーターの AWS Lambda 関数は、API 呼び出しの本文または mlops-config.json ファイルを使用して、各ステージのターゲット AWS CloudFormation テンプレートとそのパラメータ/設定をパッケージ化し、AWS CodePipeline インスタンスのソースステージとして使用します。ステップ 4
DeployDev ステージは、パッケージ化された CloudFormation テンプレートとそのパラメータ/構成を取得し、ターゲットパイプラインを開発アカウントにデプロイします。ステップ 5
ターゲットパイプラインが開発アカウントにプロビジョニングされた後、デベロッパーはパイプラインを反復処理できます。ステップ 6
開発が終了した後、オーケストレーター (または許可された別のアカウント) は、DeployStaging アクションを手動で承認して DeployStaging ステージに移動します。ステップ 7
DeployStaging ステージは、ステージング構成を使用して、ターゲットパイプラインをステージングアカウントにデプロイします。ステップ 8
テスターは、デプロイされたパイプラインでさまざまなテストを実行します。ステップ 9
パイプラインが品質テストに合格した後、オーケストレーターは DeployProd アクションを承認できます。ステップ 10
DeployProd ステージは、ターゲットパイプライン (本番構成を含む) を本番アカウントにデプロイします。ステップ 11
最後に、ターゲットパイプラインは本番環境で稼働しています。Amazon Simple Notification Service (Amazon SNS) 通知は、ソリューションの起動パラメータで提供される E メールに送信されます。
関連コンテンツ

Cognizant は、AWS パートナーソリューションアーキテクトと AWS ソリューションライブラリチームと協力し、MLOps ワークロードオーケストレーターソリューションの上に、MLOps Model Lifecycle Orchestrator ソリューションを構築しています。