翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モデルのトレーニングとデプロイのための Docker コンテナ
Amazon SageMaker は、ビルドタスクとランタイムタスクに Docker コンテナを幅広く活用しています。 は、組み込みアルゴリズムとトレーニングと推論に使用されるサポートされている深層学習フレームワーク用に、構築済みの Docker イメージ SageMaker を提供します。コンテナを使用することで、機械学習アルゴリズムをトレーニングし、規模を問わずモデルを迅速かつ確実にデプロイできます。このセクションの各トピックでは、独自のユースケース用にこれらのコンテナをデプロイする方法について説明します。Amazon SageMaker Studio Classic で使用する独自のコンテナを持ち込む方法については、「」を参照してください独自の SageMaker イメージを持参する。
トピック
でスクリプト、トレーニングアルゴリズム、またはモデルをデプロイするためのシナリオ SageMaker
Amazon は、スクリプトの実行、アルゴリズムのトレーニング、モデルのデプロイ時に SageMaker 常に Docker コンテナを使用します。コンテナとのエンゲージメントのレベルは、ユースケースによって異なります。
次の決定木は、3 つの主なシナリオを示しています。 で構築済みの Docker コンテナを使用するためのユースケース SageMaker、構築済みの Docker コンテナを拡張するためのユースケース、独自のコンテナを構築するためのユースケース。
で構築済みの Docker コンテナを使用するためのユースケース SageMaker
でコンテナを使用する場合は、次のユースケースを考慮してください SageMaker。
-
構築済み SageMaker アルゴリズム – 組み込みアルゴリズムに付属するイメージを使用します。詳細については、「Amazon SageMaker 組み込みアルゴリズムまたはトレーニング済みモデルを使用する」を参照してください。
-
構築 SageMaker済みコンテナを使用したカスタムモデル – カスタムモデルをトレーニングまたはデプロイするが、 TensorFlow および を含む構築済み SageMaker コンテナを持つフレームワークを使用する場合は PyTorch、次のいずれかのオプションを選択します。
-
カスタムパッケージが不要で、必要なパッケージがコンテナに既にすべて含まれている場合、フレームワークに関連する構築済み Docker イメージを使用してください。詳細については、「構築済みの SageMaker Docker イメージ」を参照してください。
-
構築済みコンテナのいずれかにカスタムパッケージをインストールする必要がある場合、構築済みの 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 のフレームワークと言語」を参照してください。 SageMaker ノートブックインスタンスで実行されている Jupyter ノートブックを使用して組み込みアルゴリズムをトレーニングしてデプロイする例については、Amazon のセットアップガイド SageMaker「」トピックを参照してください。 -
構築済みの SageMaker コンテナイメージ を使用します。または、Docker Containers を使用して組み込みアルゴリズムとフレームワークを使用できます。 は、組み込みアルゴリズム用のコンテナと、Apache MXNet、 TensorFlow PyTorch、Chainer などの最も一般的な機械学習フレームワーク用の事前構築済みの Docker イメージ SageMaker を提供します。使用可能な SageMaker イメージの完全なリストについては、「使用可能な深層学習コンテナイメージ
」を参照してください。また、scikit-learn や SparkML などの機械学習ライブラリもサポートしています。Amazon SageMaker Python SDK を使用する場合は、コンテナ全体をそれぞれの SageMaker SDK Estimator
クラスURIに渡すことでコンテナをデプロイできます。現在 でサポートされている深層学習フレームワークの完全なリストについては SageMaker、「」を参照してください深層学習用の構築済み SageMaker Docker イメージ。scikit-learn および SparkML の構築済みコンテナイメージの詳細については、「Scikit-learn と Spark ML の Docker イメージへのアクセス」を参照してください。Amazon SageMaker Python SDKでフレームワークを使用する方法の詳細については、 のそれぞれのトピックを参照してください機械学習フレームワークと言語。 -
構築済みの SageMaker コンテナイメージ を拡張します。構築済みの SageMaker アルゴリズムまたはモデル Docker イメージを拡張する場合は、ニーズに合わせて SageMaker イメージを変更できます。例については、 PyTorch 「コンテナの拡張
」を参照してください。 -
既存のコンテナイメージを適応させる: 既存のコンテナイメージを と連携させる場合は SageMaker、 SageMaker トレーニングツールキットまたは推論ツールキットを有効にするように Docker コンテナを変更する必要があります。独自のコンテナを構築してアルゴリズムをトレーニングまたはホストする方法を示す例については、「Bring Your Own R Algorithm
」を参照してください。
のトラブルシューティング Docker コンテナとデプロイ
以下は、 の使用時に発生する可能性のある一般的なエラーです。Docker を含むコンテナ SageMaker。各問題の後に、問題の解決策が説明されています。
-
エラー: SageMaker は を失いました Docker デーモン。
このエラーを修正するには、次のコマンドを使用して Docker を再起動します。
sudo service docker restart
-
エラー: の
/tmp
ディレクトリ Docker コンテナの容量が不足しています。Docker コンテナは
/
と/tmp
パーティションを使用してコードを保存します。ローカルモードで大きなコードモジュールを使用すると、これらのパーティションはすぐにいっぱいになります。Python SageMakerは、この問題を回避するために、ローカルモードのルートディレクトリのカスタム一時ディレクトリの指定SDKをサポートしています。Amazon Elastic Block Store ボリュームストレージでカスタム一時ディレクトリを指定するには、次のパスでファイルを作成し
~/.sagemaker/config.yaml
、次の設定を追加します。container_root
として指定するディレクトリは既存であることが必要です。Python SageMakerSDKは作成しようとしません。local: container_root: /home/ec2-user/SageMaker/temp
この設定では、ローカルモードが使用するのは
/temp
ディレクトリで、デフォルトの/tmp
ディレクトリではありません。 -
SageMaker ノートブックインスタンスの低スペースエラー
A Docker SageMaker ノートブックインスタンスで実行されるコンテナは、デフォルトでノートブックインスタンスのルート Amazon EBSボリュームを使用します。低スペースエラーを解決するには、ノートブックインスタンスにアタッチされた Amazon EBSボリュームのパスを のボリュームパラメータの一部として指定します。Docker コマンド。
docker run -v
EBS-volume-path
:container-path