SageMaker AI 提供のプロジェクトテンプレートを使用する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker AI 提供のプロジェクトテンプレートを使用する

重要

2024 年 10 月 28 日現在、 AWS CodeCommit テンプレートは削除されました。新しいプロジェクトでは、サードパーティーの Git リポジトリを使用する、利用可能なプロジェクトテンプレートから選択します。

Amazon SageMaker AI には、ML モデルの継続的インテグレーションと継続的デプロイ (CI/CD) のためのMLOpsソリューションを作成するために必要なインフラストラクチャを作成するプロジェクトテンプレートが用意されています。これらのテンプレートを使用して、データの処理、機能の抽出、モデルのトレーニングとテスト、モデルレジストリへの SageMaker モデルの登録、推論のためのモデルのデプロイを行います。シードコードと設定ファイルは、要件に合わせてカスタマイズできます。

注記

プロジェクトテンプレートを使用するには、追加のロールが必要です。必要なロールの全リストと作成方法については、「プロジェクトを使用するために必要な SageMaker Studio アクセス許可の付与」を参照してください。新しいロールがない場合は、新しいプロジェクトを作成しようとして続行できないときに、CodePipeline ロール arn:aws:iam::xxx: AssumeRole を実行する権限がないrole/service-role/AmazonSageMakerServiceCatalogProductsCodePipelineRoleというエラーメッセージが表示されます。

SageMaker AI プロジェクトテンプレートには、次のコードリポジトリ、ワークフロー自動化ツール、パイプラインステージが用意されています。

  • コードリポジトリ: GitHub や Bitbucket などのサードパーティーの Git リポジトリ

  • CI/CD ワークフローの自動化: AWS CodePipeline または Jenkins

  • Pipeline stages (パイプラインステージ): モデルの構築とトレーニング、モデルのデプロイ、またはその両方

以下の説明では、 SageMaker AI プロジェクトの作成時に選択できる各テンプレートの概要を説明します。Studio (または Studio Classic) で使用可能なテンプレートを表示するには、「プロジェクトのプロジェクトを作成する」のウォークスルーに従います。

実際のプロジェクトを作成する手順については step-by-step、プロジェクトのチュートリアルの 1 つに従ってください。

トピック
    • Code repository (コードリポジトリ): サードパーティー Git

      注記

      AWS アカウント AWS CodeStar から GitHub ユーザーまたは組織への接続を確立します。true この AWS CodeStar 接続にキーsagemakerと値を持つタグを追加します。

    • CI/CD ワークフローの自動化: AWS CodePipeline

    モデルの構築とトレーニング

    このテンプレートでは以下のリソースが提供されます。

    • お客様が指定した 1 つの Git リポジトリとの関連付け。リポジトリには、Python コードで Amazon SageMaker AI パイプラインを作成するサンプルコードが含まれており、 SageMaker AI パイプラインを作成および更新する方法を示します。このリポジトリは、Studio で開いて実行できる Python Notebook も提供しています。

    • ソースステップとビルドステップがある AWS CodePipeline パイプライン。ソースステップは、サードパーティーの Git リポジトリを指します。ビルドステップは、そのリポジトリからコードを取得し、 SageMaker AI パイプラインを作成および更新し、パイプラインの実行を開始し、パイプラインの実行が完了するまで待機します。

    • Git リポジトリにシードコード情報を入力する AWS CodeBuild プロジェクト。これには、 AWS CodeStar から Git リポジトリホスト上の アカウント AWS アカウント への接続が必要です。

    • CodePipeline および アーティファクトを含む CodeBuild アーティファクト、および SageMaker AI パイプライン実行から生成されたアーティファクトを保存する Amazon S3 バケット。

    モデルのデプロイ

    このテンプレートでは以下のリソースが提供されます。

    • お客様が指定した 1 つの Git リポジトリとの関連付け。リポジトリには、ステージング環境と本番環境のエンドポイントにモデルをデプロイするサンプルコードが含まれています。

    • ソース、ビルド deploy-to-staging、および deploy-to-productionステップがある AWS CodePipeline パイプライン。ソースステップはサードパーティーの Git リポジトリを指し、ビルドステップはそのリポジトリからコードを取得し、デプロイする AWS CloudFormation スタックを生成します。および deploy-to-production ステップ deploy-to-stagingは、 AWS CloudFormation スタックをそれぞれの環境にデプロイします。ステージングビルドステップと本番ビルドステップの間に手動の承認ステップがあるため、MLOpsエンジニアはモデルを本番稼働環境にデプロイする前に承認する必要があります。

    • Git リポジトリにシードコード情報を入力する AWS CodeBuild プロジェクト。これには、 AWS CodeStar から Git リポジトリホスト上の アカウント AWS アカウント への接続が必要です。

    • CodePipeline および アーティファクトを含む CodeBuild アーティファクト、および SageMaker AI パイプライン実行から生成されたアーティファクトを保存する Amazon S3 バケット。

    モデルの構築、トレーニング、デプロイ

    このテンプレートでは以下のリソースが提供されます。

    • カスタマー指定の 1 つ以上の Git リポジトリとの関連付け。

    • ソース、ビルド deploy-to-staging、および deploy-to-productionステップがある AWS CodePipeline パイプライン。ソースステップはサードパーティーの Git リポジトリを指し、ビルドステップはそのリポジトリからコードを取得し、デプロイするスタックを生成します CloudFormation。および deploy-to-production ステップ deploy-to-stagingは、 CloudFormation スタックをそれぞれの環境にデプロイします。ステージングビルドステップと本番ビルドステップの間に手動の承認ステップがあるため、MLOpsエンジニアはモデルを本番稼働環境にデプロイする前に承認する必要があります。

    • Git リポジトリにシードコード情報を入力する AWS CodeBuild プロジェクト。これには、 AWS アカウント AWS CodeStar から Git リポジトリホスト上の アカウントへの接続が必要です。

    • CodePipeline および アーティファクトを含む CodeBuild アーティファクト、および SageMaker AI パイプライン実行から生成されたアーティファクトを保存する Amazon S3 バケット。

    前述したように、このテンプレートを使用して実際のプロジェクトを作成する例については、プロジェクトチュートリアル: サードパーティーの Git リポジトリの使用を参照してください。

    • Code repository (コードリポジトリ): サードパーティー Git

      注記

      AWS アカウント AWS CodeStar から GitHub ユーザーまたは組織への接続を確立します。true この AWS CodeStar 接続にキーsagemakerと値を持つタグを追加します。

    • CI/CD ワークフローの自動化: AWS CodePipeline

    次のテンプレートには、次のタイプのモニタリングを提供する追加の Amazon SageMaker Model Monitor テンプレートが含まれています。

    モデルの構築、トレーニング、デプロイ、Amazon SageMaker Model Monitor

    このテンプレートは、 を使用して Git リポジトリでモデルの構築、トレーニング、デプロイを行うための MLOps テンプレートの拡張機能です CodePipeline。テンプレートのモデル構築、トレーニング、デプロイコンポーネントと、次のタイプのモニタリングを提供する追加の Amazon SageMaker Model Monitor テンプレートの両方が含まれています。

    デプロイされたモデルをモニタリングする

    このテンプレートをMLOpsソリューションに使用して、1 つ以上の Amazon SageMaker AI データ品質、モデル品質、モデルバイアス、モデル説明可能性モニターをデプロイし、 SageMaker AI 推論エンドポイントにデプロイされたモデルをモニタリングできます。このテンプレートでは以下のリソースが提供されます。

    • カスタマー指定の 1 つ以上の Git リポジトリとの関連付け。リポジトリには、Amazon SageMaker Model Registry からモニターが使用するベースラインを取得し、ステージング環境と本番環境のテンプレートのパラメータを更新するサンプル Python コードが含まれています。また、Amazon SageMaker Model Monitor を作成するための AWS CloudFormation テンプレートも含まれています。

    • ソース、ビルド、デプロイのステップがある AWS CodePipeline パイプライン。ソースステップは CodePipeline リポジトリを指します。ビルドステップは、そのリポジトリからコードを、モデルレジストリからベースラインを取得して、ステージング環境と本番環境のテンプレートパラメータを更新します。デプロイステップは、設定されたモニタをステージング環境と実稼働環境にデプロイします。DeployStaging ステージ内の手動承認ステップでは、承認してDeployProdステージに移行するInService前に、本番稼働用 SageMaker AI エンドポイントが であることを確認する必要があります。

    • Git リポジトリにシードコード情報を入力する AWS CodeBuild プロジェクト。これには、 AWS CodeStar から Git リポジトリホスト上の アカウント AWS アカウント への接続が必要です。

    • テンプレートは、モデルの構築、トレーニング、デプロイのためにMLOpsテンプレートによって作成されたのと同じ Amazon S3 バケットを使用して、モニターの出力を保存します。

    • ステージング SageMaker AI エンドポイントが更新され AWS CodePipeline るたびに、2 つの Amazon EventBridge イベントルールが Amazon SageMaker Model Monitor を開始します。

    • Code repository (コードリポジトリ): サードパーティー Git

      注記

      AWS アカウント AWS CodeStar から GitHub ユーザーまたは組織への接続を確立します。true この AWS CodeStar 接続にキーsagemakerと値を持つタグを追加します。

    • CI/CD workflow automation (CI/CD ワークフローの自動化): Jenkins

    モデルの構築、トレーニング、デプロイ

    このテンプレートでは以下のリソースが提供されます。

    • カスタマー指定の 1 つ以上の Git リポジトリとの関連付け。

    • ソース、ビルド、、 deploy-to-stagingおよび deploy-to-production ステップを持つ Jenkins パイプラインを生成するシードコード。ソースステップは、ユーザーが指定した Git リポジトリを指します。ビルドステップはそのリポジトリからコードを取得し、2 つの CloudFormation スタックを生成します。デプロイステップでは、 CloudFormation スタックをそれぞれの環境にデプロイします。ステージングステップと本番ステップの間には、承認ステップがあります。

    • Git リポジトリにシードコード情報を入力する AWS CodeBuild プロジェクト。これには、 AWS アカウント AWS CodeStar から Git リポジトリホスト上の アカウントへの接続が必要です。

    • AI プロジェクトと SageMaker AI SageMaker パイプラインのアーティファクトを保存する Amazon S3 バケット。

    テンプレートはプロジェクトとソースコントロールリポジトリ間の関連付けを作成しますが、 AWS アカウントと Jenkins 間の通信を確立するために追加の手動ステップを実行する必要があります。詳細な手順については、「サードパーティーのソースコントロールと Jenkins を使用して Amazon SageMaker プロジェクトを作成する」を参照してください。

    この手順は、次の図に示すアーキテクチャを構築するのに役立ちます。この例では、 をソースコントロールリポジトリ GitHub として使用します。図のように、Git リポジトリをプロジェクトにアタッチして、コードバージョンをチェックインおよび管理します。Jenkins は、Git リポジトリ内のモデル構築コードへの変更を検出すると、モデル構築パイプラインを開始します。また、プロジェクトを Jenkins に接続してモデルのデプロイ手順を調整します。これは、モデルレジストリに登録されたモデルを承認したとき、または Jenkins がモデルデプロイコードへの変更を検出したときに開始されます。

    プロジェクトテンプレートを使用して構築されたパイプラインのワークフロー

    要約すると、以下のタスクを実行する手順は次のとおりです。

    1. アカウント AWS と GitHub アカウント間の接続を確立します。

    2. Jenkins アカウントを作成し、必要なプラグインをインポートします。

    3. Jenkins IAM ユーザーとアクセス許可ポリシーを作成します。

    4. Jenkins サーバーの Jenkins IAMユーザーの AWS 認証情報を設定します。

    5. Jenkins サーバーと通信するための APIトークンを作成します。

    6. CloudFormation テンプレートを使用して、新しく承認されたモデルのモデルレジストリをモニタリングする EventBridge ルールを設定します。

    7. SageMaker AI プロジェクトを作成します。これにより、 GitHub リポジトリにモデルビルドとデプロイコードがシードされます。

    8. モデル構築のシードコードを使用して Jenkins モデル構築パイプラインを作成します。

    9. モデルデプロイのシードコードを使用して Jenkins モデルデプロイパイプラインを作成します。

    このテンプレートは、MLOps を使用したサードパーティー Git によるモデルの構築、トレーニング、デプロイ用の テンプレート CodePipeline の拡張機能です。該当するテンプレートのモデルの構築、トレーニング、デプロイのコンポーネントと、以下のオプションの両方が含まれます。

    • イメージと構築の処理パイプラインを含める

    • イメージと構築のトレーニングパイプラインを含める

    • イメージと構築の推論パイプラインを含める

    プロジェクト作成時に選択した各コンポーネントに、テンプレートを使用して次のコンポーネントが作成されます。

    • Amazon ECRリポジトリ

    • SageMaker AI イメージ

    • カスタマイズできる Dockerfile を含む CodeCommit リポジトリ

    • CodePipeline リポジトリへの変更によって開始 CodePipeline される

    • Docker イメージを構築し、Amazon ECRリポジトリに登録する CodeBuild プロジェクト

    • スケジュール CodePipeline に従って を開始する EventBridge ルール

    CodePipeline が開始されると、新しい Docker コンテナを構築し、Amazon ECRリポジトリに登録します。新しいコンテナが Amazon ECRリポジトリに登録されると、新しいコンテナImageVersionが SageMaker AI イメージに追加されます。これにより、モデル構築パイプラインが開始され、その後、デプロイパイプラインが開始されます。

    新しく作成されたイメージは、ワークフローのモデルの構築、トレーニング、デプロイのそれぞれの対象部分で使用されます。

    AmazonSageMakerServiceCatalogProductsUseRole ロールにアタッチされる管理ポリシーが 2021 年 7 月 27 日に更新され、サードパーティーの Git テンプレートで使用できるようになりました。この日付以降に Amazon SageMaker Studio (または Studio Classic) にオンボードし、プロジェクトテンプレートを有効にするユーザーは、新しいポリシーを使用します。この日より前にオンボードしたユーザーは、これらのテンプレートを使用するようにポリシーを更新する必要があります。次のいずれかのオプションを使用して、ポリシーを更新できます。

    • ロールを削除して Studio (または Studio Classic) の設定を切り替える

      1. IAM コンソールで、 を削除しますAmazonSageMakerServiceCatalogProductsUseRole

      2. Studio (または Studio Classic) コントロールパネルで、[設定を編集] をクリックします。

      3. 両方の設定を切り替え、[Submit] (送信) を選択します。

    • IAM コンソールで、次のアクセス許可を に追加しますAmazonSageMakerServiceCatalogProductsUseRole

      { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/sagemaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::sagemaker-*" ] }