本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中提交服务作业 AWS Batch
要向提交服务任务 AWS Batch,请使用 SubmitServiceJobAPI。您可以使用 AWS CLI 或 SDK 提交作业。
如果您还没有执行角色,则必须先创建一个执行角色,然后才能提交服务作业。要创建 SageMaker AI 执行角色,请参阅 SageMaker AI 开发者指南中的如何使用 SageMaker AI 执行角色。
服务作业提交工作流程
提交服务任务时,请 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
,任何输出都准备好下载了。
先决条件
在提交服务任务之前,请确保您已经:
-
服务环境-定义容量限制的服务环境。有关更多信息,请参阅 在中创建服务环境 AWS Batch。
-
SageMaker 作业队列-用于提供 SageMaker 作业调度的作业队列。有关更多信息,请参阅 在中创建 SageMaker 训练作业队列 AWS Batch。
-
IAM 权限 — 创建和管理 AWS Batch 任务队列和服务环境的权限。有关更多信息,请参阅 AWS Batch IAM 策略、角色和权限。
使用 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。