Menginstal operator pelatihan - Amazon SageMaker AI

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 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

  1. 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" ] } ] }
  2. Lampirkan kebijakan IAM berikut ke peran Anda yang baru dibuat. Pastikan Anda menentukan ARN HyperPod cluster Anda.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeClusterNode" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster_name" } ] }
  3. 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 \ --region Wilayah AWS
  4. Kemudian buat asosiasi identitas pod antara cluster EKS Anda, peran IAM Anda, dan peran IAM baru Anda.

    aws eks create-pod-identity-association \ --cluster-name my-eks-cluster \ --role-arn ARN of your role \ --namespace aws-hyperpod \ --service-account hp-training-operator-controller-manager \ --region Wilayah AWS
  5. 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 ElasticAgent. 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.

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 mereka.

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 .

  1. Ikuti panduan instalasi di dokumentasi resmi Kueue. Setelah Anda mencapai langkah konfigurasicontroller_manager_config.yaml, tambahkan konfigurasi berikut:

    externalFrameworks: - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
  2. 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