Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menginstal operator pelatihan
Lihat bagian berikut untuk mempelajari cara menginstal operator pelatihan.
Prasyarat
Sebelum Anda menggunakan operator HyperPod pelatihan, Anda harus menyelesaikan prasyarat berikut:
-
Menginstal AMI terbaru di HyperPod cluster Anda. Untuk informasi selengkapnya, lihat SageMaker HyperPod Rilis AMI untuk Amazon EKS
Menginstal operator HyperPod pelatihan mengharuskan Anda untuk menginstal komponen lain terlebih dahulu. Lihat bagian berikut tentang cara melakukannya.
Langkah 1: Siapkan Agen Identitas Amazon EKS Pod
-
Pastikan bahwa peran eksekusi IAM untuk HyperPod klaster Anda memiliki izin eks-auth: atau buat peran IAM baru dengan AssumeRoleForPodIdentity izin berikut untuk digunakan dengan operator pelatihan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEksAuthToAssumeRoleForPodIdentity", "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
-
Lampirkan kebijakan IAM berikut ke peran Anda yang baru dibuat. Pastikan Anda menentukan ARN HyperPod cluster Anda.
-
Siapkan EKS Pod Identity Agent menggunakan konsol. Jika Anda mendapatkan kesalahan AWS CLI, gunakan perintah berikut.
aws eks create-addon \ --cluster-name
my-eks-cluster
\ --addon-name eks-pod-identity-agent \ --regionWilayah AWS
-
aws eks create-pod-identity-association \ --cluster-name
my-eks-cluster
\ --role-arnARN of your role
\ --namespace aws-hyperpod \ --service-account hp-training-operator-controller-manager \ --regionWilayah AWS
-
Setelah Anda menyelesaikan proses, Anda dapat menggunakan ListPodIdentityAssociations operasi untuk melihat asosiasi yang Anda buat. Respons sampel mungkin terlihat seperti berikut ini:
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
" }] }
Langkah 2: Instal operator HyperPod pelatihan
Anda sekarang dapat menginstal operator HyperPod pelatihan melalui konsol Amazon EKS atau dengan operasi CreateAddOnAPI. Jika Anda menggunakan konsol, cari add-on bernama operator SageMaker HyperPod pelatihan Amazon.
Di bawah ini adalah contoh bagaimana Anda dapat menginstal operator dengan API dan CLI. Parameter --addon-version
bersifat opsional. Jika Anda tidak menyediakannya, defaultnya adalah versi terbaru. Untuk mendapatkan versi yang memungkinkan, gunakan DescribeAddonVersionsoperasi.
catatan
SageMaker HyperPod Tata kelola tugas Amazon tidak didukung oleh operator pelatihan.
aws eks create-addon \ --cluster-name my-eks-cluster \ --addon-name amazon-sagemaker-hyperpod-training-operator \ --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" |
Langkah 3: Instal agen HyperPod elastis
Agen HyperPod elastis adalah perpanjangan dari PyTorch's ElasticAgenthyperpodrun
untuk membuat peluncur pekerjaan.
RUN pip install hyperpod-elastic-agent ENTRYPOINT ["entrypoint.sh"] # entrypoint.sh ... hyperpodrun --nnodes=
node_count
--nproc-per-node=proc_count
\ --rdzv-backend hyperpod \ # Optional ... # 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 dengankubectl
.
HyperPod argumen agen elastis
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
Pendapat | Deskripsi | nilai default |
---|---|---|
--shutdown-signal | Sinyal untuk dikirim ke pekerja untuk shutdown (SIGTERM atau SIGKILL) | “SIGKILL” |
--shutdown-timeout | Batas waktu dalam hitungan detik antara sinyal SIGTERM dan SIGKILL | 30 |
--server-host | Alamat server agen | “0.0.0.0" |
Port server | Port server agen | 8080 |
--server-log-level | Tingkat log server agen | info |
--server-shutdown-timeout | Batas waktu shutdown server dalam hitungan detik | 30 |
--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 |
Kueue (opsional)
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 di klaster Anda HyperPod .
-
Ikuti panduan instalasi di dokumentasi resmi Kueue
. Setelah Anda mencapai langkah konfigurasi controller_manager_config.yaml
, tambahkan konfigurasi berikut:externalFrameworks: - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
-
Ikuti langkah-langkah selanjutnya di panduan instalasi resmi. Setelah Anda selesai menginstal Kueue, Anda dapat membuat beberapa antrian sampel dengan perintah.
kubectl apply -f sample-queues.yaml
Gunakan file YAMG 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