

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

# Menginstal operator pelatihan
<a name="sagemaker-eks-operator-install"></a>

Lihat bagian berikut untuk mempelajari cara menginstal operator pelatihan.

## Prasyarat
<a name="sagemaker-eks-operator-prerequisites"></a>

 Sebelum Anda menggunakan operator HyperPod pelatihan, Anda harus telah menyelesaikan prasyarat berikut: 
+  [Membuat HyperPod cluster dengan orkestrasi Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). 
+ Menginstal AMI terbaru di HyperPod cluster Anda. Untuk informasi selengkapnya, lihat [SageMaker HyperPod Rilis AMI untuk Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).
+ [Manajer sertifikat yang diinstal.](https://cert-manager.io/docs/installation/)
+  [Siapkan Agen Identitas Pod EKS menggunakan konsol](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html). Jika Anda ingin menggunakan AWS CLI, gunakan perintah berikut: 

  ```
  aws eks create-addon \ 
   --cluster-name {{my-eks-cluster}} \
   --addon-name eks-pod-identity-agent \
   --region {{Wilayah AWS}}
  ```
+ (Opsional) Jika Anda menjalankan node HyperPod cluster di VPC pribadi, Anda harus menyiapkan titik akhir PrivateLinks VPC untuk Amazon AI API (`com.amazonaws.{{aws-region}}.sagemaker.api`) dan layanan SageMaker Amazon EKS Auth (com.amazonaws. {{aws-region}}.eks-auth). Anda juga harus memastikan bahwa node cluster Anda berjalan dengan subnet yang berada dalam grup keamanan yang memungkinkan lalu lintas merutekan melalui titik akhir VPC untuk berkomunikasi dengan SageMaker AI dan Amazon EKS. Jika ini tidak diatur dengan benar, instalasi add-on bisa gagal. Untuk mempelajari selengkapnya tentang menyiapkan titik akhir VPC, lihat Membuat titik akhir [VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

## Menginstal operator pelatihan
<a name="sagemaker-eks-operator-install-operator"></a>

 Anda sekarang dapat menginstal operator HyperPod pelatihan melalui konsol SageMaker AI, konsol Amazon EKS, atau dengan Metode konsol menawarkan pengalaman yang disederhanakan yang membantu Anda menginstal operator. AWS CLI Ini AWS CLI menawarkan pendekatan terprogram yang memungkinkan Anda menyesuaikan lebih banyak instalasi Anda.

Di antara dua pengalaman konsol, SageMaker AI menyediakan instalasi satu klik yang menciptakan peran eksekusi IAM, membuat asosiasi identitas pod, dan menginstal operator. Instalasi konsol Amazon EKS serupa, tetapi metode ini tidak secara otomatis membuat peran eksekusi IAM. Selama proses ini, Anda dapat memilih untuk membuat peran eksekusi IAM baru dengan informasi yang telah diisi sebelumnya oleh konsol. Secara default, peran yang dibuat ini hanya memiliki akses ke cluster saat ini tempat Anda menginstal operator. Kecuali Anda mengedit izin peran untuk menyertakan kluster lain, jika Anda menghapus dan menginstal ulang operator, Anda harus membuat peran baru. 

------
#### [ SageMaker AI console (recommended) ]

1. Buka konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Buka halaman detail klaster Anda.

1. Pada tab **Dasbor**, cari add-on bernama **operator SageMaker HyperPod pelatihan Amazon**, dan pilih **instal**. Selama proses instalasi, SageMaker AI membuat peran eksekusi IAM dengan izin yang mirip dengan kebijakan [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)terkelola dan membuat asosiasi identitas pod antara cluster Amazon EKS Anda dan peran eksekusi baru Anda.

------
#### [ Amazon EKS console ]

**catatan**  
Jika Anda menginstal add-on melalui kluster Amazon EKS, pertama-tama pastikan bahwa Anda telah menandai HyperPod klaster Anda dengan pasangan nilai kunci. `SageMaker:true` Jika tidak, instalasi akan gagal.

1. Buka konsol Amazon EKS di [https://console.aws.amazon.com/eks/rumah\#/cluster](https://console.aws.amazon.com/eks/home#/clusters).

1. Buka kluster EKS Anda, pilih **Add-on**, lalu pilih **Dapatkan lebih banyak Add-on**.

1. Pilih operator SageMaker HyperPod pelatihan Amazon, lalu pilih **Berikutnya**.

1. Di bawah **Versi**, konsol default ke versi terbaru, yang kami sarankan Anda gunakan.

1. Di bawah **Akses Add-on**, pilih peran IAM identitas pod yang akan digunakan dengan add-on operator pelatihan. Jika Anda belum memiliki peran, pilih **Buat peran yang direkomendasikan** untuk membuatnya.

1. Selama proses pembuatan peran ini, konsol IAM mengisi semua informasi yang diperlukan, seperti kasus penggunaan, kebijakan [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)terkelola, dan izin lain yang diperlukan, nama peran, dan deskripsi. Saat Anda melalui langkah-langkah, tinjau informasi, dan pilih **Buat peran**.

1. Di konsol EKS, tinjau pengaturan add-on Anda, lalu pilih **Buat**.

------
#### [ CLI ]

1. Pastikan bahwa peran eksekusi IAM untuk HyperPod klaster Anda memiliki hubungan kepercayaan yang memungkinkan EKS Pod Identity untuk mengambil peran atau atau [membuat peran IAM baru](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) dengan kebijakan kepercayaan berikut. Atau, Anda dapat menggunakan konsol Amazon EKS untuk menginstal add-on, yang menciptakan peran yang direkomendasikan.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
         "Effect": "Allow",
         "Principal": {
           "Service": "pods.eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession",
           "eks-auth:AssumeRoleForPodIdentity"
         ]
       }
     ]
   }
   ```

------

1.  Lampirkan [kebijakan AmazonSageMakerHyperPodTrainingOperatorAccess terkelola](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html) ke peran yang Anda buat. 

1.  [Kemudian buat asosiasi identitas pod antara cluster EKS Anda, peran IAM Anda, dan peran IAM baru Anda](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

   ```
   aws eks create-pod-identity-association \
   --cluster-name {{my-eks-cluster}} \
   --role-arn {{ARN of your execution role}} \
   --namespace aws-hyperpod \
   --service-account hp-training-operator-controller-manager \
   --region {{Wilayah AWS}}
   ```

1.  Setelah Anda menyelesaikan proses, Anda dapat menggunakan ListPodIdentityAssociations operasi untuk melihat asosiasi yang Anda buat. Berikut ini adalah contoh respons dari seperti apa tampilannya. 

   ```
   aws eks list-pod-identity-associations --cluster-name my-eks-cluster
   {
       "associations": [{
           "clusterName": "{{my-eks-cluster}}",
           "namespace": "aws-hyperpod",
           "serviceAccount": "hp-training-operator-controller-manager",
           "associationArn": "arn:aws:eks:us-east-2:123456789012:podidentityassociation/my-hyperpod-cluster/a-1a2b3c4d5e6f7g8h9",
           "associationId": "{{a-1a2b3c4d5e6f7g8h9}}"
       }]
   }
   ```

1. Untuk menginstal operator pelatihan, gunakan `create-addon` operasi. Parameter `--addon-version` bersifat opsional. Jika Anda tidak menyediakannya, defaultnya adalah versi terbaru. Untuk mendapatkan versi yang memungkinkan, gunakan [ DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)operasi.

   ```
   aws eks create-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --resolve-conflicts OVERWRITE
   ```

------

Jika Anda sudah menginstal operator pelatihan di HyperPod cluster Anda, Anda dapat memperbarui add-on EKS ke versi yang Anda inginkan. Jika Anda ingin menggunakan [pelatihan tanpa pemeriksaan atau pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) [elastis](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html), pertimbangkan hal berikut:
+ Baik pelatihan tanpa pemeriksaan dan pelatihan elastis membutuhkan add-on EKS untuk berada di versi 1.2.0 atau lebih tinggi.
+ Operator SageMaker HyperPod pelatihan Amazon mempertahankan kompatibilitas mundur untuk versi add-on EKS apa pun, sehingga Anda dapat meningkatkan dari versi add-on apa pun ke 1.2.0 atau lebih tinggi.
+ Jika Anda menurunkan versi dari versi 1.2.0 atau versi lebih tinggi ke versi yang lebih rendah, Anda harus terlebih dahulu menghapus pekerjaan yang ada sebelum downgrade dan mengirimkan kembali pekerjaan setelah downgrade selesai.

------
#### [ Amazon EKS Console ]

1. Buka konsol Amazon EKS di [https://console.aws.amazon.com/eks/rumah\#/cluster](https://console.aws.amazon.com/eks/home#/clusters).

1. Buka kluster EKS Anda, dan pilih **Add-on.** Kemudian, pilih add-on operator SageMaker HyperPod pelatihan Amazon dan pilih **Edit**.

1. Di menu **Versi**, pilih versi add-on yang Anda inginkan, lalu pilih **Simpan perubahan**.

------
#### [ CLI ]

1. Pertama, dapatkan daftar versi add-on yang didukung untuk klaster Anda.

   ```
   aws eks describe-addon-versions \
     --kubernetes-version $(aws eks describe-cluster --name {{my-eks-cluster}} --query 'cluster.version' --output text) \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --query 'addons[0].addonVersions[].addonVersion' \
     --output table
   ```

1. Kemudian perbarui add-on ke versi yang Anda inginkan.

   ```
   aws eks update-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --addon-version target-version
     --resolve-conflicts OVERWRITE
   ```

------

 Operator pelatihan dilengkapi dengan sejumlah opsi dengan nilai default yang mungkin sesuai dengan kasus penggunaan Anda. Kami menyarankan Anda mencoba operator pelatihan dengan nilai default sebelum mengubahnya. Tabel di bawah ini menjelaskan semua parameter dan contoh kapan Anda mungkin ingin mengonfigurasi setiap parameter.


| Parameter | Deskripsi | Default | 
| --- | --- | --- | 
| hpTrainingControllerManager.manager.resources.requests.cpu | Berapa banyak prosesor yang dialokasikan untuk controller | 1 | 
| hpTrainingControllerManager.manager.resources.requests.memory | Berapa banyak memori untuk dialokasikan ke controller | 2Gi | 
| hpTrainingControllerManager.manager.resources.limits.cpu | Batas CPU untuk controller | 2 | 
| hpTrainingControllerManager.manager.resources.limits.memory | Batas memori untuk pengontrol | 4Gi | 
| hpTrainingControllerManajer.nodeSelector | Node selector untuk pod controller | Perilaku default adalah memilih node dengan label sagemaker.amazonaws.com/compute-type: "HyperPod" | 

## HyperPod agen elastis
<a name="sagemaker-eks-operator-elastic-agent"></a>

Agen HyperPod elastis adalah perpanjangan dari [PyTorch's ElasticAgent](https://docs.pytorch.org/docs/stable/elastic/agent.html). Ini mengatur siklus hidup pekerja pelatihan di setiap wadah dan berkomunikasi dengan operator pelatihan. HyperPod Untuk menggunakan operator HyperPod pelatihan, Anda harus terlebih dahulu memasang agen HyperPod elastis ke dalam gambar pelatihan Anda sebelum Anda dapat mengirimkan dan menjalankan pekerjaan menggunakan operator. Berikut ini adalah file docker yang menginstal agen elastis dan digunakan `hyperpodrun` untuk membuat peluncur pekerjaan.

**catatan**  
Baik [pelatihan tanpa pemeriksaan dan pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) [elastis](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) mengharuskan Anda menggunakan agen HyperPod elastis versi 1.1.0 atau lebih tinggi.

```
RUN pip install hyperpod-elastic-agent

ENTRYPOINT ["entrypoint.sh"]
# entrypoint.sh
...
hyperpodrun --nnodes={{node_count}} --nproc-per-node={{proc_count}} \
            --rdzv-backend hyperpod \ # Optional
            --inprocess-restart \ # Optional (in-process fault recovery with checkpointless training)
            ... # Other torchrun args
            # pre-traing arg_group
            --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
            # post-train arg_group
            --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
            {{training.py}} --script-args
```

Anda sekarang dapat mengirimkan pekerjaan dengan`kubectl`.

### HyperPod argumen agen elastis
<a name="sagemaker-eks-operator-elastic-agent-args"></a>

 Agen HyperPod elastis mendukung semua argumen asli dan menambahkan beberapa argumen tambahan. Berikut ini adalah semua argumen yang tersedia dalam agen HyperPod elastis. Untuk informasi lebih lanjut tentang Agen PyTorch Elastis, lihat [dokumentasi resmi](https://docs.pytorch.org/docs/stable/elastic/agent.html) mereka. 


| Pendapat | Deskripsi | nilai default | 
| --- | --- | --- | 
| --shutdown-sinyal | Sinyal untuk dikirim ke pekerja untuk shutdown (SIGTERM atau SIGKILL) | “SIGKILL” | 
| --shutdown-timeout | Batas waktu dalam hitungan detik antara sinyal shutdown dan sinyal SIGKILL | 15 | 
| --server-host | Alamat server agen | “0.0.0.0" | 
| --server-port | Port server agen | 8080 | 
| --server-log-level | Tingkat log server agen | “Info” | 
| --server-shutdown-timeout | Batas waktu shutdown server dalam hitungan detik | 300 | 
| --pre-train-script | Jalur ke skrip pra-pelatihan | Tidak ada | 
| --pre-train-args | Argumen untuk skrip pra-pelatihan | Tidak ada | 
| --post-train-script | Jalur ke skrip pasca-pelatihan | Tidak ada | 
| --post-train-args | Argumen untuk skrip pasca-pelatihan | Tidak ada | 
| --inprocess-restart | Bendera yang menentukan apakah akan menggunakan fitur inprocess\_restart | SALAH | 
| --inprocess-timeout | Waktu dalam hitungan detik agen menunggu pekerja mencapai penghalang sinkronisasi sebelum memicu restart tingkat proses. | Tidak ada | 

## Tata kelola tugas (opsional)
<a name="sagemaker-eks-operator-task-governance"></a>

Operator pelatihan terintegrasi dengan [tata kelola HyperPod tugas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance), sistem manajemen yang kuat yang dirancang untuk merampingkan alokasi sumber daya dan memastikan pemanfaatan sumber daya komputasi yang efisien di seluruh tim dan proyek untuk kluster Amazon EKS Anda. Untuk mengatur tata kelola HyperPod tugas, lihat[Pengaturan untuk tata kelola SageMaker HyperPod tugas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md). 

**catatan**  
Saat menginstal add-on tata kelola HyperPod tugas, Anda harus menggunakan versi v1.3.0-eksbuild.1 atau lebih tinggi.

Saat mengirimkan pekerjaan, pastikan Anda menyertakan nama antrian dan label kelas prioritas dan. `hyperpod-ns-{{team-name}}-localqueue` `{{priority-class}}-name-priority` Misalnya, jika Anda menggunakan Kueue, label Anda menjadi sebagai berikut:
+ kueue.x-k8s.io/antrian nama: hyperpod-ns- -localqueue {{team-name}}
+ kueue.x-k8s.io/kelas prioritas: -nama-prioritas {{priority-class}}

Berikut ini adalah contoh dari apa file konfigurasi Anda mungkin terlihat seperti:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPytorchJob
metadata:
  name: hp-task-governance-sample
  namespace: hyperpod-ns-{{team-name}}
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-{{team-name}}-localqueue
    kueue.x-k8s.io/priority-class: {{priority-class}}-priority
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 4
      spares: 2
      template:
        spec:
          containers:
            - name: ptjob
              image: XXXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  cpu: "2"
```

Kemudian gunakan perintah kubectl berikut untuk menerapkan file YAMM.

```
kubectl apply -f task-governance-job.yaml
```

## Kueue (opsional)
<a name="sagemaker-eks-operator-kueue"></a>

Meskipun Anda dapat menjalankan pekerjaan secara langsung, organisasi Anda juga dapat mengintegrasikan operator pelatihan dengan Kueue untuk mengalokasikan sumber daya dan menjadwalkan pekerjaan. Ikuti langkah-langkah di bawah ini untuk menginstal Kueue ke dalam cluster Anda HyperPod .

1. Ikuti panduan instalasi di dokumentasi [resmi Kueue](https://kueue.sigs.k8s.io/docs/installation/#install-a-custom-configured-released-version). Saat Anda mencapai langkah konfigurasi`controller_manager_config.yaml`, tambahkan konfigurasi berikut:

   ```
   externalFrameworks:
   - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
   ```

1. Ikuti langkah-langkah lainnya dalam panduan instalasi resmi. Setelah Anda selesai menginstal Kueue, Anda dapat membuat beberapa antrian sampel dengan perintah. `kubectl apply -f sample-queues.yaml` Gunakan file YAMM berikut.

   ```
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ClusterQueue
   metadata:
     name: cluster-queue
   spec:
     namespaceSelector: {}
     preemption:
       withinClusterQueue: LowerPriority
     resourceGroups:
     - coveredResources:
       - cpu
       - nvidia.com/gpu
       - pods
       flavors:
       - name: default-flavor
         resources:
         - name: cpu
           nominalQuota: 16
         - name: nvidia.com/gpu
           nominalQuota: 16
         - name: pods
           nominalQuota: 16
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: LocalQueue
   metadata:
     name: user-queue
     namespace: default
   spec:
     clusterQueue: cluster-queue
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ResourceFlavor
   metadata:
     name: default-flavor
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: High priority
   kind: WorkloadPriorityClass
   metadata:
     name: high-priority-class
   value: 1000
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: Low Priority
   kind: WorkloadPriorityClass
   metadata:
     name: low-priority-class
   value: 500
   ```