Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Latih PyTorch model
Topik ini memandu Anda melalui proses pelatihan PyTorch model menggunakan HyperPod.
Dalam skenario ini, mari kita latih PyTorch model menggunakan hyp-pytorch-job
template, yang menyederhanakan penciptaan lapangan kerja dengan mengekspos parameter yang umum digunakan. Artefak model akan disimpan dalam ember S3 untuk digunakan nanti dalam inferensi. Namun, ini opsional, dan Anda dapat memilih lokasi penyimpanan pilihan Anda.
Buat pekerjaan pelatihan
Anda dapat melatih model menggunakan CLI atau Python SDK.
Menggunakan CLI
Buat pekerjaan pelatihan dengan perintah berikut:
hyp create hyp-pytorch-job \ --version 1.0 \ --job-name test-pytorch-job \ --image pytorch/pytorch:latest \ --command '["python", "train.py"]' \ --args '["--epochs", "10", "--batch-size", "32"]' \ --environment '{"PYTORCH_CUDA_ALLOC_CONF": "max_split_size_mb:32"}' \ --pull-policy "IfNotPresent" \ --instance-type ml.p4d.24xlarge \ --tasks-per-node 8 \ --label-selector '{"accelerator": "nvidia", "network": "efa"}' \ --deep-health-check-passed-nodes-only true \ --scheduler-type "kueue" \ --queue-name "training-queue" \ --priority "high" \ --max-retry 3 \ --volumes '["data-vol", "model-vol", "checkpoint-vol"]' \ --persistent-volume-claims '["shared-data-pvc", "model-registry-pvc"]' \ --output-s3-uri s3://my-bucket/model-artifacts
Parameter kunci yang diperlukan dijelaskan:
--job-name
: Pengidentifikasi unik untuk pekerjaan pelatihan Anda--image
: Gambar Docker yang berisi lingkungan pelatihan Anda
Perintah ini memulai pekerjaan pelatihan bernamatest-pytorch-job
. --output-s3-uri
Menentukan di mana artefak model terlatih akan disimpan, misalnya,. s3://my-bucket/model-artifacts
Perhatikan lokasi ini, karena Anda akan memerlukannya untuk menerapkan model kustom.
Menggunakan Python SDK
Untuk kontrol terprogram, gunakan SDK. Buat skrip Python untuk meluncurkan pekerjaan pelatihan yang sama.
from sagemaker.hyperpod import HyperPodPytorchJob from sagemaker.hyperpod.job import ReplicaSpec, Template, Spec, Container, Resources, RunPolicy, Metadata # Define job specifications nproc_per_node = "1" # Number of processes per node replica_specs = [ ReplicaSpec ( name = "pod", # Replica name template = Template ( spec = Spec ( containers = [ Container ( # Container name name="container-name", # Training image image="448049793756.dkr.ecr.us-west-2.amazonaws.com/ptjob:mnist", # Always pull image image_pull_policy="Always", resources=Resources\ ( # No GPUs requested requests={"nvidia.com/gpu": "0"}, # No GPU limit limits={"nvidia.com/gpu": "0"}, ), # Command to run command=["python", "train.py"], # Script arguments args=["--epochs", "10", "--batch-size", "32"], ) ] ) ), ) ] # Keep pods after completion run_policy = RunPolicy(clean_pod_policy="None") # Create and start the PyTorch job pytorch_job = HyperPodPytorchJob ( # Job name metadata = Metadata(name="demo"), # Processes per node nproc_per_node = nproc_per_node, # Replica specifications replica_specs = replica_specs, # Run policy run_policy = run_policy, # S3 location for artifacts output_s3_uri="s3://my-bucket/model-artifacts" ) # Launch the job pytorch_job.create()
Pantau pekerjaan pelatihan Anda
Pantau kemajuan pekerjaan Anda dengan perintah ini:
Menggunakan CLI
# Check job status hyp list hyp-pytorch-job # Get detailed information hyp describe hyp-pytorch-job --job-name test-pytorch-job # View logs hyp get-logs hyp-pytorch-job \ --pod-name test-pytorch-job-pod-0 \ --job-name test-pytorch-job
Catatan: Waktu pelatihan bervariasi berdasarkan kompleksitas model dan jenis instance. Pantau log untuk melacak kemajuan.
Perintah ini membantu Anda memverifikasi status pekerjaan dan memecahkan masalah. Setelah pekerjaan selesai dengan sukses, artefak model disimpan. s3://my-bucket/model-artifacts
Menggunakan Python SDK
Tambahkan kode berikut ke skrip Python Anda:
print("List all pods created for this job:") print(pytorch_job.list_pods()) print("Check the logs from pod0:") print(pytorch_job.get_logs_from_pod(pod_name="demo-pod-0")) print("List all HyperPodPytorchJobs:") print(HyperPodPytorchJob.list()) print("Describe job:") print(HyperPodPytorchJob.get(name="demo").model_dump()) pytorch_job.refresh() print(pytorch_job.status.model_dump())
Langkah selanjutnya
Setelah pelatihan, artefak model disimpan di bucket S3 yang Anda tentukan ()s3://my-bucket/model-artifacts
. Anda dapat menggunakan artefak ini untuk menyebarkan model. Saat ini, Anda harus mengelola transisi secara manual dari pelatihan ke inferensi. Ini melibatkan:
-
Menemukan artefak: Periksa bucket S3 (
s3://my-bucket/model-artifacts
) untuk mengonfirmasi bahwa file model terlatih ada. -
Merekam jalur: Perhatikan jalur S3 yang tepat (misalnya,
s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz
) untuk digunakan dalam pengaturan inferensi. -
Referensi dalam penerapan: Sediakan jalur S3 ini saat mengonfigurasi titik akhir khusus untuk memastikan model yang benar dimuat.