View a markdown version of this page

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 On-demand Pembuatan cluster 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 API

Daftar berikut adalah set lengkap SageMaker HyperPod API 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
API-driven konfigurasi 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

API-driven Konfigurasi slurm (Disarankan)

Dengan API-driven konfigurasi, 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

  • Built-in validasi — API memvalidasi topologi Slurm sebelum pembuatan cluster

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

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

  • FSx untuk dukungan OpenZFS — Mount OpenZFS filesystem selain FSx for Lustre

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

Konfigurasi fsX melalui InstanceStorageConfigs

Dengan API-driven konfigurasi, Anda dapat mengonfigurasi sistem file FSx 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). Sistem file FSx berada di VPC Anda, dan VPC yang dikelola platform tidak dapat menjangkau mereka.

  • Setidaknya satu grup instance harus memiliki SlurmConfigNodeType: Controller.

FsxLustreConfig

Konfigurasikan pemasangan sistem file FSx for Lustre untuk grup instans.

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

Parameter:

  • DnsName – Wajib. Nama DNS dari FSx for Lustre filesystem. Contoh: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

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

  • MountName – Wajib. Nama mount dari sistem file FSx for Lustre. Anda dapat menemukannya di konsol Amazon FSx atau dengan menjalankannya. aws fsx describe-file-systems

FsxOpenZfsConfig

Konfigurasikan fsX untuk pemasangan sistem file OpenZFS untuk grup instans.

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

Parameter:

  • DnsName – Wajib. Nama DNS dari FSx untuk sistem file 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

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

Contoh API-driven konfigurasi lengkap

Contoh berikut menunjukkan CreateCluster permintaan lengkap menggunakan konfigurasi API-driven Slurm:

{ "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 API-driven konfigurasi, lihatMenyesuaikan 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 API-driven konfigurasi 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 DNS FSx.

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

Perbandingan: API-driven vs. konfigurasi lama

Fitur API-driven (Direkomendasikan) Warisan (provisioning_parameters.json)
Lokasi konfigurasi CreateCluster Permintaan API Berkas S3
FSx for Lustre Ya - Per grup instans Ya — Cluster-wide hanya
FSx untuk OpenZFS Ya - Per grup instans Tidak - Tidak didukung
Built-in validasi 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 melalui DLAMI, lihat. Catatan 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 untuk SageMaker API, lihat Tindakan, sumber daya, dan kunci 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.