Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

Amazon SageMaker パイプライン共有を使用して、AWS アカウント全体のパイプラインを表示または管理します

9 年 2022 月 XNUMX 日に、クロスアカウント共有の一般提供を発表しました。 Amazon SageMaker パイプライン エンティティ. クロスアカウントサポートを使用できるようになりました AmazonSageMakerパイプライン AWS アカウント間でパイプライン エンティティを共有し、共有パイプラインに直接アクセスする アマゾンセージメーカー API呼び出し。

顧客はますます採用しています マルチアカウント アーキテクチャ SageMaker Pipelines を使用して機械学習 (ML) ワークフローをデプロイおよび管理するため。 これには、開発または実験 (dev) アカウントでのワークフローの構築、テストまたは運用前 (test) アカウントでの展開とテスト、および最終的にそれらを運用 (prod) アカウントに昇格させて他のビジネス プロセスと統合することが含まれます。 次のユースケースでは、SageMaker パイプラインのクロスアカウント共有の恩恵を受けることができます。

  • データ サイエンティストが開発アカウントで ML ワークフローを構築すると、それらのワークフローは ML エンジニアによって SageMaker パイプラインとして専用のテスト アカウントにデプロイされます。 これらのワークフローをさらに監視するために、データ サイエンティストは、テスト アカウントにデプロイされたパイプラインに対するクロスアカウントの読み取り専用アクセス許可を必要とするようになりました。
  • これらの ML ワークフローのデプロイと運用を共有サービス アカウントから管理する ML エンジニア、ML 管理者、およびコンプライアンス チームも、テスト アカウントでデプロイされたパイプラインを可視化する必要があります。 また、これらの ML ワークフローを開始、停止、および再試行するための追加のアクセス許可が必要になる場合もあります。

この投稿では、SageMaker Pipelines を使用して ML ワークフローを開発およびデプロイするためのマルチアカウント アーキテクチャの例を紹介します。

ソリューションの概要

マルチアカウント戦略は、ソフトウェア開発ライフサイクルのステップをサポートしながら、データ、プロジェクト、およびチームの分離を実現するのに役立ちます。 クロスアカウント パイプライン共有はマルチアカウント戦略をサポートし、複数のアカウントでのログインとログアウトのオーバーヘッドを取り除き、リソースを複数のアカウント間で直接共有することで ML テストとデプロイ ワークフローを改善します。

この例では、SageMaker パイプラインの初期開発に専用の開発アカウントを使用するデータ サイエンス チームがあります。 次に、このパイプラインは ML エンジニアに引き渡され、ML エンジニアは 継続的インテグレーションと継続的デリバリー (CI/CD) パイプライン 共有サービス アカウントで、このパイプラインをテスト アカウントにデプロイします。 展開されたパイプラインをそれぞれの開発および共有サービス アカウントから引き続き監視および制御できるようにするには、 リソース共有 で設定されています AWS リソース アクセス マネージャー テストおよび開発アカウントで。 この設定により、ML エンジニアとデータ サイエンティストは、次の図に示すように、それぞれのアカウントから開発アカウントとテスト アカウントのパイプラインを監視および制御できるようになりました。

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

ワークフローでは、データ サイエンティストと ML エンジニアが次の手順を実行します。

  1. データ サイエンティスト (DS) は、開発アカウントでモデル パイプラインを構築します。
  2. ML エンジニア (MLE) は、モデル パイプラインを製品化し、パイプラインを作成します (この投稿では、それを呼び出します)。 sagemaker-pipeline).
  3. sagemaker-pipeline コードはコミットされます AWS コードコミット 共有サービス アカウントのリポジトリ。
  4. データ サイエンティストは、AWS RAM リソース共有を作成します。 sagemaker-pipeline リソース共有を受け入れる共有サービス アカウントと共有します。
  5. 共有サービス アカウントから、ML エンジニアは dev アカウントでパイプラインの実行を記述、監視、管理できるようになりました。 SageMaker API 呼び出し.
  6. 共有サービス アカウントでトリガーされた CI/CD パイプラインは、次を使用してコードをビルドし、テスト アカウントにデプロイします。 AWS コードパイプライン.
  7. CI/CD パイプラインの作成と実行 sagemaker-pipeline テストアカウントで。
  8. 実行後 sagemaker-pipeline テスト アカウントでは、CI/CD パイプラインによってリソース共有が作成されます。 sagemaker-pipeline テストアカウントで。
  9. テストからのリソース共有 sagemaker-pipeline 読み取り専用権限を持つ は、リソース共有を受け入れる dev アカウントで作成されます。
  10. データ サイエンティストは、dev アカウントからの SageMaker API 呼び出しを使用して、テスト パイプラインの実行ステータスを記述および監視できるようになりました。
  11. テストからのリソース共有 sagemaker-pipeline with extended permissions は、リソース共有を受け入れる共有サービス アカウントで作成されます。
  12. ML エンジニアは、共有サービス アカウントからの SageMaker API 呼び出しを使用して、テスト パイプラインの実行を記述、監視、および管理できるようになりました。

以下のセクションでは、SageMaker パイプラインのクロスアカウント共有を設定する方法について詳しく説明し、デモンストレーションを提供します。

アカウント間で SageMaker パイプラインを作成して共有する方法

このセクションでは、AWS RAM と SageMaker API を使用してアカウント間でパイプラインを作成および共有するために必要な手順について説明します。

環境をセットアップする

まず、マルチアカウント環境をセットアップして、SageMaker パイプラインのクロスアカウント共有を実証する必要があります。

  1. XNUMX つの AWS アカウント (開発とテスト) をセットアップします。 これは、組織のメンバー アカウントまたは独立したアカウントとして設定できます。
  2. 組織のメンバーとしてアカウントを設定している場合は、有効にすることができます 組織とのリソース共有. この設定では、組織内でリソースを共有するときに、AWS RAM はプリンシパルに招待を送信しません。 組織内のプリンシパルは、招待を交換せずに共有リソースにアクセスできます。
  3. テスト アカウントで、起動します。 Amazon SageMakerスタジオ ノートブックを実行します トレーニング-登録-デプロイ-パイプライン-モデル. これにより、テスト アカウントにサンプル パイプラインが作成されます。 デモンストレーションを簡単にするために、テスト アカウントで SageMaker Studio を使用してパイプラインを起動します。 実際のプロジェクトでは、開発アカウントでのみ Studio を使用し、CI/CD ツールを使用してテスト アカウントで SageMaker パイプラインを起動する必要があります。

次のセクションの手順に従って、このパイプラインを開発アカウントと共有します。

パイプライン リソース共有を設定する

パイプラインを dev アカウントと共有するには、次の手順を実行します。

  1. AWS RAM コンソールで、 リソース共有の作成.
  2. リソースの種類を選択、選択する SageMakerパイプライン.
  3. 前の手順で作成したパイプラインを選択します。
  4. 選択する Next.
  5. 権限で、関連する権限を選択します。
  6. 選択する Next.
    Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。次に、プリンシパルへのアクセスを許可する方法を決定します。
  7. 組織のアカウント内でのみパイプラインを共有する必要がある場合は、選択します。 組織内でのみ共有を許可する; それ以外を選択 誰とでも共有できるようにする.
  8. プリンシパル、プリンシパル タイプを選択します (共有要件に基づいて、AWS アカウント、組織、または組織単位を使用できます)。 この投稿では、AWS アカウント レベルで誰とでも共有します。
  9. プリンシパル ID を選択します。
  10. 選択する Next.
    Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。
  11. ソフトウェア設定ページで、下図のように 確認して作成する ページで、情報が正しいことを確認して選択します リソース共有の作成.
    Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。
  12. 目的のアカウントに移動します (この投稿では、開発者アカウント)。
  13. AWS RAMコンソールで、 私と共有 ナビゲーション ペインで、 リソース共有.
  14. リソース共有を選択して選択します リソース共有を受け入れる.
    Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

リソース共有のアクセス許可

リソース共有を作成するときに、サポートされている XNUMX つのアクセス許可ポリシーのいずれかを選択して、SageMaker パイプライン リソース タイプに関連付けることができます。 どちらのポリシーも、選択したパイプラインとそのすべての実行へのアクセスを許可します。

  AWSRAMDefaultPermissionSageMakerPipeline ポリシーは、次の読み取り専用アクションを許可します。

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

  AWSRAMPermissionSageMakerPipelineAllowExecution ポリシーには、既定のポリシーのすべての読み取り専用アクセス許可が含まれており、共有アカウントがパイプラインの実行を開始、停止、および再試行することもできます。

拡張パイプライン実行アクセス許可ポリシーでは、次のアクションが許可されます。

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

直接 API 呼び出しを介して共有パイプライン エンティティにアクセスする

このセクションでは、さまざまな SageMaker Pipeline API 呼び出しを使用して、共有されているリモート アカウントで実行されているパイプラインを可視化する方法について説明します。 開発アカウントからテスト アカウントで実行されているパイプラインに対して API をテストするには、開発アカウントにログインして使用します。 AWS クラウドシェル.

クロスアカウント SageMaker Pipeline API 呼び出しの場合、常にパイプライン ARN をパイプライン ID として使用する必要があります。 これには、パイプライン ARN をパイプライン名として使用する必要がある、パイプライン名を必要とするコマンドも含まれます。

パイプライン ARN を取得するには、テスト アカウントで、Studio のパイプラインの詳細に移動します。 SageMaker リソース.

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

選択する パイプライン あなたのリソースリストに。

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

パイプラインを選択し、パイプラインに移動します 設定 タブ。 パイプライン ARN は、 情報。 この例では、ARN は次のように定義されています。 "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。

パイプライン実行のリスト

この API 呼び出し 実行をリストします あなたのパイプラインの。 次のコマンドを実行します。 $SHARED_PIPELINE_ARN CloudShell からパイプライン ARN を使用するか、 AWSコマンドラインインターフェイス (AWS CLI) 適切な AWS IDおよびアクセス管理 (わたし) 役割:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

応答には、パイプラインのすべての実行が一覧表示されます。 PipelineExecutionArn, StartTime, PipelineExecutionStatus, PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

説明パイプライン

この API 呼び出し 詳細を説明します あなたのパイプラインの。 次のコマンドを実行します。 $SHARED_PIPELINE_ARN パイプライン ARN で:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

応答は、パイプラインのメタデータと、パイプラインの作成と変更に関する情報を提供します。

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

記述パイプライン実行

この API 呼び出し 詳細を説明します パイプライン実行の。 次のコマンドを実行します。 $SHARED_PIPELINE_ARN パイプライン ARN で:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

レスポンスは、パイプラインの実行に関する詳細を提供します。 PipelineExecutionStatus, ExperimentName, TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

StartPipelineExecution

この API 呼び出し 開始 パイプラインの実行。 次のコマンドを実行します。 $SHARED_PIPELINE_ARN パイプライン ARN と $CLIENT_REQUEST_TOKEN この実行用に生成した、大文字と小文字が区別される一意の識別子を使用します。 識別子は 32 ~ 128 文字にする必要があります。 たとえば、次を使用して文字列を生成できます。 AWS CLI kms generate-random コマンド.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

応答として、この API 呼び出しは PipelineExecutionArn 開始された実行の:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

パイプライン実行の停止

この API 呼び出し 停止する パイプラインの実行。 次のコマンドを実行します。 $PIPELINE_EXECUTION_ARN 実行中のパイプラインのパイプライン実行 ARN を使用し、 $CLIENT_REQUEST_TOKEN この実行用に生成した、大文字と小文字が区別される一意の識別子を使用します。 識別子は 32 ~ 128 文字にする必要があります。 たとえば、次を使用して文字列を生成できます。 AWS CLI kms generate-random コマンド.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

応答として、この API 呼び出しは PipelineExecutionArn 停止したパイプラインの:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

まとめ

SageMaker パイプラインのクロスアカウント共有により、AWS アカウント間でパイプライン エンティティを安全に共有し、直接 API 呼び出しを介して共有パイプラインにアクセスできます。複数のアカウントにログインおよびログアウトする必要はありません。

この投稿では、機能を掘り下げて、アカウント間でパイプラインを共有し、SageMaker API 呼び出しを介してそれらにアクセスする方法を示します。

次のステップとして、この機能を次の ML プロジェクトに使用できます。

リソース

SageMaker パイプラインの使用を開始し、アカウント間でパイプラインを共有するには、次のリソースを参照してください。


著者について

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。ラムヴィタル AWS の ML スペシャリスト ソリューション アーキテクトです。 彼は、分散、ハイブリッド、およびクラウド アプリケーションの設計と構築に 20 年以上の経験があります。 彼は、安全でスケーラブルな AI/ML およびビッグデータ ソリューションの構築に情熱を傾けており、企業の顧客がクラウドの導入と最適化を行ってビジネス成果を向上させるのを支援しています。 余暇には、テニス、写真、アクション映画を楽しんでいます。

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。マイラ・ラデイラ・タンケ AWS の ML スペシャリスト ソリューション アーキテクトです。 データ サイエンスのバックグラウンドを持つ彼女は、さまざまな業界の顧客と共に ML アプリケーションの設計と構築に 9 年間携わってきました。 彼女はテクニカル リーダーとして、新しいテクノロジと革新的なソリューションを通じて、顧客がビジネス価値の達成を加速するのを支援しています。 マイラは自由な時間に旅行を楽しんだり、暖かい場所で家族と過ごしたりしています。

Amazon SageMaker パイプライン共有を使用して、AWS アカウント PlatoBlockchain Data Intelligence のパイプラインを表示または管理します。 垂直検索。 あい。ガブリエル・ジルカ AWS のプロフェッショナル サービス コンサルタントです。 彼は顧客と緊密に連携して、クラウド導入の旅を加速させています。 MLOps ドメインを専門とする彼は、エンドツーエンドの機械学習ライフサイクルを自動化し、望ましいビジネス成果の達成を支援することで、機械学習ワークロードの生産化に注力しています。 余暇には、旅行やバイエルン アルプスでのハイキングを楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習