

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

# Latih PyTorch model
<a name="train-models-with-hyperpod"></a>

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
<a name="create-training-job"></a>

Anda dapat melatih model menggunakan CLI atau Python SDK.

### Menggunakan CLI
<a name="using-cli"></a>

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 bernama`test-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
<a name="using-python-sdk"></a>

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
<a name="monitor-training-job"></a>

Pantau kemajuan pekerjaan Anda dengan perintah ini:

### Menggunakan CLI
<a name="monitor-cli"></a>

```
# 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
<a name="monitor-python-sdk"></a>

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
<a name="next-steps"></a>

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.