でサービスジョブを送信する AWS Batch - AWS Batch

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

でサービスジョブを送信する AWS Batch

サービスジョブを送信するには AWS Batch、SubmitServiceJob API を使用します。 AWS CLI または SDK を使用してジョブを送信できます。

実行ロールがまだない場合は、サービスジョブを送信する前に作成する必要があります。SageMaker AI 実行ロールを作成するには、「SageMaker AI デベロッパーガイド」の「SageMaker AI 実行ロールの使用方法」を参照してください。

サービスジョブの送信ワークフロー

サービスジョブを送信すると、 はこのワークフロー AWS Batch を実行します。

  1. AWS Batch はSubmitServiceJobリクエストを受け取り、 AWS Batch特定のパラメータを検証します。serviceRequestPayload は検証なしで渡されます。

  2. ジョブは SUBMITTED 状態になり、指定されたジョブキューに配置されます。

  3. AWS Batch は、キューの前面にあるRUNNABLEジョブに対してサービス環境に使用可能な容量があるかどうかを評価します。

  4. 容量が利用可能な場合、ジョブは SCHEDULED に移動し、ジョブは SageMaker AI に渡されます。

  5. 容量が取得され、SageMaker AI がサービスジョブデータをダウンロードすると、サービスジョブは初期化を開始し、ジョブは STARTING に変更されます。

  6. SageMaker AI がジョブの実行を開始すると、ステータスは RUNNING に変更されます。

  7. SageMaker AI がジョブを実行する間、 は進行状況 AWS Batch を監視し、サービスの状態を AWS Batch ジョブの状態にマッピングします。サービスジョブの状態のマッピング方法の詳細については、「AWS Batch サービスジョブのステータスを SageMaker AI ステータスにマッピングする」を参照してください。

  8. サービスジョブが完了すると、SUCCEEDED に移動し、出力をダウンロードする準備が整います。

前提条件

サービスジョブを送信する前に、以下があることを確認してください。

CLI AWS を使用してサービスジョブを送信する

AWS CLI を使用してサービスジョブを送信する方法を以下に示します。

aws batch submit-service-job \ --job-name "my-sagemaker-training-job" \ --job-queue "my-sagemaker-job-queue" \ --service-job-type "SAGEMAKER_TRAINING" \ --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\": [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}' --client-token "unique-token-12345"

serviceRequestPayload パラメータの詳細については、「のサービスジョブペイロード AWS Batch」を参照してください。