View a markdown version of this page

Envio de trabalhos para um compartilhamento de cota - AWS Batch

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Envio de trabalhos para um compartilhamento de cota

As filas de trabalhos de gerenciamento de cotas exigem que todos os trabalhos especifiquem um compartilhamento de cota no envio do trabalho. Para enviar trabalhos para um compartilhamento de cota, especifique a entradaquotaShareName. SubmitServiceJob Opcionalmente, um A preemptionConfiguration pode ser fornecido para limitar o número de tentativas de preempção antes que uma tentativa de emprego entre. FAILED Para limitar o número de preempções que um trabalho experimenta, defina preemptionRetriesBeforeTermination dentro do envio do ServiceJobPreemptionConfigurationtrabalho.

Pré-requisitos

Antes de enviar trabalhos para uma cota compartilhada, certifique-se de ter:

Enviar um trabalho de serviço para um compartilhamento de cota

A tabela abaixo mostra como enviar um trabalho de serviço para um compartilhamento de cota usando o SDK do SageMaker Python ou a CLI: AWS

Submit using the SageMaker Python SDK

O SDK do SageMaker Python tem suporte integrado para enviar trabalhos para uma fila de trabalhos habilitada para gerenciamento de cotas. Os exemplos a seguir mostram como criar um instrutor modelo, criar uma fila de treinamento e enviar trabalhos para um compartilhamento de cotas. Para ver um exemplo completo, consulte o caderno de amostra completo em GitHub.

Crie um ModelTrainer que defina a configuração do trabalho de treinamento.

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), )

Crie um TrainingQueue objeto que faça referência à sua fila de trabalhos habilitada para gerenciamento de cotas por nome.

from sagemaker.train.aws_batch.training_queue import TrainingQueue queue = TrainingQueue("my-sagemaker-job-queue")

Envie trabalhos para um compartilhamento de cotas ligando queue.submit e especificando o. quota_share_name Você deve definir um priority para influenciar a ordem de trabalho dentro da cota. Um mundo real ModelTrainer inputs exigirá dados para treinar.

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 AWS CLI

O exemplo a seguir usa o submit-service-job comando para enviar um trabalho para um compartilhamento de cota.

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}}'"