View a markdown version of this page

Soumettre une offre d'emploi dans le domaine du service AWS Batch - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Soumettre une offre d'emploi dans le domaine du service AWS Batch

Pour soumettre des tâches de service à AWS Batch, vous utilisez l'SubmitServiceJobAPI. Vous pouvez soumettre des tâches à l'aide du SDK AWS CLI or.

Si vous ne possédez pas encore de rôle d'exécution, vous devez en créer un avant de pouvoir soumettre votre tâche de service. Pour créer le rôle d'exécution de l' SageMaker IA, consultez la section Comment utiliser les rôles d'exécution de l' SageMaker IA dans le guide SageMaker AI Developer .

Workflow de soumission des tâches de service

Lorsque vous soumettez une tâche de service, suivez AWS Batch ce flux de travail :

  1. AWS Batch reçoit votre SubmitServiceJob demande et valide les paramètres AWS Batch spécifiques. Le serviceRequestPayload est transmis sans validation.

  2. La tâche entre dans l'SUBMITTEDétat et est placée dans la file d'attente de tâches spécifiée

  3. AWS Batch évalue s'il y a de la capacité disponible dans l'environnement de service pour les RUNNABLE tâches en tête de file

  4. Si la capacité est disponible, la tâche est transférée SCHEDULED et la tâche a été transmise à SageMaker AI

  5. Lorsque la capacité a été acquise et que l' SageMaker IA a téléchargé les données de la tâche de service, la tâche de service commence à s'initialiser et la tâche est remplacée par. STARTING

  6. Lorsque SageMaker l'IA commence à exécuter la tâche, son statut passe àRUNNING.

  7. Pendant que l' SageMaker IA exécute la tâche, AWS Batch surveille sa progression et associe les états du service aux états de la AWS Batch tâche. Pour plus de détails sur la façon dont les états des tâches de service sont mappés, voir Mappage AWS Batch statut de la tâche de service au statut SageMaker AI

  8. Lorsque la tâche de service est terminée, elle passe à SUCCEEDED et toute sortie est prête à être téléchargée.

Conditions préalables

Avant de soumettre une offre de service, assurez-vous de disposer des éléments suivants :

Soumettre une offre de service

Le tableau ci-dessous montre comment soumettre une tâche de service à l'aide du SDK SageMaker Python ou de l' AWS interface de ligne de commande :

Submit using the SageMaker Python SDK

Le SDK SageMaker Python intègre la prise en charge de la soumission de tâches à AWS Batch. Les exemples suivants montrent comment créer un modèle d'entraîneur, créer une file d'attente de formation et soumettre une tâche. Pour un exemple complet, consultez le bloc-notes complet sur GitHub.

Créez un ModelTrainer qui définit la configuration des tâches de formation.

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

Créez un TrainingQueue objet qui référence votre file d'attente de tâches par son nom.

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

Soumettez une offre d'emploi en appelantqueue.submit.

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

Voici comment soumettre une tâche de service à l'aide de l' AWS interface de ligne de commande :

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"

Pour plus d'informations sur les serviceRequestPayload paramètres, consultezCharges utiles des tâches de maintenance dans AWS Batch.