View a markdown version of this page

Envie uma vaga 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 uma vaga de serviço em AWS Batch

Para enviar trabalhos de serviço para AWS Batch, você usa a SubmitServiceJob API. 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 as 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, a tarefa será transferida SCHEDULED e passada para a SageMaker IA

  5. Quando a capacidade for adquirida e a SageMaker IA fizer o download dos dados da tarefa de serviço, a tarefa de serviço iniciará a inicialização e a tarefa será alterada 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 Mapeamento AWS Batch status do trabalho de serviço para 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 AWS CLI:

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 treinador modelo, criar uma fila de treinamento e enviar uma vaga. Para ver um exemplo completo, veja a amostra completa do caderno 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 ligandoqueue.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 manutenção em AWS Batch.