翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker 用のカスタム Docker コンテナイメージを作成し、AWS Step Functions のモデルトレーニングに使用する
Amazon Web Services、Julia Bluszcz、Aubrey Oosthuizen、Mohan Gowda Purushothama、Neha Sharma、および Mateusz Zaremba
概要
このパターンは、Amazon SageMaker 用の Docker コンテナイメージを作成し、それを AWS Step Functions のトレーニングモデルに使用する方法を示しています。アルゴリズムをコンテナにパッケージ化することにより、プログラミング言語、フレームワーク、依存関係に関係なく、ほぼすべてのコードを SageMaker 環境で実行できます。
提供されている SageMaker ノートブックの例では、カスタム Docker コンテナイメージが Amazon Elastic Container Registry (Amazon ECR) に保存されています。Step Functions は Amazon ECR に保存されているコンテナを使用して、SageMaker 用の Python 処理スクリプトを実行します。その後、コンテナは Amazon Simple Storage Service (Amazon S3) にモデルをエクスポートします。
前提条件と制限事項
前提条件
アクティブなAWS アカウント
Amazon S3 アクセス許可を持つ SageMaker 用 AWS アイデンティティとアクセス管理 (IAM) ロール
Python に精通
Amazon SageMaker Python SDK に精通していること
AWS Command Line Interface (AWS CLI) に精通していること
AWS SDK for Python (Boto3) に精通していること
Amazon ECR に精通している
Docker に精通していること
製品バージョン
AWS Step Functions データサイエンス SDK バージョン 2.3.0
Amazon SageMaker Python SDK バージョン 2.78.0
アーキテクチャ
次の図は、SageMaker 用の Docker コンテナイメージを作成し、それを Step Functions のトレーニングモデルに使用するためのワークフローの例を示しています。

この図表は、次のワークフローを示しています:
データサイエンティストまたは DevOps エンジニアは、Amazon SageMaker ノートブックでカスタム Docker コンテナイメージを作成します。
データサイエンティストまたは DevOps エンジニアは、Docker コンテナイメージをプライベートレジストリにおける Amazon ECR プライベートリポジトリに保存します。
データサイエンティストまたは DevOps エンジニアは、Docker コンテナで、Step Functions ワークフロー内の Python SageMaker 処理ジョブを実行します。
自動化とスケール
このパターンの SageMaker ノートブックの例としては、ml.m5.xlarge ノートブックインスタンスタイプを使用します。ユースケースに応じて、インスタンスタイプを変更することができます。SageMaker ノートブックインスタンスタイプの詳細については、「Amazon SageMaker の料金表
ツール
Amazon Elastic Container Registry (Amazon ECR) は、セキュリティ、スケーラビリティ、信頼性を備えたマネージドコンテナイメージレジストリサービスです。
「Amazon SageMaker」 はマネージド型の機械学習 (ML) サービスで、ML モデルの構築とトレーニングを行い、それらを本番稼働環境に対応したホスティング環境にデプロイします。
Amazon SageMaker Python SDK
は、SageMaker で機械学習モデルのトレーニングおよびそれを展開するためのオープンソースライブラリです。 AWS Step Functionsは、AWS Lambda 関数と他のAWS サービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバーレスオーケストレーションサービスです。
AWS Step Functions データサイエンス Python SDK
は、機械学習モデルを処理および公開する Step Functions のワークフローの作成を支援するオープンソースライブラリです。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
Amazon ECR をセットアップし、新しいプライベートレジストリを作成します。 | まだ Amazon ECR をセットアップしていない場合は、「Amazon ECR ユーザーガイド」の「Amazon ECR のセットアップ」に記載されている指示に従ってください。各 AWS アカウントには、デフォルトのプライベート Amazon ECR レジストリが提供されます。 | DevOps エンジニア |
Amazon ECR プライベートリポジトリを作成します。 | 「Amazon ECR ユーザーガイド」の「プライベートリポジトリの作成」に記載されている指示に従ってください。 注記作成したリポジトリは、カスタム Docker コンテナイメージを保存する場所です。 | DevOps エンジニア |
SageMaker 処理ジョブの実行に必要な仕様を含む Docker ファイルを作成します。 | Dockerfile を設定して、SageMaker 処理ジョブの実行に必要な仕様を含む Dockerfile を作成します。手順については、Amazon SageMaker 開発者ガイドの「独自のトレーニングコンテナの調整」を参照してください。 Docker ファイルの詳細については、「Docker ドキュメント」の「Dockerfile ファイルリファレンス 例:Jupyter Notebookのコードセルで[Dockerfile]を作成 セル 1
セル 2
| DevOps エンジニア |
Docker コンテナイメージを構築し、Amazon ECR にプッシュします。 |
詳細については、GitHub での独自のアルゴリズムコンテナの構築の「コンテナの構築と登録 Docker イメージを構築して登録する Jupyter Notebookのコードセルの例 重要次のセルを実行する前に、Docker ファイルを作成し、 セル 1
セル 2
セル 3
セル 4
注記Docker クライアントをプライベートレジストリに認証して、 | DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
カスタム処理とモデルトレーニングロジックを含む Python スクリプトを作成します。 | カスタム処理ロジックを書き込んでデータ処理スクリプトで実行します。その後、これを Python スクリプトとして、 詳細については、GitHub の「SageMaker スクリプトモードでモデルを自作 カスタム処理とモデルトレーニングロジックを含む Python スクリプトの例
| データサイエンティスト |
SageMaker 処理ジョブをステップの 1 つとして含むステップファンクションワークフローを作成します。 | AWS Step Functions データサイエンス SDK 重要AWS アカウントで Step Functions 用の IAM 実行ロールを作成 Amazon S3 にアップロードする環境設定例とカスタムトレーニングスクリプト
カスタム Amazon ECR イメージと Python スクリプトを使用する SageMaker 処理ステップ定義の例 注記
SageMaker 処理ジョブを実行するStep Functions ワークフローの例 注記このサンプルワークフローに含まれているのは、SageMaker 処理ジョブステップのみであり、Step Functions ワークフローのすべてのステップが含まれているわけではありません。完全なワークフローの例については、「AWS Step Functions データサイエンス SDK ドキュメント」の「SageMaker のノートブック例
| データサイエンティスト |
関連リソース
「データのプロセス」(「Amazon SageMaker デベロッパーガイド」)
「独自のトレーニングコンテナを調整する」(「Amazon SageMaker 開発者ガイド」)