Amazon SageMaker がトレーニングイメージを実行する方法 - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SageMaker がトレーニングイメージを実行する方法

Docker コンテナを実行可能ファイルとして実行するように設定するには、Dockerfile で ENTRYPOINT 命令を使用します。次の点に注意してください。

  • モデルトレーニングの場合、Amazon SageMaker はコンテナを次のように実行します。

    docker run image train

    SageMaker はデフォルトのCMD指定することによって、コンテナでステートメントをtrainイメージ名の後に引数を指定します。train 引数は、Dockerfile の CMD を使用して指定した引数も上書きします。

     

  • dockerfileで、ENTRYPOINT 命令の exec 形式を使用します。

    ENTRYPOINT ["executable", "param1", "param2", ...]

    次に例を示します。

    ENTRYPOINT ["python", "k-means-algorithm.py"]

    exec 命令の ENTRYPOINT フォームは、/bin/sh の子としてではなく、直接実行ファイルを開始します。これにより、次のようなシグナルを受け取ることができます。SIGTERMおよびSIGKILLをSageMaker APIから実行します。次の点に注意してください。

     

    • - CreateTrainingJobAPI には、特定の時間後にモデルトレーニングを停止するよう SageMaker に指示する停止条件があります。

       

    • - StopTrainingJobAPI は同等です。docker stop指定されたコンテナを正常に停止するには、2 分のタイムアウトコマンドを使用します。

      docker stop -t120

      コマンドは、SIGTERM シグナルを送信することで実行中のコンテナの停止を試みます。2 分のタイムアウト後に、SIGKILL が送信され、コンテナが強制的に停止されます。コンテナが SIGTERM を正常に処理し、その受信時から 120 秒以内に終了する場合、SIGKILL は送信されません。

    注記

    SageMaker がトレーニングを停止した後に中間モデルアーティファクトへのアクセスが必要な場合は、SIGTERMハンドラーの引数。

  • モデルのトレーニングに GPU デバイスを使用する予定がある場合は、コンテナが nvidia-docker と互換であることを確認します。CUDA ツールキットのみがコンテナに含まれる必要があります。NVIDIA ドライバーをイメージにバンドルしないでください。nvidia-docker の詳細については、NVIDIA/nvidia-docker を参照してください。

  • 使用することはできませんtiniイニシャライザを SageMaker コンテナでは、エントリポイントとして使用します。これは、trainおよびserve引数。

  • /opt/mlとすべてのサブディレクトリが SageMaker トレーニングによって予約されています。アルゴリズムのDocker イメージを構築する場合は、アルゴリズムに必要なデータをそれらのイメージの下に配置しないでください。配置すると、データがトレーニング時に表示されなくなる可能性があります。