SageMaker HyperPod referensi - Amazon SageMaker AI

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

SageMaker HyperPod referensi

Temukan informasi dan referensi lebih lanjut tentang penggunaan SageMaker HyperPod dalam topik berikut.

SageMaker HyperPod harga

Topik berikut memberikan informasi tentang SageMaker HyperPod harga. Untuk mengetahui detail lebih lanjut tentang harga per jam untuk menggunakan SageMaker HyperPod instans, lihat juga SageMaker Harga Amazon.

Permintaan kapasitas

Anda dapat mengalokasikan kapasitas komputasi sesuai permintaan atau cadangan dengan SageMaker AI untuk digunakan. SageMaker HyperPod Pembuatan cluster on-demand mengalokasikan kapasitas yang tersedia dari kumpulan kapasitas SageMaker AI sesuai permintaan. Atau, Anda dapat meminta kapasitas yang dipesan untuk memastikan akses dengan mengirimkan tiket untuk peningkatan kuota. Permintaan kapasitas masuk diprioritaskan oleh SageMaker AI dan Anda menerima perkiraan waktu untuk alokasi kapasitas.

Layanan penagihan

Ketika Anda menyediakan kapasitas komputasi aktif SageMaker HyperPod, Anda ditagih selama durasi alokasi kapasitas. SageMaker HyperPod tagihan muncul di tagihan ulang tahun Anda dengan item baris untuk jenis alokasi kapasitas (sesuai permintaan, cadangan), jenis instans, dan waktu yang dihabiskan untuk menggunakan instans.

Untuk mengirimkan tiket untuk kenaikan kuota, lihatSageMaker HyperPod kuota.

SageMaker HyperPod APIs

Daftar berikut adalah set lengkap SageMaker HyperPod APIs untuk mengirimkan permintaan tindakan dalam format JSON ke SageMaker AI melalui atau. AWS CLI AWS SDK untuk Python (Boto3)

SageMaker HyperPod Konfigurasi slurm

HyperPod mendukung dua pendekatan untuk mengkonfigurasi Slurm di cluster Anda. Pilih pendekatan yang paling sesuai dengan kebutuhan Anda.

Pendekatan Deskripsi Direkomendasikan Untuk
Konfigurasi berbasis API Tentukan konfigurasi Slurm secara langsung dalam permintaan CreateCluster dan API UpdateCluster Cluster baru; manajemen yang disederhanakan
Konfigurasi lama Gunakan provisioning_parameters.json file terpisah yang disimpan di Amazon S3 Cluster yang ada; kompatibilitas mundur

Konfigurasi Slurm yang digerakkan API (Disarankan)

Dengan konfigurasi berbasis API, Anda menentukan tipe simpul Slurm, penetapan partisi, dan pemasangan sistem file secara langsung di permintaan dan API. CreateCluster UpdateCluster Pendekatan ini menyediakan:

  • Sumber kebenaran tunggal - Semua konfigurasi dalam permintaan API

  • Tidak ada manajemen file S3 - Tidak perlu membuat atau memelihara provisioning_parameters.json

  • Validasi bawaan - API memvalidasi topologi Slurm sebelum pembuatan cluster

  • Deteksi drift - Mendeteksi perubahan yang tidak sah slurm.conf

  • Per-instance-group penyimpanan - Konfigurasikan FSx sistem file yang berbeda untuk grup instance yang berbeda

  • FSx untuk dukungan OpenZFS - Pasang sistem file OpenZFS selain untuk Lustre FSx

SlurmConfig (per grup instans)

Tambahkan SlurmConfig ke setiap grup instance untuk menentukan tipe simpul Slurm dan penetapan partisi.

"SlurmConfig": { "NodeType": "Controller | Login | Compute", "PartitionNames": ["string"] }

Parameter:

  • NodeType – Wajib. Tipe simpul Slurm untuk grup instance ini. Nilai valid:

    • Controller— Simpul pengontrol slurm (kepala). Menjalankan slurmctld daemon. Tepat satu grup instance harus memiliki tipe node ini.

    • Login— Node login untuk akses pengguna. Tidak wajib. Paling banyak satu grup instance dapat memiliki tipe node ini.

    • Compute— Node pekerja yang menjalankan pekerjaan. Dapat memiliki beberapa grup instance dengan tipe node ini.

    penting

    NodeTypetidak dapat diubah. Setelah disetel selama pembuatan cluster, itu tidak dapat diubah. Untuk menggunakan tipe node yang berbeda, buat grup instance baru.

  • PartitionNames— Bersyarat. Array nama partisi Slurm. Diperlukan untuk tipe Compute node; tidak diperbolehkan untuk Controller atau tipe Login node. Saat ini mendukung nama partisi tunggal per grup instance.

    catatan

    Semua node secara otomatis ditambahkan ke dev partisi universal selain partisi yang ditentukan.

Contoh:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }

Orchestrator.Slurm (tingkat cluster)

Tambahkan Orchestrator.Slurm ke konfigurasi cluster untuk menentukan bagaimana HyperPod mengelola slurm.conf file.

"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }

Parameter:

  • SlurmConfigStrategy— Diperlukan saat Orchestrator.Slurm disediakan. Mengontrol bagaimana HyperPod mengelola slurm.conf file pada node controller. Nilai valid:

    • Managed(default) — HyperPod sepenuhnya mengontrol pemetaan partisi-simpul di. slurm.conf Deteksi drift diaktifkan: jika arus slurm.conf berbeda dari konfigurasi yang diharapkan, UpdateCluster gagal dengan kesalahan. Gunakan strategi ini ketika Anda HyperPod ingin menjadi sumber kebenaran tunggal untuk konfigurasi Slurm.

    • Overwrite— HyperPod memaksa konfigurasi API untuk diterapkan, menimpa setiap perubahan manual keslurm.conf. Deteksi drift dinonaktifkan. Gunakan strategi ini untuk memulihkan dari drift atau mengatur ulang cluster ke status yang diketahui.

    • Merge— HyperPod mempertahankan slurm.conf perubahan manual dan menggabungkannya dengan konfigurasi API. Deteksi drift dinonaktifkan. Gunakan strategi ini jika Anda perlu membuat perubahan konfigurasi Slurm manual yang harus tetap ada di seluruh pembaruan.

catatan

Jika Orchestrator.Slurm dihilangkan dari permintaan, perilaku default adalah Managed strategi.

Tip

Anda dapat mengubah SlurmConfigStrategy kapan saja menggunakan UpdateCluster. Tidak ada kunci untuk strategi tertentu.

Contoh:

{ "ClusterName": "my-hyperpod-cluster", "InstanceGroups": [...], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } } }

SlurmConfigStrategy perbandingan

Strategi Deteksi Drift Perubahan Manual Kasus Penggunaan
Managed Diaktifkan - memblokir pembaruan jika drift terdeteksi Diblokir HyperPod dikelola
Overwrite Nonaktif Ditimpa Pemulihan dari drift; reset ke status yang diketahui
Merge Nonaktif Diawetkan Pengguna tingkat lanjut dengan slurm.conf kebutuhan khusus

FSx konfigurasi melalui InstanceStorageConfigs

Dengan konfigurasi berbasis API, Anda dapat mengonfigurasi FSx sistem file per grup instans menggunakan. InstanceStorageConfigs Ini memungkinkan grup instance yang berbeda untuk memasang sistem file yang berbeda.

Prasyarat:

  • Cluster Anda harus menggunakan VPC kustom (viaVpcConfig). FSx filesystem berada di VPC Anda, dan VPC yang dikelola platform tidak dapat menjangkau mereka.

  • Setidaknya satu grup instance harus memiliki SlurmConfigNodeType: Controller.

FsxLustreConfig

Konfigurasikan FSx untuk pemasangan sistem file Lustre untuk grup instance.

"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]

Parameter:

  • DnsName – Wajib. Nama DNS FSx untuk sistem berkas Lustre. Contoh: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

  • MountPath – Opsional. Jalur pemasangan lokal pada instance. Default: /fsx

  • MountName – Wajib. Nama mount dari filesystem FSx untuk Lustre. Anda dapat menemukannya di FSx konsol Amazon atau dengan menjalankannyaaws fsx describe-file-systems.

FsxOpenZfsConfig

Konfigurasikan FSx untuk pemasangan sistem file OpenZFS untuk grup instance.

"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]

Parameter:

  • DnsName – Wajib. Nama DNS untuk sistem file FSx OpenZFS. Contoh: fs-0xyz987654321.fsx.us-west-2.amazonaws.com

  • MountPath – Opsional. Jalur pemasangan lokal pada instance. Default: /home

catatan

Setiap grup instance dapat memiliki paling banyak satu FsxLustreConfig dan satuFsxOpenZfsConfig.

Contoh dengan beberapa sistem file:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } }, { "FsxOpenZfsConfig": { "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com", "MountPath": "/shared" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 500 } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }
penting

FSx perubahan konfigurasi hanya berlaku selama penyediaan node. Node yang ada mempertahankan FSx konfigurasi aslinya. Untuk menerapkan FSx konfigurasi baru ke semua node, turunkan grup instance ke 0, lalu skala cadangan.

Contoh konfigurasi berbasis API lengkap

Contoh berikut menunjukkan CreateCluster permintaan lengkap menggunakan konfigurasi Slurm berbasis API:

{ "ClusterName": "ml-training-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Controller" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "login", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Login" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }, { "InstanceGroupName": "cpu-compute", "InstanceType": "ml.c5.18xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["cpu-preprocessing"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 } ], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } }, "VpcConfig": { "SecurityGroupIds": ["sg-0abc123def456789a"], "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"] }, "Tags": [ { "Key": "Project", "Value": "ML-Training" } ] }

Untuk mempelajari lebih lanjut tentang menggunakan konfigurasi berbasis API, lihat. Menyesuaikan SageMaker HyperPod cluster menggunakan skrip siklus hidup

Konfigurasi lama: provisioning_parameters.json

catatan

provisioning_parameters.jsonPendekatannya adalah metode lama untuk mengkonfigurasi Slurm on. HyperPod Untuk cluster baru, sebaiknya gunakan pendekatan konfigurasi berbasis API yang dijelaskan di atas. Pendekatan lama tetap didukung penuh untuk kompatibilitas mundur.

Dengan pendekatan lama, Anda membuat file konfigurasi Slurm bernama provisioning_parameters.json dan mengunggahnya ke Amazon S3 sebagai bagian dari skrip siklus hidup Anda. HyperPod membaca file ini selama pembuatan cluster untuk mengkonfigurasi node Slurm.

Formulir konfigurasi untuk provisioning_parameters.json

Kode berikut adalah formulir konfigurasi Slurm yang harus Anda persiapkan untuk mengatur node Slurm dengan benar di cluster Anda. HyperPod Anda harus melengkapi formulir ini dan mengunggahnya sebagai bagian dari serangkaian skrip siklus hidup selama pembuatan klaster. Untuk mempelajari bagaimana formulir ini harus disiapkan di seluruh proses pembuatan HyperPod klaster, lihatMenyesuaikan SageMaker HyperPod cluster menggunakan skrip siklus hidup.

// Save as provisioning_parameters.json. { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "string", "login_group": "string", "worker_groups": [ { "instance_group_name": "string", "partition_name": "string" } ], "fsx_dns_name": "string", "fsx_mountname": "string" }

Parameter:

  • version – Wajib. Ini adalah versi dari bentuk parameter HyperPod penyediaan. Simpan untuk1.0.0.

  • workload_manager – Wajib. Ini untuk menentukan manajer beban kerja mana yang akan dikonfigurasi di cluster. HyperPod Simpan untukslurm.

  • controller_group – Wajib. Ini untuk menentukan nama grup instance HyperPod cluster yang ingin Anda tetapkan ke node Slurm controller (head).

  • login_group – Opsional. Ini untuk menentukan nama grup instance HyperPod cluster yang ingin Anda tetapkan ke node login Slurm.

  • worker_groups – Wajib. Ini untuk menyiapkan node Slurm worker (compute) di cluster. HyperPod

    • instance_group_name – Wajib. Ini untuk menentukan nama grup HyperPod instance yang ingin Anda tetapkan ke node Slurm worker (compute).

    • partition_name – Wajib. Ini untuk menentukan nama partisi ke node.

  • fsx_dns_name – Opsional. Jika Anda ingin mengatur node Slurm Anda di HyperPod cluster untuk berkomunikasi dengan Amazon FSx, tentukan nama FSx DNS.

  • fsx_mountname – Opsional. Jika Anda ingin mengatur node Slurm di HyperPod cluster untuk berkomunikasi dengan Amazon FSx, tentukan nama FSx mount.

Perbandingan: Konfigurasi berbasis API vs. lama

Fitur Didorong API (Direkomendasikan) Warisan (provisioning_parameters.json)
Lokasi konfigurasi CreateCluster Permintaan API Berkas S3
FSx untuk Lustre Ya - Per grup instans Ya — Cluster-wide saja
FSx untuk OpenZFS Ya - Per grup instans Tidak - Tidak didukung
Validasi bawaan Ya Tidak
Deteksi penyimpangan Ya - (Strategi terkelola) Tidak
Manajemen file S3 Tidak diperlukan Diperlukan
Kompleksitas skrip siklus hidup Sederhana Diperlukan pengaturan SLURM penuh

SageMaker HyperPod DLAMI

SageMaker HyperPod menjalankan DLAMI berdasarkan:

SageMaker HyperPod DLAMI dibundel dengan paket tambahan untuk mendukung alat open source seperti Slurm, Kubernetes, dependensi, dan paket perangkat lunak cluster untuk mendukung fitur ketahanan seperti pemeriksaan kesehatan cluster SageMaker HyperPod dan auto-resume. Untuk menindaklanjuti pembaruan HyperPod perangkat lunak yang didistribusikan oleh tim HyperPod layanan DLAMIs, lihatCatatan SageMaker HyperPod rilis Amazon.

SageMaker HyperPod Referensi izin API

penting

Kebijakan IAM khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika kebijakan IAM memungkinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat Berikan izin untuk menandai sumber daya AI SageMaker.

AWS kebijakan terkelola untuk Amazon SageMaker AIyang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Saat menyiapkan kontrol akses untuk memungkinkan menjalankan operasi SageMaker HyperPod API dan menulis kebijakan izin yang dapat dilampirkan ke pengguna IAM untuk administrator cloud, gunakan tabel berikut sebagai referensi.

Operasi SageMaker API Amazon Izin yang Diperlukan (Tindakan API) Sumber Daya
CreateCluster sagemaker:CreateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DeleteCluster sagemaker:DeleteCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeCluster sagemaker:DescribeCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeClusterNode sagemaker:DescribeClusterNode arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusterNodes sagemaker:ListClusterNodes arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusters sagemaker:ListClusters arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateCluster sagemaker:UpdateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateClusterSoftware sagemaker:UpdateClusterSoftware arn:aws:sagemaker:region:account-id:cluster/cluster-id

Untuk daftar lengkap izin dan jenis sumber daya SageMaker APIs, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon SageMaker AI di Referensi Otorisasi AWS Layanan.

SageMaker HyperPod perintah di AWS CLI

Berikut ini adalah AWS CLI perintah SageMaker HyperPod untuk menjalankan operasi HyperPod API inti.

SageMaker HyperPod Modul Python di AWS SDK untuk Python (Boto3)

Berikut ini adalah metode AWS SDK untuk Python (Boto3) klien untuk SageMaker AI untuk menjalankan operasi HyperPod API inti.