翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SageMaker がトレーニングイメージを実行する方法
Docker コンテナを実行可能ファイルとして実行するように設定するには、Dockerfile で ENTRYPOINT
命令を使用します。以下の点に注意してください。
-
モデルトレーニングの場合、Amazon SageMaker はコンテナを次のように実行します。
docker run
image
trainSageMaker はイメージ名の後に
train
引数を指定して、コンテナ内のデフォルトのCMD
ステートメントを上書きします。train
引数は、Dockerfile のCMD
を使用して指定した引数も上書きします。 -
Dockerfileで、
ENTRYPOINT
命令のexec
形式を使用します。ENTRYPOINT ["executable", "param1", "param2", ...]
例:
ENTRYPOINT ["python", "k-means-algorithm.py"]
exec
命令のENTRYPOINT
フォームは、/bin/sh
の子としてではなく、直接実行ファイルを開始します。これにより、SageMaker API からSIGTERM
やSIGKILL
などのシグナルを受け取ることができます。以下の点に注意してください。-
-
CreateTrainingJob
API には、特定の時間後にモデルトレーニングを停止するように SageMaker に指示する停止条件があります。 -
-
StopTrainingJob
API は、と同等を発行します。docker stop
で、指定されたコンテナを適切に停止するには、2 分のタイムアウトコマンドを実行します。docker stop -t120
コマンドは、
SIGTERM
シグナルを送信することで実行中のコンテナの停止を試みます。2 分間のタイムアウト後、API はSIGKILL
を送信しコンテナを強制的に停止します。コンテナがSIGTERM
を正常に処理し、その受信時から 120 秒以内に終了する場合、SIGKILL
は送信されません。
注記 SageMaker がトレーニングを停止した後に中間モデルアーティファクトへのアクセスが必要な場合は、
SIGTERM
ハンドラにアーティファクトの保存を処理するコードを追加します。 -
-
モデルのトレーニングに GPU デバイスを使用する予定がある場合は、コンテナが
nvidia-docker
と互換であることを確認します。コンテナに含める必要があるのは CUDA ツールキットのみです。NVIDIA ドライバーをイメージにバンドルしないでください。nvidia-docker
の詳細については、NVIDIA/nvidia-dockerを参照してください。 -
tini
引数とtrain
引数で混乱が生じるため、SageMaker コンテナでは、serve
イニシャライザをエントリポイントとして使用することはできません。 -
/opt/ml
とすべてのサブディレクトリが SageMaker トレーニングによって予約されています。アルゴリズムの Docker イメージを構築する場合は、アルゴリズムに必要なデータをそれらのイメージの下に配置しないでください。配置すると、データがトレーニング時に表示されなくなる可能性があります。