SageMaker Memulai AWS Batch dengan AI - AWS Batch

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

SageMaker Memulai AWS Batch dengan AI

AWS Batch pekerjaan layanan memungkinkan Anda untuk mengirimkan pekerjaan SageMaker Pelatihan melalui antrian AWS Batch pekerjaan dengan penjadwalan, prioritas, dan kemampuan antrian. Tutorial ini menunjukkan cara mengatur dan menjalankan pekerjaan SageMaker Pelatihan sederhana menggunakan pekerjaan AWS Batch layanan.

Gambaran umum

Tutorial ini menunjukkan bagaimana untuk setup pekerjaan AWS Batch layanan untuk pekerjaan SageMaker Pelatihan menggunakan. AWS CLI

Audiens yang Dituju

Tutorial ini dirancang untuk ilmuwan data dan pengembang yang bertanggung jawab untuk menyiapkan dan menjalankan pekerjaan pelatihan pembelajaran mesin dalam skala besar.

Fitur yang Digunakan

Tutorial ini menunjukkan cara menggunakan AWS CLI to:

  • Menciptakan lingkungan layanan untuk pekerjaan SageMaker Pelatihan

  • Buat antrian pekerjaan SageMaker Pelatihan

  • Kirim pekerjaan layanan menggunakan SubmitServiceJob API

  • Pantau status pekerjaan dan lihat output

  • Akses CloudWatch log untuk pekerjaan pelatihan

Waktu yang dibutuhkan

Diperlukan waktu sekitar 15 menit untuk menyelesaikan tutorial ini.

Pembatasan Regional

Tutorial ini dapat diselesaikan di AWS Wilayah mana pun di mana keduanya AWS Batch dan SageMaker AI tersedia.

Biaya Penggunaan Sumber Daya

Tidak ada biaya untuk membuat AWS akun. Namun, dengan menerapkan solusi ini, Anda mungkin dikenakan biaya untuk sumber daya berikut:

Deskripsi Biaya (dolar AS)
SageMaker Instans Pelatihan AI Anda membayar untuk setiap instans Pelatihan SageMaker AI yang digunakan. Untuk informasi selengkapnya tentang harga, lihat Harga SageMaker AI.
Penyimpanan Amazon S3 Biaya minimal untuk menyimpan output pekerjaan pelatihan. Untuk informasi selengkapnya, lihat Harga Amazon S3.

Prasyarat

Sebelum memulai tutorial ini, Anda harus menginstal dan mengonfigurasi alat dan sumber daya berikut yang Anda butuhkan untuk membuat dan mengelola keduanya AWS Batch dan sumber daya SageMaker AI.

  • AWS CLI— Alat baris perintah untuk bekerja dengan AWS layanan, termasuk AWS Batch dan SageMaker AI. Panduan ini mengharuskan Anda menggunakan versi 2.8.6 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menginstal, memperbarui, dan mencopot instalasi AWS CLI di Panduan Pengguna AWS Command Line Interface . Setelah menginstal AWS CLI, kami sarankan Anda juga mengkonfigurasinya. Untuk informasi selengkapnya, lihat Konfigurasi cepat dengan aws configure di Panduan AWS Command Line Interface Pengguna.

Langkah 1: Buat peran eksekusi SageMaker AI

SageMaker AI menggunakan peran eksekusi untuk melakukan operasi atas nama Anda menggunakan AWS layanan lain. Anda harus membuat peran eksekusi dan memberikan izin SageMaker AI untuk menggunakan layanan dan sumber daya yang diperlukan untuk pekerjaan pelatihan. Gunakan kebijakan AmazonSageMakerFullAccess terkelola karena menyertakan izin untuk Amazon S3.

catatan

Gunakan petunjuk berikut untuk membuat peran eksekusi SageMaker AI untuk tutorial ini.

Sebelum Anda membuat peran eksekusi untuk lingkungan produksi Anda, kami sarankan Anda meninjau, Cara menggunakan peran eksekusi SageMaker AI dalam panduan Pengembang SageMaker AI.

  1. Buat peran IAM

    Buat file JSON bernama sagemaker-trust-policy.json dengan kebijakan kepercayaan berikut:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Buat peran IAM menggunakan kebijakan kepercayaan:

    aws iam create-role \ --role-name SageMakerExecutionRole \ --assume-role-policy-document file://sagemaker-trust-policy.json \ --description "Execution role for SageMaker training jobs"
  2. Lampirkan kebijakan terkelola

    Lampirkan kebijakan terkelola yang diperlukan ke peran:

    aws iam attach-role-policy \ --role-name SageMakerExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
    aws iam attach-role-policy \ --role-name SageMakerExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
  3. Perhatikan peran ARN

    Dapatkan peran ARN, yang Anda perlukan di langkah selanjutnya:

    aws iam get-role --role-name SageMakerExecutionRole --query 'Role.Arn' --output text

    Simpan ARN ini karena Anda akan menggunakannya saat membuat muatan pekerjaan pelatihan Anda.

Langkah 2: Buat lingkungan layanan Anda

Lingkungan layanan mendefinisikan kendala kapasitas untuk pekerjaan Pelatihan. SageMaker Lingkungan layanan merangkum jumlah maksimum instans pelatihan yang dapat berjalan secara bersamaan.

penting

Saat Anda membuat lingkungan layanan pertama untuk SageMaker Pelatihan, AWS Batch secara otomatis membuat peran terkait layanan yang dipanggil AWSServiceRoleForAWSBatchWithSagemaker di akun Anda. Peran ini memungkinkan AWS Batch untuk mengantri dan mengelola pekerjaan SageMaker Pelatihan atas nama Anda. Untuk informasi selengkapnya tentang peran terkait layanan ini dan izinnya, lihat. Menggunakan peran untuk AWS Batch dengan SageMaker AI

Buat lingkungan layanan yang dapat menangani hingga 5 instance:

aws batch create-service-environment \ --service-environment-name TutorialServiceEnvironment \ --service-environment-type SAGEMAKER_TRAINING \ --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=5

Output:

{ "serviceEnvironmentName": "TutorialServiceEnvironment", "serviceEnvironmentArn": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment" }

Verifikasi bahwa lingkungan layanan Anda berhasil dibuat:

aws batch describe-service-environments --service-environments TutorialServiceEnvironment

Output:

{ "serviceEnvironments": [ { "serviceEnvironmentName": "TutorialServiceEnvironment", "serviceEnvironmentArn": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment", "serviceEnvironmentType": "SAGEMAKER_TRAINING", "state": "ENABLED", "status": "VALID", "capacityLimits": [ { "maxCapacity": 5, "capacityUnit": "NUM_INSTANCES" } ], "tags": {} } ] }

Untuk informasi selengkapnya tentang lingkungan layanan, lihatLingkungan layanan untuk AWS Batch.

Langkah 3: Buat antrian SageMaker pekerjaan Anda

Antrian SageMaker pekerjaan mengelola penjadwalan dan pelaksanaan pekerjaan layanan. Pekerjaan yang dikirimkan ke antrian ini akan dikirim ke lingkungan layanan Anda berdasarkan kapasitas yang tersedia.

Buat antrian pekerjaan SageMaker Pelatihan:

aws batch create-job-queue \ --job-queue-name my-sm-training-fifo-jq \ --job-queue-type SAGEMAKER_TRAINING \ --priority 1 \ --service-environment-order order=1,serviceEnvironment=TutorialServiceEnvironment

Output:

{ "jobQueueName": "my-sm-training-fifo-jq", "jobQueueArn": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq" }

Verifikasi bahwa antrian pekerjaan Anda berhasil dibuat:

aws batch describe-job-queues --job-queues my-sm-training-fifo-jq

Output:

{ "jobQueues": [ { "jobQueueName": "my-sm-training-fifo-jq", "jobQueueArn": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq", "state": "ENABLED", "status": "VALID", "statusReason": "JobQueue Healthy", "priority": 1, "computeEnvironmentOrder": [], "serviceEnvironmentOrder": [ { "order": 1, "serviceEnvironment": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment" } ], "jobQueueType": "SAGEMAKER_TRAINING", "tags": {} } ] }

Untuk informasi selengkapnya tentang antrian SageMaker pekerjaan, lihat. Buat antrian pekerjaan SageMaker Pelatihan di AWS Batch

Langkah 4: Buat dan kirimkan pekerjaan pelatihan

Sekarang Anda akan membuat pekerjaan pelatihan sederhana dan mengirimkannya ke antrian pekerjaan Anda. Contoh ini menggunakan pekerjaan pelatihan “hello world” dasar yang menunjukkan fungsionalitas pekerjaan layanan.

Buat file dengan nama my_training_job.json dengan konten berikut ini. Ganti your-account-id dengan ID AWS akun Anda:

catatan

S3OutputPathdiperlukan untuk membuat pekerjaan SageMaker Pelatihan tetapi hasil tutorial ini tidak disimpan di bucket Amazon S3 dan Anda dapat menggunakan jalur di JSON berikut. Di lingkungan produksi Anda, Anda memerlukan bucket Amazon S3 yang valid untuk menyimpan output di sana jika Anda mau.

{ "TrainingJobName": "my-simple-training-job", "RoleArn": "arn:aws:iam::your-account-id:role/SageMakerExecutionRole", "AlgorithmSpecification": { "TrainingInputMode": "File", "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.0.0-cpu-py310", "ContainerEntrypoint": [ "echo", "hello world" ] }, "ResourceConfig": { "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "VolumeSizeInGB": 1 }, "OutputDataConfig": { "S3OutputPath": "s3://your-s3-bucket/output" }, "StoppingCondition": { "MaxRuntimeInSeconds": 30 } }

Kirim pekerjaan pelatihan menggunakan SubmitServiceJobAPI:

aws batch submit-service-job \ --job-queue my-sm-training-fifo-jq \ --job-name my-batch-sm-job \ --service-job-type SAGEMAKER_TRAINING \ --retry-strategy attempts=1 \ --timeout-config attemptDurationSeconds=60 \ --service-request-payload file://my_training_job.json

Output:

{ "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id", "jobName": "my-batch-sm-job", "jobId": "your-job-id" }

Untuk informasi selengkapnya tentang muatan pekerjaan layanan, lihatMuatan pekerjaan layanan di AWS Batch. Untuk informasi selengkapnya tentang mengirimkan pekerjaan layanan, lihat. Kirim pekerjaan layanan di AWS Batch

Langkah 5: Pantau status pekerjaan

Anda dapat memantau pekerjaan pelatihan Anda menggunakan yang berikut AWS Batch APIs: DescribeServiceJob, ListServiceJobs, dan GetJobQueueSnapshot. Bagian ini menunjukkan berbagai cara untuk memeriksa status pekerjaan dan informasi antrian.

Lihat pekerjaan yang sedang berjalan dalam antrian Anda:

aws batch list-service-jobs \ --job-queue my-sm-training-fifo-jq --job-status RUNNING

Output:

{ "jobSummaryList": [ { "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>" } }, "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id", "jobId": "your-job-id", "jobName": "my-batch-sm-job", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING", "startedAt": 1753718820 } ] }

Lihat pekerjaan yang ada di RUNNABLE negara bagian:

aws batch list-service-jobs \ --job-queue my-sm-training-fifo-jq --job-status RUNNABLE

Dapatkan snapshot pekerjaan yang akan datang dalam antrian Anda:

aws batch get-job-queue-snapshot --job-queue my-sm-training-fifo-jq

Output:

{ "frontOfQueue": { "jobs": [ { "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id", "earliestTimeAtPosition": 1753718880 }, { "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id-2", "earliestTimeAtPosition": 1753718940 } ], "lastUpdatedAt": 1753718970 } }

Cari pekerjaan berdasarkan nama:

aws batch list-service-jobs \ --job-queue my-sm-training-fifo-jq \ --filters name=JOB_NAME,values="my-batch-sm-job"

Output:

{ "jobSummaryList": [ { "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>" } }, "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id", "jobId": "your-job-id", "jobName": "my-batch-sm-job", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING" } ] }

Untuk informasi selengkapnya tentang pemetaan status pekerjaan, lihatMemetakan status pekerjaan AWS Batch layanan ke status SageMaker AI.

Langkah 6: Lihat hasil pekerjaan

Setelah pekerjaan Anda selesai, Anda dapat melihat output dan lognya melalui keduanya AWS Batch dan SageMaker AI APIs.

Dapatkan informasi rinci tentang pekerjaan Anda dari AWS Batch:

aws batch describe-service-job \ --job-id your-job-id

Output:

{ "attempts": [ { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>" }, "startedAt": 1753718820, "stoppedAt": 1753718880, "statusReason": "Received status from SageMaker: Training job completed" } ], "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id", "jobId": "your-job-id", "jobName": "my-batch-sm-job", "jobQueue": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq", "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>" } }, "retryStrategy": { "attempts": 1, "evaluateOnExit": [] }, "serviceRequestPayload": "your-training-job-request-json", "serviceJobType": "SAGEMAKER_TRAINING", "startedAt": 1753718820, "status": "SUCCEEDED", "statusReason": "Received status from SageMaker: Training job completed", "stoppedAt": 1753718880, "tags": {}, "timeoutConfig": { "attemptDurationSeconds": 60 } }

Perintah ini mengembalikan informasi pekerjaan yang komprehensif termasuk ARN pekerjaan SageMaker Pelatihan, yang dapat Anda gunakan untuk mengakses pekerjaan secara langsung melalui SageMaker AI:

aws sagemaker describe-training-job \ --training-job-name AWSBatch<my-simple-training-job><your-attempt-id>

Untuk melihat CloudWatch log untuk pekerjaan pelatihan Anda, pertama-tama dapatkan nama aliran log:

aws logs describe-log-streams \ --log-group-name /aws/sagemaker/TrainingJobs \ --log-stream-name-prefix AWSBatchmy-simple-training-job

Output:

{ "logStreams": [ { "logStreamName": "your-log-stream-name", "creationTime": 1753718830, "firstEventTimestamp": 1753718840, "lastEventTimestamp": 1753718850, "lastIngestionTime": 1753718860, "uploadSequenceToken": upload-sequence-token, "arn": "arn:aws:logs:your-region:your-account-id:log-group:/aws/sagemaker/TrainingJobs:log-stream:AWSBatch<my-simple-training-job><your-attempt-id>/algo-1-algo-id", "storedBytes": 0 } ] }

Kemudian ambil log menggunakan nama aliran log dari respons sebelumnya:

aws logs get-log-events \ --log-group-name /aws/sagemaker/TrainingJobs \ --log-stream-name your-log-stream-name

Output:

{ "events": [ { "timestamp": 1753718845, "message": "hello world", "ingestionTime": 1753718865 } ], "nextForwardToken": "next-forward-token", "nextBackwardToken": "next-backward-token" }

Output log menunjukkan pesan “hello world” dari pekerjaan pelatihan Anda, mengonfirmasi bahwa pekerjaan tersebut berhasil dijalankan.

Langkah 7: Bersihkan sumber daya tutorial Anda

Setelah selesai dengan tutorial, bersihkan sumber daya yang Anda buat untuk menghindari biaya yang sedang berlangsung.

Pertama, nonaktifkan dan hapus antrian pekerjaan:

aws batch update-job-queue \ --job-queue my-sm-training-fifo-jq \ --state DISABLED

Tunggu antrian pekerjaan dinonaktifkan, lalu hapus:

aws batch delete-job-queue \ --job-queue my-sm-training-fifo-jq

Selanjutnya, nonaktifkan dan hapus lingkungan layanan:

aws batch update-service-environment \ --service-environment TutorialServiceEnvironment \ --state DISABLED

Tunggu hingga lingkungan layanan dinonaktifkan, lalu hapus:

aws batch delete-service-environment \ --service-environment TutorialServiceEnvironment

Sumber daya tambahan

Setelah Anda menyelesaikan tutorial, Anda mungkin ingin menjelajahi topik-topik berikut: