View a markdown version of this page

Reichen Sie einen Servicejob ein 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.

Reichen Sie einen Servicejob ein in AWS Batch

Um Serviceaufträge einzureichen an AWS Batch, benutzt du den SubmitServiceJob API. Sie können Jobs mit dem einreichen AWS CLI oder SDK.

Wenn Sie noch keine Ausführungsrolle haben, müssen Sie eine erstellen, bevor Sie Ihren Serviceauftrag einreichen können. Um das zu erstellen SageMaker Die Rolle „KI-Ausführung“ finden Sie unter Wie benutzt man SageMaker Rollen in der KI-Ausführung in der SageMaker Leitfaden für KI-Entwickler.

Arbeitsablauf für die Einreichung von Serviceaufträgen

Wenn Sie einen Serviceauftrag einreichen, AWS Batch folgt diesem Arbeitsablauf:

  1. AWS Batch erhält deine SubmitServiceJob fordert an und validiert die AWS Batch-spezifische Parameter. Die serviceRequestPayload wird ohne Validierung weitergegeben.

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

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

  4. Wenn Kapazität verfügbar ist, wird der Job nach verschoben SCHEDULED und der Auftrag wurde weitergeleitet an SageMaker AI

  5. Wann Kapazität erworben wurde und SageMaker AI hat die Daten des Serviceauftrags heruntergeladen, der Servicejob beginnt mit der Initialisierung und der Job wird geändert in STARTING.

  6. Wann SageMaker Die KI beginnt mit der Ausführung des Jobs, dessen Status geändert wird RUNNING.

  7. Während SageMaker KI führt den Job aus, AWS Batch überwacht ihren Fortschritt und ordnet den Dienststatus zu AWS Batch Status der Jobs. Einzelheiten zur Zuordnung von Dienstauftragsstatus finden Sie unter Mapping (Zuordnung) AWS Batch Status des Serviceauftrags bis SageMaker KI-Status

  8. Wenn der Servicejob abgeschlossen ist, wechselt er zu SUCCEEDED und jede Ausgabe steht zum Herunterladen bereit.

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 Serviceauftrag einreichen, indem Sie entweder SageMaker Python SDK oder das AWS CLI:

Submit using the SageMaker Python SDK

Die SageMaker Python-SDK hat eine integrierte Unterstützung für das Senden von Jobs an AWS Batch. Die folgenden Beispiele zeigen, wie Sie einen Modeltrainer erstellen, eine Trainingswarteschlange erstellen und einen Job einreichen. Ein vollständiges Beispiel finden Sie im vollständiges Beispiel-Notizbuch auf GitHub.

Erstellen Sie eine ModelTrainer das definiert die Konfiguration des Trainingsjobs.

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 eine TrainingQueue Objekt, das namentlich auf Ihre Jobwarteschlange verweist.

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

Reichen Sie einen Job ein, indem Sie anrufen queue.submit.

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

Im Folgenden wird gezeigt, wie Sie einen Serviceauftrag mithilfe der 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"

Für weitere Informationen über serviceRequestPayload Parameter finden Sie unter Nutzlasten für Serviceaufträge AWS Batch.