翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Docker コンテナを使用してモデルを構築する
Amazon SageMaker では、ビルドタスクとランタイムタスクに Docker コンテナを幅広く使用しています。 SageMaker 組み込みアルゴリズム用のビルド済みの Docker イメージと、トレーニングや推論に使用されるサポート対象のディープラーニングフレームワークを提供しています。コンテナを使用することで、機械学習アルゴリズムをトレーニングし、規模を問わずモデルを迅速かつ確実にデプロイできます。このセクションの各トピックでは、独自のユースケース用にこれらのコンテナをデプロイする方法について説明します。Amazon SageMaker Studio Classic で使用する独自のコンテナを持ち込む方法については、を参照してください SageMaker 独自のイメージを持参してください。。
トピック
を使用してスクリプトを実行したり、アルゴリズムをトレーニングしたり、モデルをデプロイしたりするシナリオ SageMaker
Amazon は、スクリプトの実行、アルゴリズムのトレーニング、 SageMaker モデルのデプロイ時に常に Docker コンテナを使用します。コンテナとのエンゲージメントのレベルは、ユースケースによって異なります。
以下のデシジョンツリーは、ビルド済みの Docker コンテナを使用する場合のユースケース、ビルド済みの Docker コンテナを拡張する場合のユースケース、独自のコンテナを構築する場合のユースケースの 3 つの主なシナリオを示しています。 SageMaker
ビルド済みの Docker コンテナをと一緒に使用する場合のユースケース SageMaker
でコンテナを使用するときは、以下のユースケースを検討してください。 SageMaker
-
SageMaker ビルド済みアルゴリズム — 組み込みアルゴリズムに付属するイメージを使用してください。詳細については、「Amazon SageMaker の組み込みアルゴリズムまたは事前トレーニング済みモデルの使用」を参照してください。
-
SageMaker事前構築済みコンテナを含むカスタムモデル — カスタムモデルをトレーニングまたはデプロイするが、 SageMaker TensorFlow とを含む事前構築済みコンテナを含むフレームワークを使用する場合は PyTorch、以下のいずれかのオプションを選択します。
-
カスタムパッケージが不要で、必要なパッケージがコンテナに既にすべて含まれている場合、フレームワークに関連する構築済み Docker イメージを使用してください。詳細については、「ビルド済みの Docker イメージを使用する SageMaker 」を参照してください。
-
構築済みコンテナのいずれかにカスタムパッケージをインストールする必要がある場合、構築済みの Docker イメージで requirements.txt ファイルが許可されていることを確認するか、以下のユースケースに基づいて構築済みコンテナを拡張してください。
-
構築済みの Docker コンテナを拡張するユースケース
構築済みの Docker コンテナを拡張するユースケースは次のとおりです。
-
依存関係をインポートできない場合 — フレームワークに関連する構築済みの Docker イメージを拡張してください。詳細については、「構築済みコンテナを拡張する」を参照してください。
-
構築済みコンテナの依存関係をインポートすることができず、構築済みコンテナが requirements.txt をサポートする場合 — 必要な依存関係はすべて requirements.txt に追加してください。以下のフレームワークは requirements.txt の使用をサポートしています。
独自のコンテナを構築するためのユースケース
カスタムモデルを構築またはトレーニングしていて、構築済みのイメージがないカスタムフレームワークが必要な場合は、カスタムコンテナを構築してください。
TensorFlow モデルのトレーニングとデプロイのユースケースの例として、以下のガイドでは、「ユースケース」の前のセクションのどのオプションがケースに合っているかを判断する方法を示しています。
モデルのトレーニングとデプロイには以下の要件があると仮定します。 TensorFlow
-
TensorFlow モデルはカスタムモデルです。
-
TensorFlow モデルはフレームワークで構築されるため、 TensorFlow TensorFlow あらかじめ構築されたフレームワークコンテナを使用してモデルのトレーニングとホストを行います。
-
エントリポイント
スクリプトまたは推論スクリプトでカスタムパッケージが必要な場合は、構築済みのコンテナを拡張するか、requirements.txt ファイルを使用してランタイム時に依存関係をインストールしてください 。
必要なコンテナの種類が決まったら、以下のリストに前述のオプションの詳細が表示されます。
-
SageMaker 組み込みのアルゴリズムまたはフレームワークを使用してください。ほとんどのユースケースでは、コンテナを気にすることなく、組み込みのアルゴリズムとフレームワークを使用できます。これらのアルゴリズムは、 SageMaker コンソール、 AWS Command Line Interface (AWS CLI)、Python ノートブック、または Amazon SageMaker Python SDK
からトレーニングおよびデプロイできます。そのためには、Estimator の作成時にアルゴリズムまたはフレームワークのバージョンを指定してください。使用可能な組み込みアルゴリズムは、「Amazon SageMaker 組み込みアルゴリズムまたは事前トレーニング済みモデルを使用する」トピックで項目別に説明しています。使用可能なフレームワークの詳細については、「ML のフレームワークと言語」を参照してください。ノートブックインスタンスで実行されている Jupyter ノートブックを使用して組み込みアルゴリズムをトレーニングしてデプロイする方法の例については、トピックを参照してください。 SageMaker 使用を開始する -
SageMaker ビルド済みのコンテナイメージを使用してください。また、Docker コンテナを使用する組み込みのアルゴリズムとフレームワークを使用することもできます。 SageMaker には、Apache MXNet、、、Chainerなどの最も一般的な機械学習フレームワーク用の組み込みアルゴリズムとビルド済みのDockerイメージ用のコンテナが用意されています。 TensorFlow PyTorch SageMaker 利用可能なイメージの全リストについては、「利用可能なDeep Learning Containers イメージ
」を参照してください。また、scikit-learn や SparkML などの機械学習ライブラリもサポートしています。Amazon SageMaker Python SDK を使用する場合、コンテナの URI 全体をそれぞれの SageMaker SDK Estimator
クラスに渡すことでコンテナをデプロイできます。現在でサポートされているディープラーニングフレームワークの全リストについては SageMaker、を参照してくださいDeep Learning 用のビルド済み SageMaker Docker イメージ。scikit-learn および SparkML の構築済みコンテナイメージの詳細については、「Scikit-learn および Spark ML 用のビルド済み Amazon SageMaker Docker イメージ」を参照してください。Amazon SageMaker Python SDKでフレームワークを使用する方法の詳細については、の各トピックを参照してください。機械学習フレームワークと言語 -
SageMaker ビルド済みのコンテナイメージを拡張します。 SageMaker ビルド済みのアルゴリズムやモデルの Docker イメージを拡張したい場合は、 SageMaker ニーズに合わせてイメージを変更できます。例については、「コンテナの拡張
」を参照してください。 PyTorch -
既存のコンテナイメージの調整:既存のコンテナイメージを動作するように適合させたい場合は SageMaker、Docker コンテナを変更して SageMaker Training ツールキットまたは Inference ツールキットのいずれかを有効にする必要があります。独自のコンテナを構築してアルゴリズムをトレーニングまたはホストする方法を示す例については、「Bring Your Own R Algorithm
」を参照してください。