カスタムプロジェクトテンプレートを作成する - Amazon SageMaker AI

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

カスタムプロジェクトテンプレートを作成する

重要

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

SageMaker AI 提供のテンプレートがニーズを満たしていない場合 (複数のステージやカスタム承認ステップを使用する、より複雑なオーケストレーションを CodePipeline で行う場合など) は、独自のテンプレートを作成します。

最初に、SageMaker AI 提供のテンプレートを使用して、コードとリソースを編成する方法を理解し、その上に構築することをお勧めします。これを行うには、SageMaker AI テンプレートへの管理者アクセスを有効にした後に、https://console.aws.amazon.com/servicecatalog/ にログインし、[ポートフォリオ][インポート済み] の順にクリックします。Service Catalog に関する詳細については、「Service Catalog ユーザーガイド」の「Overview of Service Catalog」を参照してください。

独自のプロジェクトテンプレートを作成して、MLOps プロジェクトをカスタマイズします。SageMaker AI プロジェクトテンプレートは、Service Catalog によってプロビジョンされた製品であり、MLOps プロジェクトのリソースをプロビジョンします。

カスタムプロジェクトテンプレートを作成するには、以下の手順を実行します。

  1. ポートフォリオを作成します。詳細については、「Step 3: Create an Service Catalog Portfolio」を参照してください。

  2. 製品を作成します。製品は CloudFormation テンプレートです。製品の複数のバージョンを作成できます。詳細については、「Step 4: Create an Service Catalog Product」を参照してください。

    製品を SageMaker プロジェクトで使用するには、製品テンプレートに以下のパラメータを追加します。

    SageMakerProjectName: Type: String Description: Name of the project SageMakerProjectId: Type: String Description: Service generated Id of the project.
    重要

    CodeCommit リポジトリを SageMaker AI コードリポジトリ内にラップして、プロジェクトのリポジトリを VPC モードで表示することをお勧めします。サンプルテンプレートと必要な追加内容を、次のコードサンプルに示します。

    オリジナル (サンプル) テンプレート:

    ModelBuildCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: # Max allowed length: 100 chars RepositoryName: !Sub sagemaker-${SageMakerProjectName}-${SageMakerProjectId}-modelbuild # max: 10+33+15+10=68 RepositoryDescription: !Sub SageMaker Model building workflow infrastructure as code for the Project ${SageMakerProjectName} Code: S3: Bucket: SEEDCODE_BUCKETNAME Key: toolchain/model-building-workflow-v1.0.zip BranchName: main

    VPC モードで追加するその他のコンテンツ:

    SageMakerRepository: Type: AWS::SageMaker::CodeRepository Properties: GitConfig: RepositoryUrl: !GetAtt ModelBuildCodeCommitRepository.CloneUrlHttp Branch: main
  3. 起動制約を追加します。起動制約は、ユーザーが製品を起動するときに Service Catalog が引き受ける IAM ロールを指定します。詳細については、「ステップ 6: IAM ロールを割り当てる起動制約を追加する」を参照してください。

  4. 製品を https://console.aws.amazon.com/servicecatalog/ にプロビジョニングして、テンプレートをテストします。テンプレートに問題がなければ、次のステップに進み、Studio (または Studio Classic) でテンプレートを利用できるようにします。

  5. ステップ 1 で作成した Service Catalog ポートフォリオへのアクセス許可を Studio (または Studio Classic) 実行ロールに付与します。ドメイン実行ロールか Studio (または Studio Classic) アクセス権が付与されているユーザーロールのいずれかを使用します。ポートフォリオへのロールの追加については、「ステップ 7: ポートフォリオへのアクセス権限のエンドユーザーへの付与」を参照してください。

  6. Studio (または Studio Classic) の [組織テンプレート] リストでプロジェクトテンプレートを使用できるようにするには、ステップ 2 で作成した Service Catalog 製品に以下のキー値でタグを作成します。

    • キー: sagemaker:studio-visibility

    • : true

上記のステップを完了すると、組織内の Studio (または Studio Classic) ユーザーは「Amazon SageMaker Studio または Studio Classic を使用して MLOps プロジェクトを作成する」の手順を実行して、テンプレートの選択時に [組織テンプレート] を選択すれば、作成済みのテンプレートを使用してプロジェクトを作成できます。

Amazon S3 バケットからのテンプレートの使用

Amazon S3 に保存されているテンプレートを使用して SageMaker Amazon S3プロジェクトを作成することもできます。

注記

でテンプレートを使用できますが AWS Service Catalog、S3 バケットにテンプレートを保存し、それらのテンプレートを使用してプロジェクトを作成することをお勧めします。

管理者セットアップ

S3 バケットのテンプレートを使用してプロジェクトを作成する前に、次の手順を実行します。

  1. S3 バケットを作成し、テンプレートをバケットにアップロードします。

  2. S3 バケットに CORS ポリシーを設定して、アクセス許可を設定します

  3. 次のキーと値のタグをテンプレートに追加して、SageMaker AI に表示されるようにします。

    sagemaker:studio-visibility : true
  4. ドメインを作成する

  5. SageMaker AI がドメインの作成を完了したら、次のキーと値のタグをドメインに追加します。

    sagemaker:projectS3TemplatesLocation : s3://<amzn-s3-demo-bucket>

次に、 AWS コンソール、Python、または CreateProject および UpdateProject API オペレーションを使用して、S3 バケット内のテンプレートから SageMaker プロジェクトを作成または更新します。 S3

Studio

プロジェクトの作成

  1. Amazon SageMaker AI コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。

  2. Launch Amazon SageMaker Studio」の手順に従って、SageMaker Studio コンソールを開きます。

  3. 左側のナビゲーションペインで、デプロイプロジェクトプロジェクトの作成を選択します。

  4. 組織テンプレートを選択し、次に S3 テンプレートを選択して、使用可能なテンプレートを表示します。予想されるテンプレートが表示されない場合は、管理者に通知してください。

  5. 使用するテンプレートを選択し、次へを選択します。

  6. プロジェクトの名前、オプションの説明、その他の必須フィールドを入力します。終了したら、[作成] を選択します。

プロジェクトを更新する

  1. Amazon SageMaker AI コンソール (https://console.aws.amazon.com/sagemaker/) を開きます。

  2. Launch Amazon SageMaker Studio」の手順に従って、SageMaker Studio コンソールを開きます。

  3. 更新するプロジェクトを選択します。「アクション」を選択し、「プロジェクトの更新」を選択します。

  4. プロジェクトを更新するときは、テンプレートパラメータまたはテンプレート URL を更新できます。終了したら、[次へ] を選択します。

  5. 概要テーブルでプロジェクトの更新を確認して、[更新] をクリックします。

Python Boto3

S3 バケットを作成してテンプレートをアップロードしたら、次の例を使用して SageMaker プロジェクトを作成できます。

sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') response = sagemaker_client.create_project( ProjectName='my-custom-project', ProjectDescription='SageMaker project with custom CFN template stored in S3', TemplateProviders=[{ 'CfnTemplateProvider': { 'TemplateName': 'CustomProjectTemplate', 'TemplateURL': f'https://<bucket_name>.s3.us-west-2.amazonaws.com/custom-project-template.yml', 'Parameters': [ {'Key': 'ParameterKey', 'Value': 'ParameterValue'} ] } }] ) print(f"Project ARN: {response['ProjectArn']}")

SageMaker プロジェクトを更新するには、次の例を参照してください。

sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') response = sagemaker_client.update_project( ProjectName='my-custom-project', ProjectDescription='SageMaker project with custom CFN template stored in S3', TemplateProvidersToUpdate=[{ 'CfnTemplateProvider': { 'TemplateName': 'CustomProjectTemplate', 'TemplateURL': f'https://<bucket_name>.s3.us-west-2.amazonaws.com/custom-project-template.yml', 'Parameters': [ {'Key': 'ParameterKey', 'Value': 'ParameterValue'} ] } }] ) print(f"Project ARN: {response['ProjectArn']}")