Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
SageMaker HyperPod riferimenti
Trovate ulteriori informazioni e riferimenti sull'utilizzo SageMaker HyperPod nei seguenti argomenti.
Argomenti
SageMaker HyperPod prezzi
Gli argomenti seguenti forniscono informazioni sui SageMaker HyperPod prezzi. Per ulteriori dettagli sul prezzo orario per l'utilizzo SageMaker HyperPod delle istanze, consulta anche i SageMaker prezzi di
Richieste di capacità
Puoi allocare capacità di calcolo su richiesta o riservata con l' SageMaker intelligenza artificiale da utilizzare su. SageMaker HyperPod On-demand La creazione del cluster alloca la capacità disponibile dal pool di capacità on-demand di SageMaker AI. In alternativa, puoi richiedere una capacità riservata per garantire l’accesso inviando un ticket per un aumento della quota. Le richieste di capacità in entrata sono prioritarie dall' SageMaker IA e riceverai un tempo stimato per l'allocazione della capacità.
Fatturazione del servizio
Quando si attiva una capacità di calcolo SageMaker HyperPod, viene fatturata la durata dell'allocazione della capacità. SageMaker HyperPod la fatturazione viene visualizzata nelle fatture di anniversario con una voce relativa al tipo di allocazione della capacità (su richiesta, riservata), al tipo di istanza e al tempo impiegato per l'utilizzo dell'istanza.
Per inviare un ticket per un aumento della quota, consulta SageMaker HyperPod quote.
SageMaker HyperPod API
L'elenco seguente è un set completo di SageMaker HyperPod API per l'invio di richieste di azione in formato JSON all' SageMaker IA tramite o. AWS CLI AWS SDK per Python (Boto3)
SageMaker HyperPod Configurazione Slurm
HyperPod supporta due approcci per la configurazione di Slurm sul cluster. Scegli l'approccio più adatto alle tue esigenze.
| Approccio | Descrizione | Consigliato per |
| API-driven configurazione | Definisci la configurazione di Slurm direttamente nelle richieste CreateCluster e API UpdateCluster | Nuovi cluster; gestione semplificata |
| Configurazione precedente | Usa un provisioning_parameters.json file separato archiviato in Amazon S3 |
Cluster esistenti; compatibilità con le versioni precedenti |
API-driven Configurazione Slurm (consigliata)
Con la API-driven configurazione, definisci i tipi di nodi Slurm, le assegnazioni delle partizioni e i montaggi del file system direttamente nelle richieste API e nelle richieste API. CreateCluster UpdateCluster Questo approccio fornisce:
-
Un'unica fonte di verità: tutta la configurazione nella richiesta API
-
Nessuna gestione dei file S3: non è necessario crearli o mantenerli
provisioning_parameters.json -
Built-in convalida: l'API convalida la topologia Slurm prima della creazione del cluster
-
Rilevamento della deriva: rileva modifiche non autorizzate a
slurm.conf -
Per-instance-group archiviazione: configura diversi file system FSx per diversi gruppi di istanze
-
Supporto per FSx per OpenZFS: monta file system OpenZFS oltre a FSx for Lustre
SlurmConfig (per gruppo di istanze)
Aggiungilo SlurmConfig a ciascun gruppo di istanze per definire il tipo di nodo Slurm e l'assegnazione della partizione.
"SlurmConfig": { "NodeType": "Controller | Login | Compute", "PartitionNames": ["string"] }
Parametri:
-
NodeType: obbligatorio Il tipo di nodo Slurm per questo gruppo di istanze. Valori validi:-
Controller— Nodo controller Slurm (principale). Esegue il demone.slurmctldEsattamente un gruppo di istanze deve avere questo tipo di nodo. -
Login— Nodo di accesso per l'accesso degli utenti. Opzionale. Al massimo un gruppo di istanze può avere questo tipo di nodo. -
Compute— Nodi di lavoro che eseguono lavori. Può avere più gruppi di istanze con questo tipo di nodo.
Importante
NodeTypeè immutabile. Una volta impostato durante la creazione del cluster, non può essere modificato. Per utilizzare un tipo di nodo diverso, crea un nuovo gruppo di istanze. -
-
PartitionNames— Condizionale. Una serie di nomi di partizioni Slurm. Richiesto per i tipi diComputenodo; non consentito per iControllertipi di nodo.LoginAttualmente supporta un singolo nome di partizione per gruppo di istanze.Nota
Tutti i nodi vengono aggiunti automaticamente alla
devpartizione universale in aggiunta alla partizione specificata.
Esempio:
{ "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 (livello di cluster)
Aggiungi Orchestrator.Slurm alla configurazione del cluster per specificare la modalità di HyperPod gestione del slurm.conf file.
"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }
Parametri:
-
SlurmConfigStrategy— Obbligatorio quandoOrchestrator.Slurmviene fornito. Controlla la modalità di HyperPod gestione delslurm.conffile sul nodo del controller. Valori validi:-
Managed(impostazione predefinita): controlla HyperPod completamente le mappature dei nodi di partizione in.slurm.confIl rilevamento della deriva è abilitato: se la corrente èslurm.confdiversa dalla configurazione prevista, fallisce e genera un errore. UpdateCluster Usa questa strategia quando vuoi essere l'unica fonte di verità HyperPod per la configurazione di Slurm. -
Overwrite— HyperPod impone l'applicazione della configurazione API, sovrascrivendo eventuali modifiche manuali a.slurm.confIl rilevamento della deriva è disabilitato. Usa questa strategia per ripristinare il cluster da una deriva o riportare il cluster a uno stato noto. -
Merge— HyperPod conserva leslurm.confmodifiche manuali e le unisce alla configurazione dell'API. Il rilevamento della deriva è disabilitato. Usa questa strategia se devi apportare modifiche manuali alla configurazione di Slurm che dovrebbero persistere anche dopo gli aggiornamenti.
-
Nota
Se Orchestrator.Slurm viene omesso dalla richiesta, il comportamento predefinito è la strategia. Managed
Suggerimento
È possibile modificare SlurmConfigStrategy in qualsiasi momento utilizzando UpdateCluster. Non è previsto alcun vincolo a una strategia specifica.
Esempio:
{ "ClusterName": "my-hyperpod-cluster", "InstanceGroups": [...], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } } }
SlurmConfigStrategy confronto
| Strategia | Rilevamento della deriva | Modifiche manuali | Caso d'uso |
Managed |
Abilitato: blocca gli aggiornamenti se viene rilevata una deriva | Bloccato | HyperPod gestito |
Overwrite |
Disabilitato | sovrascritto | Recupero dalla deriva; ripristino allo stato noto |
Merge |
Disabilitato | Conservato | Utenti avanzati con slurm.conf esigenze personalizzate |
Configurazione FSx tramite InstanceStorageConfigs
Con la API-driven configurazione, è possibile configurare i file system FSx per gruppo di istanze utilizzando. InstanceStorageConfigs Ciò consente a diversi gruppi di istanze di montare diversi filesystem.
Prerequisiti:
-
Il cluster deve utilizzare un VPC personalizzato (tramite).
VpcConfigI file system FSx risiedono nel tuo VPC e il VPC gestito dalla piattaforma non può raggiungerli. -
Almeno un gruppo di istanze deve avere con.
SlurmConfigNodeType: Controller
FsxLustreConfig
Configura il montaggio del file system FSx for Lustre per un gruppo di istanze.
"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]
Parametri:
-
DnsName: obbligatorio Il nome DNS del file system FSx for Lustre. Ad esempio:fs-0abc123def456789.fsx.us-west-2.amazonaws.com -
MountPath: Opzionale. Il percorso di montaggio locale sull'istanza. Impostazione predefinita:/fsx -
MountName: obbligatorio Il nome di montaggio del filesystem FSx for Lustre. Puoi trovarlo nella console Amazon FSx o eseguendo.aws fsx describe-file-systems
FsxOpenZfsConfig
Configura FSx per il montaggio del file system OpenZFS per un gruppo di istanze.
"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]
Parametri:
-
DnsName: obbligatorio Il nome DNS del file system FSx for OpenZFS. Ad esempio:fs-0xyz987654321.fsx.us-west-2.amazonaws.com -
MountPath: Opzionale. Il percorso di montaggio locale sull'istanza. Impostazione predefinita:/home
Nota
Ogni gruppo di istanze può averne al massimo uno FsxLustreConfig e unoFsxOpenZfsConfig.
Esempio con più file system:
{ "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" }
Importante
Le modifiche alla configurazione FSx si applicano solo durante il provisioning dei nodi. I nodi esistenti mantengono la loro configurazione FSx originale. Per applicare una nuova configurazione FSx a tutti i nodi, riduci il gruppo di istanze a 0, quindi esegui il backup.
Esempio di API-driven configurazione completo
L'esempio seguente mostra una CreateCluster richiesta completa utilizzando la configurazione di 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" } ] }
Per saperne di più sull'uso della API-driven configurazione, consulta. Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita
Configurazione precedente: provisioning_parameters.json
Nota
L'provisioning_parameters.jsonapproccio è il metodo precedente per configurare Slurm on. HyperPod Per i nuovi cluster, consigliamo di utilizzare l'approccio di API-driven configurazione descritto sopra. L'approccio precedente rimane completamente supportato per la compatibilità con le versioni precedenti.
Con l'approccio legacy, crei un file di configurazione Slurm denominato provisioning_parameters.json e lo carichi su Amazon S3 come parte degli script del tuo ciclo di vita. HyperPod legge questo file durante la creazione del cluster per configurare i nodi Slurm.
Modulo di configurazione per provisioning_parameters.json
Il codice seguente è il modulo di configurazione di Slurm da preparare per configurare correttamente i nodi Slurm sul cluster. HyperPod Devi compilare questo modulo e caricarlo insieme a un set di script del ciclo di vita durante la creazione del cluster. Per sapere come preparare questo modulo durante i processi di creazione del HyperPod cluster, consulta. Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita
// 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" }
Parametri:
-
version: obbligatorio Questa è la versione del modulo dei parametri di HyperPod provisioning. Lascia il valore su1.0.0. -
workload_manager: obbligatorio Serve a specificare quale gestore del carico di lavoro deve essere configurato nel cluster. HyperPod Lascia il valore suslurm. -
controller_group: obbligatorio Serve a specificare il nome del gruppo di istanze del HyperPod cluster da assegnare al nodo Slurm controller (head). -
login_group: Opzionale. Serve a specificare il nome del gruppo di istanze del HyperPod cluster da assegnare al nodo di accesso Slurm. -
worker_groups: obbligatorio Serve per configurare i nodi di lavoro (calcolo) Slurm sul cluster. HyperPod-
instance_group_name: obbligatorio Serve a specificare il nome del gruppo di HyperPod istanze da assegnare al nodo di lavoro (calcolo) di Slurm. -
partition_name: obbligatorio Serve per specificare il nome della partizione per il nodo.
-
-
fsx_dns_name: Opzionale. Se desideri configurare i nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome DNS FSx. -
fsx_mountname: Opzionale. Se desideri configurare i nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome del mount FSx.
Confronto: rispetto alla configurazione precedente API-driven
| Caratteristica | API-driven (Consigliato) | Legacy (provisioning_parameters.json) |
| Posizione di configurazione | CreateCluster Richiesta API | File S3 |
| FSx per Lustre | Sì, per gruppo di istanze | Sì, Cluster-wide solo |
| FSx per OpenZFS | Sì, per gruppo di istanze | No, non supportato |
| Built-in convalida | Sì | No |
| Rilevamento delle deviazioni | Sì — (strategia gestita) | No |
| Gestione dei file S3 | Campo non obbligatorio | Richiesto |
| Complessità degli script relativi al ciclo di vita | Semplificato | È richiesta la configurazione completa di SLURM |
SageMaker HyperPod DLAMI
SageMaker HyperPod gestisce un DLAMI basato su:
-
AWS Deep Learning Base GPU AMI (Ubuntu 20.04)
per l'orchestrazione con Slurm. -
AMI basata su Amazon Linux 2 per l’orchestrazione con Amazon EKS.
Il SageMaker HyperPod DLAMI è fornito in bundle con pacchetti aggiuntivi per supportare strumenti open source come Slurm, Kubernetes, dipendenze e pacchetti software per cluster per supportare funzionalità di resilienza come il controllo dello stato del cluster e SageMaker HyperPod il ripristino automatico. Per seguire gli aggiornamenti HyperPod software che il team di assistenza distribuisce tramite DLAMiS, vedere. HyperPod Note sulla SageMaker HyperPod versione di Amazon
SageMaker HyperPod Riferimento alle autorizzazioni API
Importante
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L’autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic applicano automaticamente tag a tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente il tagging, possono verificarsi errori durante il tentativo di creare risorse. AccessDenied Per ulteriori informazioni, consulta Fornisci le autorizzazioni per etichettare SageMaker le risorse AI.
AWS politiche gestite per Amazon AI SageMakerche forniscono le autorizzazioni per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.
Quando configuri il controllo degli accessi per consentire l'esecuzione di operazioni SageMaker HyperPod API e scrivi una policy di autorizzazioni da allegare agli utenti IAM per gli amministratori del cloud, utilizza la seguente tabella come riferimento.
| Operazioni API di Amazon SageMaker | Autorizzazioni necessarie (azioni API) | Risorse |
| CreateCluster | sagemaker:CreateCluster |
arn:aws:sagemaker: |
| DeleteCluster | sagemaker:DeleteCluster |
arn:aws:sagemaker: |
| DescribeCluster | sagemaker:DescribeCluster |
arn:aws:sagemaker: |
| DescribeClusterNode | sagemaker:DescribeClusterNode |
arn:aws:sagemaker: |
| ListClusterNodes | sagemaker:ListClusterNodes |
arn:aws:sagemaker: |
| ListClusters | sagemaker:ListClusters |
arn:aws:sagemaker: |
| UpdateCluster | sagemaker:UpdateCluster |
arn:aws:sagemaker: |
| UpdateClusterSoftware | sagemaker:UpdateClusterSoftware |
arn:aws:sagemaker: |
Per un elenco completo delle autorizzazioni e dei tipi di risorse per le SageMaker API, consulta Azioni, risorse e chiavi di condizione per Amazon SageMaker AI nel AWS Service Authorization Reference.
SageMaker HyperPod comandi in AWS CLI
Di seguito sono riportati i AWS CLI comandi SageMaker HyperPod per eseguire le operazioni HyperPod API principali.
SageMaker HyperPod Moduli Python in AWS SDK per Python (Boto3)
Di seguito sono riportati i metodi utilizzati dal AWS SDK per Python (Boto3) client per l' SageMaker intelligenza artificiale per eseguire le operazioni HyperPod API principali.