Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向配额共享提交作业
配额管理任务队列要求所有作业在提交作业时指定配额份额。要向配额共享提交作业,请在quotaShareName中指定SubmitServiceJob。preemptionConfiguration可以选择提供 A 来限制在任务尝试进入之前的抢占尝试次数。FAILED要限制工作经历的抢占次数,请在提交工作时将其设置preemptionRetriesBeforeTerminationServiceJobPreemptionConfiguration在内。
先决条件
在向配额共享提交作业之前,请确保您已经:
向配额共享提交服务任务
下表显示了如何使用 SageMaker Python SDK 或 Amazon CLI 向配额共享提交服务任务:
- Submit using the SageMaker Python SDK
-
SageMaker Python SDK 内置支持向启用配额管理的作业队列提交作业。以下示例说明如何创建模型训练器、创建训练队列以及如何向配额共享提交作业。有关完整示例,请参阅上的完整示例笔记本 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并指定,将任务提交给配额共享quota_share_name。您应该设置priority以影响配额份额内的任务顺序。现实世界ModelTrainer需要inputs这样才能有数据可以训练。
job = queue.submit(
job_name="my-training-job",
training_job=model_trainer,
quota_share_name="my_quota_share",
priority=3,
inputs=None,
)
- Submit using the Amazon CLI
-
以下示例使用submit-service-job命令向配额共享提交任务。
aws batch submit-service-job \
--job-name "my-sagemaker-training-job" \
--job-queue "my-sagemaker-job-queue" \
--service-job-type "SAGEMAKER_TRAINING" \
--quota-share-name "my_quota_share" \
--timeout-config '{"attemptDurationSeconds":3600}' \
--scheduling-priority 5 \
--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}}'"