View a markdown version of this page

Kirim pekerjaan layanan di AWS Batch - AWS Batch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kirim pekerjaan layanan di AWS Batch

Untuk mengirimkan pekerjaan layanan ke AWS Batch, Anda menggunakan SubmitServiceJobAPI. Anda dapat mengirimkan pekerjaan menggunakan AWS CLI atau SDK.

Jika Anda belum memiliki peran eksekusi maka Anda harus membuatnya sebelum Anda dapat mengirimkan pekerjaan layanan Anda. Untuk membuat peran eksekusi SageMaker AI, lihat Cara menggunakan peran eksekusi SageMaker AI dalam panduan Pengembang SageMaker AI.

Alur kerja penyerahan pekerjaan layanan

Saat Anda mengirimkan pekerjaan layanan, AWS Batch ikuti alur kerja ini:

  1. AWS Batch menerima SubmitServiceJob permintaan Anda dan memvalidasi parameter AWS Batch-spesifik. serviceRequestPayloadItu dilewatkan tanpa validasi.

  2. Pekerjaan memasuki SUBMITTED negara bagian dan ditempatkan dalam antrian pekerjaan yang ditentukan

  3. AWS Batch mengevaluasi apakah ada kapasitas yang tersedia di lingkungan layanan untuk RUNNABLE pekerjaan di depan antrian

  4. Jika kapasitas tersedia, pekerjaan pindah ke SCHEDULED dan pekerjaan telah diteruskan ke SageMaker AI

  5. Ketika kapasitas telah diperoleh dan SageMaker AI telah mengunduh data pekerjaan layanan, pekerjaan layanan akan memulai inisialisasi dan pekerjaan diubah menjadiSTARTING.

  6. Ketika SageMaker AI mulai menjalankan pekerjaan, statusnya diubah menjadiRUNNING.

  7. Sementara SageMaker AI menjalankan pekerjaan, AWS Batch memantau kemajuannya dan memetakan status layanan ke status AWS Batch pekerjaan. Untuk detail tentang bagaimana status pekerjaan layanan dipetakan, lihat Memetakan status pekerjaan AWS Batch layanan ke status SageMaker AI

  8. Ketika pekerjaan layanan selesai, ia pindah ke SUCCEEDED dan output apa pun siap untuk diunduh.

Prasyarat

Sebelum mengirimkan pekerjaan layanan, pastikan Anda memiliki:

Kirim pekerjaan layanan

Tabel di bawah ini menunjukkan cara mengirimkan pekerjaan layanan menggunakan SDK SageMaker Python atau CLI: AWS

Submit using the SageMaker Python SDK

SageMaker Python SDK memiliki dukungan bawaan untuk mengirimkan pekerjaan ke. AWS Batch Contoh berikut menunjukkan cara membuat pelatih model, membuat antrian pelatihan, dan mengirimkan pekerjaan. Untuk contoh lengkap, lihat contoh buku catatan lengkap di GitHub.

Buat ModelTrainer yang mendefinisikan konfigurasi pekerjaan pelatihan.

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

Buat TrainingQueue objek yang mereferensikan antrian pekerjaan Anda dengan nama.

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

Kirim pekerjaan dengan meneleponqueue.submit.

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

Berikut ini menunjukkan cara mengirimkan pekerjaan layanan menggunakan 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"

Untuk informasi selengkapnya tentang serviceRequestPayload parameter, lihatMuatan pekerjaan layanan di AWS Batch.