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 SageMaker AI da utilizzare su. SageMaker HyperPod La creazione di cluster su richiesta alloca la capacità disponibile dal pool di capacità on-demand AI SageMaker . 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 l'utente riceve 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 APIs
L'elenco seguente è un set completo SageMaker HyperPod APIs per l'invio di richieste di azione in formato JSON all'IA tramite o. SageMaker AWS CLI AWS SDK per Python (Boto3)
SageMaker HyperPod Configurazione Slurm
HyperPod supporta due approcci per configurare Slurm sul tuo cluster. Scegliete l'approccio più adatto alle vostre esigenze.
| Approccio | Descrizione | Consigliato per |
| Configurazione basata su API | Definisci la configurazione di Slurm direttamente nelle richieste e API CreateCluster 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 |
Configurazione Slurm basata su API (consigliata)
Con la configurazione basata su API, puoi definire i tipi di nodi Slurm, le assegnazioni delle partizioni e i montaggi dei file system direttamente 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 -
Convalida integrata: 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 FSx file system per diversi gruppi di istanze
-
FSx per il supporto di OpenZFS: monta i file system OpenZFS oltre a Lustre FSx
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 gestione del file. HyperPod slurm.conf
"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 |
FSx configurazione tramite InstanceStorageConfigs
Con la configurazione basata su API, è possibile configurare i FSx file system 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). FSx i file system 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 FSx per il montaggio del file system Lustre per un gruppo di istanze.
"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]
Parametri:
-
DnsName: obbligatorio Il nome DNS del filesystem for Lustre. FSx 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 FSx filesystem for Lustre. Puoi trovarlo nella FSx console Amazon o eseguendoloaws 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 for OpenZFS. FSx 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
FSx le modifiche alla configurazione si applicano solo durante il provisioning dei nodi. I nodi esistenti mantengono la FSx configurazione originale. Per applicare una nuova FSx configurazione a tutti i nodi, riduci il gruppo di istanze a 0, quindi esegui il backup verso l'alto.
Esempio di configurazione completo basato su API
L'esempio seguente mostra una CreateCluster richiesta completa che utilizza la configurazione Slurm basata su 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" } ] }
Per ulteriori informazioni sull'utilizzo della configurazione basata su API, consulta. 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, consigliamo di utilizzare l'approccio di configurazione basato sulle API 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 informazioni su come preparare questo modulo durante i processi di creazione dei 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 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 tuoi nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome FSx DNS. -
fsx_mountname: Opzionale. Se desideri configurare i tuoi nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome di FSx montaggio.
Confronto: configurazione basata su API e configurazione legacy
| Funzionalità | Basato su API (consigliato) | Legacy (provisioning_parameters.json) |
| Posizione di configurazione | CreateCluster Richiesta API | File S3 |
| FSx per Lustre | Sì, gruppo per istanza | Sì, solo a livello di cluster |
| FSx per OpenZFS | Sì, per gruppo di istanze | No, non supportato |
| Validazione integrata | 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 software distribuiti dal team di assistenza, consulta HyperPod . HyperPod DLAMIs 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 SageMaker APIs, 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.