View a markdown version of this page

Invia un lavoro di assistenza in AWS Batch - AWS Batch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invia un lavoro di assistenza in AWS Batch

Per inviare lavori di assistenza a AWS Batch, si utilizza l'SubmitServiceJobAPI. Puoi inviare lavori utilizzando il AWS CLI o SDK.

Se non disponi già di un ruolo di esecuzione, devi crearne uno prima di poter inviare il lavoro di servizio. Per creare il ruolo di esecuzione SageMaker AI, consulta Come utilizzare i ruoli di esecuzione SageMaker AI nella guida per sviluppatori SageMaker AI.

Flusso di lavoro per l'invio dei lavori di assistenza

Quando invii un lavoro di assistenza, segui questo AWS Batch flusso di lavoro:

  1. AWS Batch riceve la SubmitServiceJob richiesta e convalida i parametri AWS Batch specifici. serviceRequestPayloadViene passato senza convalida.

  2. Il lavoro entra nello SUBMITTED stato e viene inserito nella coda dei lavori specificata

  3. AWS Batch valuta se c'è capacità disponibile nell'ambiente di servizio per i RUNNABLE lavori in prima fila

  4. Se la capacità è disponibile, il lavoro passa SCHEDULED e il lavoro è stato passato all'IA SageMaker

  5. Quando la capacità è stata acquisita e l' SageMaker IA ha scaricato i dati del lavoro di servizio, il job di servizio inizierà l'inizializzazione e il lavoro verrà modificato inSTARTING.

  6. Quando l' SageMaker IA inizia a eseguire il lavoro, il suo stato viene modificato inRUNNING.

  7. Mentre l' SageMaker IA esegue il lavoro, ne AWS Batch monitora l'avanzamento e mappa gli stati del servizio in base agli stati del AWS Batch lavoro. Per informazioni dettagliate su come vengono mappati gli stati di lavoro del servizio, consulta Mappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA

  8. Quando il lavoro di assistenza è completato, passa a SUCCEEDED e qualsiasi output è pronto per essere scaricato.

Prerequisiti

Prima di inviare un lavoro di assistenza, assicurati di avere:

Invia un lavoro di assistenza

La tabella seguente mostra come inviare un lavoro di servizio utilizzando l'SDK SageMaker Python o la CLI: AWS

Submit using the SageMaker Python SDK

L'SDK SageMaker Python ha un supporto integrato per l'invio di lavori a. AWS Batch Gli esempi seguenti mostrano come creare un trainer modello, creare una coda di formazione e inviare un lavoro. Per un esempio completo, consultate l'esempio completo del taccuino su. GitHub

Crea un file ModelTrainer che definisca la configurazione del lavoro di formazione.

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 oggetto che faccia riferimento alla tua coda di lavoro per nome.

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

Invia un lavoro queue.submit chiamando.

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

Di seguito viene illustrato come inviare un lavoro di servizio utilizzando la 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"

Per ulteriori informazioni sui serviceRequestPayload parametri, vedereCarichi utili per lavori di assistenza in AWS Batch.