View a markdown version of this page

Soumettre une offre d'emploi dans le secteur des services 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 secteur des services AWS Batch

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

Si vous n'avez 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 SageMaker AI, voir Comment utiliser les rôles d'exécution SageMaker AI dans le guide SageMaker AI Developer.

Flux de travail 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 existe une capacité disponible dans l'environnement de service pour les RUNNABLE tâches situées en tête de file

  4. Si la capacité est disponible, le travail est transféré à AI SCHEDULED et le travail a été transmis à l' SageMaker IA

  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, l'initialisation de la tâche de service commence 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 fait correspondre les états du service aux états des AWS Batch tâches. Pour plus de détails sur la façon dont les états des tâches de service sont mappés, voir Mappage AWS Batch de l'état de la tâche du service avec SageMaker le statut de

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

Conditions préalables

Avant de soumettre une demande de service, assurez-vous d'avoir :

Soumettre une offre d'emploi

Le tableau ci-dessous indique comment soumettre une tâche de service à l'aide du SDK SageMaker Python ou de la AWS CLI :

Submit using the SageMaker Python SDK

Le SDK SageMaker Python dispose d'un support intégré pour la soumission de tâches à AWS Batch. Les exemples suivants montrent comment créer un formateur modèle, créer une file d'attente de formation et soumettre une offre d'emploi. 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 fait 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 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"

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