View a markdown version of this page

Envía un trabajo de servicio en AWS Batch - 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.

Envía un trabajo de servicio en AWS Batch

Para enviar trabajos de servicio a AWS Batch, utiliza la SubmitServiceJob API. Puede enviar trabajos mediante el SDK AWS CLI o.

Si aún no tiene un rol de ejecución, debe crear uno antes de enviar el trabajo de servicio. Para crear el rol de ejecución de la SageMaker IA, consulta Cómo usar los roles de ejecución de la SageMaker IA en la guía para desarrolladores de SageMaker IA.

Flujo de trabajo para el envío del trabajo de servicio

Cuando envíes un trabajo de servicio, AWS Batch sigue este flujo de trabajo:

  1. AWS Batch recibe su SubmitServiceJob solicitud y valida los parámetros AWS Batch específicos. serviceRequestPayload se pasa sin validación.

  2. El trabajo entra en el estado SUBMITTED y se coloca en la cola de trabajos especificada

  3. AWS Batch evalúa si hay capacidad disponible en el entorno de servicio para los RUNNABLE trabajos de primera fila

  4. Si hay capacidad disponible, el trabajo se traslada SCHEDULED y se pasa a la IA SageMaker

  5. Cuando se haya adquirido la capacidad y la SageMaker IA haya descargado los datos del trabajo de servicio, el trabajo de servicio comenzará a inicializarse y el trabajo pasará a STARTING ser.

  6. Cuando la SageMaker IA comience a ejecutar el trabajo, su estado pasará aRUNNING.

  7. Mientras la SageMaker IA ejecuta el trabajo, AWS Batch monitorea su progreso y asigna los estados del servicio a los estados del AWS Batch trabajo. Para obtener más información sobre cómo se asignan los estados de las tareas de servicio, consulte Correspondencia AWS Batch del estado del trabajo de servicio al estado de SageMaker IA.

  8. Cuando se completa el trabajo de servicio, pasa a SUCCEEDED y cualquier salida estará lista para descargarse.

Requisitos previos

Antes de enviar un trabajo de servicio, asegúrese de disponer de lo siguiente:

Envío de un trabajo de servicio

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

Submit using the SageMaker Python SDK

El SDK de SageMaker Python tiene soporte integrado para enviar trabajos a. AWS Batch Los siguientes ejemplos muestran cómo crear un entrenador modelo, crear una cola de formación y enviar un trabajo. Para ver un ejemplo completo, consulte el cuaderno de muestra completo en GitHub.

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

Crea un TrainingQueue objeto que haga referencia a tu cola de trabajos por su nombre.

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

Envía un trabajo llamandoqueue.submit.

job = queue.submit( training_job=model_trainer, inputs=None, )
Submit using the AWS CLI

A continuación, se muestra cómo enviar un trabajo de servicio mediante 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"

Para obtener más información acerca de los parámetros serviceRequestPayload, consulte La carga útil de los trabajos de servicio es AWS Batch.