本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中提交服務任務 AWS Batch
若要提交服務任務給 AWS Batch,您可以使用 SubmitServiceJob API。您可以使用 AWS CLI 或 SDK 提交任務。
如果您還沒有執行角色,則必須建立一個,才能提交您的服務任務。若要建立 SageMaker AI 執行角色,請參閱 SageMaker AI 開發人員指南中的如何使用 SageMaker AI 執行角色。 SageMaker
服務任務提交工作流程
當您提交服務任務時, AWS Batch 會遵循此工作流程:
-
AWS Batch 會接收您的
SubmitServiceJob
請求並驗證 AWS Batch特定參數。serviceRequestPayload
會在未驗證的情況下傳遞。 -
任務進入
SUBMITTED
狀態,並放置在指定的任務佇列中 -
AWS Batch 評估佇列前方
RUNNABLE
任務的服務環境中是否有可用的容量 -
如果容量可用,任務會移至 ,
SCHEDULED
且任務已傳遞至 SageMaker AI -
當容量已取得且 SageMaker AI 已下載服務任務資料時,服務任務將開始初始化,並將任務變更為
STARTING
。 -
當 SageMaker AI 開始執行任務時,其狀態會變更為
RUNNING
。 -
當 SageMaker AI 執行任務時, AWS Batch 會監控其進度並將服務狀態映射至 AWS Batch 任務狀態。如需如何映射服務任務狀態的詳細資訊,請參閱 將 AWS Batch 服務任務狀態映射至 SageMaker AI 狀態
當服務任務完成時,它會移至 ,
SUCCEEDED
並且任何輸出都已準備好下載。
先決條件
提交 servicde 任務之前,請確定您已:
-
服務環境 – 定義容量限制的服務環境。如需詳細資訊,請參閱在 中建立服務環境 AWS Batch。
-
SageMaker 任務佇列 – 提供任務排程的 SageMaker 任務佇列。如需詳細資訊,請參閱在 中建立 SageMaker 訓練任務佇列 AWS Batch。
-
IAM 許可 – 建立和管理 AWS Batch 任務佇列和服務環境的許可。如需詳細資訊,請參閱AWS Batch IAM 政策、角色和許可。
使用 CLI AWS 提交服務任務
以下說明如何使用 CLI AWS 提交服務任務:
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。