本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中提交服務任務 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並準備好下載任何輸出。
先決條件
提交服務任務之前,請確定您有:
提交服務任務
下表顯示如何使用 SageMaker Python SDK 或 CLI AWS 提交服務任務:
- Submit using the SageMaker Python SDK
-
SageMaker Python SDK 內建支援將任務提交至 AWS Batch。下列範例示範如何建立模型訓練器、建立訓練佇列,以及提交任務。如需完整範例,請參閱 GitHub 上的完整範例筆記本。
建立ModelTrainer定義訓練任務組態的 。
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import SourceCode, Compute, StoppingCondition
source_code = SourceCode(command="echo 'Hello World'")
model_trainer = ModelTrainer(
training_image="123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.5-gpu-py311",
source_code=source_code,
base_job_name="my-training-job",
compute=Compute(instance_type="ml.g5.xlarge", instance_count=1),
stopping_condition=StoppingCondition(max_runtime_in_seconds=300),
)
建立依名稱參考任務佇列的TrainingQueue物件。
from sagemaker.train.aws_batch.training_queue import TrainingQueue
queue = TrainingQueue("my-sagemaker-job-queue")
呼叫 來提交任務queue.submit。
job = queue.submit(
training_job=model_trainer,
inputs=None,
)
- Submit using the AWS CLI
-
以下說明如何使用 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。