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
Per ulteriori informazioni e riferimenti sull'utilizzo, SageMaker HyperPod consulta i seguenti argomenti.
Argomenti
SageMaker HyperPod prezzi
Negli argomenti seguenti vengono fornite informazioni sui SageMaker HyperPod prezzi. Per ulteriori dettagli sul prezzo orario per l'utilizzo SageMaker HyperPod delle istanze, consulta anche SageMaker i prezzi di Amazon
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 di cluster alloca la capacità disponibile dal pool di capacità SageMaker AI on-demand. In alternativa, puoi richiedere una capacità riservata per garantire l’accesso inviando un ticket per un aumento della quota. L' SageMaker IA assegna la priorità alle richieste di capacità in entrata e ricevi un tempo stimato per l'allocazione della capacità.
Fatturazione del servizio
Quando effettui il provisioning di una capacità di elaborazione attiva SageMaker HyperPod, ti viene fatturata la durata dell'allocazione della capacità. SageMaker HyperPod la fatturazione viene visualizzata nelle fatture relative all'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 configurare Slurm sul tuo 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 legacy | 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, si definiscono i tipi di nodi Slurm, le assegnazioni delle partizioni e i montaggi dei file system direttamente nelle richieste 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 creare o mantenere
provisioning_parameters.json -
Built-in convalida: l'API convalida la topologia Slurm prima della creazione del cluster
-
Rilevamento delle deviazioni: rileva le modifiche non autorizzate a
slurm.conf -
Per-instance-group storage: configura diversi file system FSx per diversi gruppi di istanze
-
Supporto FSx per OpenZFS: monta i file system OpenZFS oltre a FSx for Lustre
SlurmConfig (per gruppo di istanze)
Aggiungi 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 (head). 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. Un array di nomi di partizioni Slurm. Obbligatorio per i tipi diComputenodo; non consentito per i tipi di nodoControllero 2Login. Attualmente supporta un singolo nome di partizione per gruppo di istanze.Nota
Tutti i nodi vengono aggiunti automaticamente alla
devpartizione universale oltre 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 (a 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— Richiesto quandoOrchestrator.Slurmviene fornito. Controlla come HyperPod gestisce ilslurm.conffile sul nodo del controller. Valori validi:-
Managed(impostazione predefinita): controlla HyperPod completamente la mappatura dei nodi di partizione in.slurm.confIl rilevamento della deriva è abilitato: se la corrente èslurm.confdiversa dalla configurazione prevista, fallisce e restituisce 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 dell'API, sovrascrivendo eventuali modifiche manuali apportate a.slurm.confIl rilevamento della deriva è disabilitato. Utilizzate questa strategia per ripristinare dopo una deriva o ripristinare il cluster a uno stato noto. -
Merge— HyperPod conserva leslurm.confmodifiche manuali e le unisce alla configurazione dell'API. Il rilevamento della deriva è disabilitato. Utilizza questa strategia se devi apportare modifiche manuali alla configurazione di Slurm che dovrebbero persistere tra 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 | Ripristino 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 filesystem FSx per gruppo di istanze utilizzando. InstanceStorageConfigs Ciò consente a diversi gruppi di istanze di montare file system diversi.
Prerequisiti:
-
Il cluster deve utilizzare un VPC personalizzato (via
VpcConfig). I file system FSx risiedono nel tuo VPC e il VPC gestito dalla piattaforma non può raggiungerli. -
Almeno un gruppo di istanze deve avere with.
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 filesystem 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 eseguendolo.aws fsx describe-file-systems
FsxOpenZfsConfig
Configura FSx per il montaggio del filesystem OpenZFS per un gruppo di istanze.
"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]
Parametri:
-
DnsName: obbligatorio Il nome DNS del filesystem 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ò avere al massimo una FsxLustreConfig alla voltaFsxOpenZfsConfig.
Esempio con più filesystem:
{ "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 di FSx si applicano solo durante il provisioning dei nodi. I nodi esistenti mantengono la configurazione FSx originale. Per applicare la nuova configurazione FSx a tutti i nodi, riduci il gruppo di istanze a 0, quindi esegui il backup verso l'alto.
Esempio di API-driven configurazione completo
L'esempio seguente mostra una CreateCluster richiesta completa utilizzando la configurazione 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 ulteriori informazioni sull'utilizzo della API-driven configurazione, vedere. Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita
Configurazione precedente: provisioning_parameters.json
Nota
L'provisioning_parameters.jsonapproccio è il metodo legacy per configurare Slurm on. HyperPod Per i nuovi cluster, si consiglia di utilizzare l'approccio di API-driven configurazione descritto sopra. L'approccio legacy rimane pienamente 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 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 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 dei HyperPod cluster, vedi. 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 configurare nel cluster. HyperPod Lascia il valore suslurm. -
controller_group: obbligatorio Serve a specificare il nome del gruppo di istanze del HyperPod cluster che si desidera assegnare al nodo Slurm controller (head). -
login_group: Opzionale. Serve a specificare il nome del gruppo di istanze del HyperPod cluster che si desidera 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 che si desidera assegnare al nodo Slurm worker (calcolo). -
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 di montaggio FSx.
Confronto: rispetto alla configurazione precedente API-driven
| Funzionalità | API-driven (Consigliato) | Legacy (provisioning_parameters.json) |
| Posizione di configurazione | CreateCluster Richiesta API | File S3 |
| FSx per Lustre | Sì, gruppo per istanza | Sì, Cluster-wide solo |
| FSx per OpenZFS | Sì, gruppo per istanza | 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 del ciclo di vita | Semplificato | È richiesta la configurazione SLURM completa |
SageMaker HyperPod DLAMI
SageMaker HyperPod esegue un DLAMI basato su:
-
AWS AMI GPU Deep Learning Base (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 SageMaker HyperPod cluster per supportare funzionalità di resilienza come il controllo dello stato del cluster e il ripristino automatico. Per seguire gli aggiornamenti HyperPod software che il team di assistenza distribuisce tramite DLamis, vedere. HyperPod Note di SageMaker HyperPod rilascio 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta Fornisci le autorizzazioni per etichettare SageMaker le risorse AI.
AWS politiche gestite per Amazon SageMaker AIche danno i permessi 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 politica di autorizzazioni da allegare agli utenti IAM per gli amministratori del cloud, utilizza la seguente tabella come riferimento.
| Operazioni delle SageMaker API Amazon | 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 del AWS SDK per Python (Boto3) client per l' SageMaker intelligenza artificiale per eseguire le operazioni HyperPod API principali.