View a markdown version of this page

Envie um trabalho de serviço em AWS Batch - 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á.

Envie um trabalho de serviço em AWS Batch

Para enviar trabalhos de serviço para AWS Batch, você usa a SubmitServiceJobAPI. Você pode enviar trabalhos usando o SDK AWS CLI ou.

Se ainda não tiver um perfil de execução, você deverá criar um antes de enviar seu trabalho de serviço. Para criar a função de execução de SageMaker IA, consulte Como usar funções de execução de SageMaker IA no guia do desenvolvedor de SageMaker IA.

Fluxo de trabalho de envio de trabalhos de serviço

Quando você envia um trabalho de serviço, AWS Batch segue este fluxo de trabalho:

  1. AWS Batch recebe sua SubmitServiceJob solicitação e valida os parâmetros AWS Batch específicos. O serviceRequestPayload passa sem validação.

  2. O trabalho entra no estado SUBMITTED e é colocado na fila de trabalhos especificada

  3. AWS Batch avalia se há capacidade disponível no ambiente de serviço para RUNNABLE trabalhos na frente da fila

  4. Se a capacidade estiver disponível, o trabalho será transferido para a IA SCHEDULED e o trabalho será passado para a SageMaker IA

  5. Quando a capacidade for adquirida e a SageMaker IA fizer o download dos dados do trabalho de serviço, o trabalho de serviço iniciará a inicialização e o trabalho será alterado paraSTARTING.

  6. Quando a SageMaker IA começa a executar o trabalho, seu status é alterado paraRUNNING.

  7. Enquanto a SageMaker IA executa o trabalho, AWS Batch monitora seu progresso e mapeia os estados do serviço para os estados do AWS Batch trabalho. Para detalhes sobre como os estados dos trabalhos de serviço são mapeados, consulte Mapeando AWS Batch o status do trabalho do serviço para o status de SageMaker IA

  8. Quando o trabalho de serviço é concluído, ele passa para SUCCEEDED e qualquer saída está pronta para o download.

Pré-requisitos

Antes de enviar um trabalho de serviço, verifique se você tem:

Enviar um trabalho de serviço

A tabela abaixo mostra como enviar um trabalho de serviço 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 o envio de trabalhos para o. AWS Batch Os exemplos a seguir mostram como criar um instrutor modelo, criar uma fila de treinamento e enviar um trabalho. 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 pelo nome.

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

Envie uma vaga ligando paraqueue.submit.

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

Veja a seguir como enviar um trabalho de serviço usando a 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 obter mais informações sobre o parâmetro serviceRequestPayload, consulte Cargas úteis de trabalho de serviço em AWS Batch.