View a markdown version of this page

Senden Sie einen Serviceauftrag in AWS Batch - AWS Batch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Senden Sie einen Serviceauftrag in AWS Batch

Um Servicejobs an zu senden AWS Batch, verwenden Sie die SubmitServiceJob API. Sie können Jobs mit dem AWS CLI oder SDK einreichen.

Wenn Sie noch keine Ausführungsrolle haben, müssen Sie eine erstellen, bevor Sie Ihren Servicejob einreichen können. Informationen zum Erstellen der SageMaker AI-Ausführungsrolle finden Sie unter So verwenden Sie SageMaker AI-Ausführungsrollen im SageMaker AI-Entwicklerhandbuch .

Arbeitsablauf für die Einreichung von Serviceaufträgen

Wenn Sie einen Serviceauftrag einreichen, AWS Batch folgen Sie diesem Workflow:

  1. AWS Batch empfängt Ihre SubmitServiceJob Anfrage und validiert die AWS Batch-spezifischen Parameter. Der serviceRequestPayload wird ohne Validierung weitergegeben.

  2. Der Job wechselt in den SUBMITTED Status und wird in die angegebene Auftragswarteschlange gestellt

  3. AWS Batch prüft, ob in der Serviceumgebung Kapazität für RUNNABLE Jobs an der Spitze der Warteschlange verfügbar ist

  4. Wenn Kapazität verfügbar ist, wird der Job zu AI verschoben SCHEDULED und der Job wurde an KI übergeben SageMaker

  5. Wenn die Kapazität erworben wurde und die SageMaker KI die Service-Job-Daten heruntergeladen hat, beginnt die Initialisierung des Service-Jobs und der Job wird zuSTARTING.

  6. Wenn die SageMaker KI mit der Ausführung des Jobs beginnt, wird sein Status in RUNNING geändert.

  7. Während die SageMaker KI den Job ausführt, AWS Batch überwacht sie dessen Fortschritt und ordnet den Dienststatus den AWS Batch Jobstatus zu. Einzelheiten dazu, wie Service-Job-Status zugeordnet werden, finden Sie unter Mapping (Zuordnung) AWS Batch Vom Status des Serviceauftrags auf den SageMaker AI-Status umstellen

  8. Wenn der Servicejob abgeschlossen ist, wechselt er zu SUCCEEDED und alle Ausgaben können heruntergeladen werden.

Voraussetzungen

Bevor Sie einen Serviceauftrag einreichen, stellen Sie sicher, dass Sie über Folgendes verfügen:

Reichen Sie einen Servicejob ein

Die folgende Tabelle zeigt, wie Sie einen Servicejob entweder mit dem SageMaker Python-SDK oder der AWS CLI einreichen:

Submit using the SageMaker Python SDK

Das SageMaker Python-SDK verfügt über eine integrierte Unterstützung für das Senden von Aufträgen an AWS Batch. Die folgenden Beispiele zeigen, wie Sie einen Modelltrainer erstellen, eine Trainingswarteschlange erstellen und einen Job einreichen. Ein vollständiges Beispiel finden Sie im vollständigen Beispielnotizbuch unter GitHub.

Erstellen Sie eineModelTrainer, die die Konfiguration des Trainingsauftrags definiert.

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

Erstellen Sie ein TrainingQueue Objekt, das anhand des Namens auf Ihre Job-Warteschlange verweist.

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

Reichen Sie einen Job ein, indem Sie anrufenqueue.submit.

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

Im Folgenden wird gezeigt, wie Sie einen Servicejob mithilfe der AWS CLI einreichen:

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"

Weitere Hinweise zu den serviceRequestPayload Parametern finden Sie unterNutzlasten für Wartungsaufträge in AWS Batch.