View a markdown version of this page

Someter los trabajos a una cuota de cuota - AWS Batch

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Someter los trabajos a una cuota de cuota

Las colas de trabajos de administración de cuotas requieren que todos los trabajos especifiquen una cuota de cuota al enviar el trabajo. Para enviar los trabajos a una cuota compartida, especifique la entradaquotaShareName. SubmitServiceJob Opcionalmente, se preemptionConfiguration puede proporcionar una para limitar el número de intentos de prioridad antes de que se produzca un intento de trabajo. FAILED Para limitar el número de preferencias que puede tener un trabajo, establézcalo en el momento de la presentación preemptionRetriesBeforeTermination del ServiceJobPreemptionConfigurationtrabajo.

Requisitos previos

Antes de enviar los trabajos a una cuota compartida, asegúrate de tener:

Envíe un trabajo de servicio a una cuota compartida

La siguiente tabla muestra cómo enviar un trabajo de servicio a una cuota compartida mediante el SDK de SageMaker Python o la AWS CLI:

Submit using the SageMaker Python SDK

El SDK de SageMaker Python tiene soporte integrado para enviar trabajos a una cola de trabajos habilitada para la administración de cuotas. Los siguientes ejemplos muestran cómo crear un formador modelo, crear una cola de formación y enviar los trabajos a una cuota compartida. Para ver un ejemplo completo, consulte el ejemplo completo del cuaderno en GitHub.

Cree una ModelTrainer que defina la configuración del trabajo de formación.

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

Cree un TrainingQueue objeto que haga referencia a su cola de trabajos habilitada para la gestión de cuotas por su nombre.

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

Envíe los trabajos a una cuota compartida llamando queue.submit y especificando elquota_share_name. Debe establecer una priority para influir en la ordenación de los trabajos dentro de la cuota. El mundo real ModelTrainer necesitará datos con los inputs que entrenarse.

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

En el siguiente ejemplo, se utiliza el submit-service-job comando para enviar un trabajo a una cuota compartida.

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