View a markdown version of this page

SageMaker HyperPod riferimenti - Amazon SageMaker AI

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.

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 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 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. slurmctld Esattamente 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 di Compute nodo; non consentito per i Controller tipi di nodo. Login Attualmente supporta un singolo nome di partizione per gruppo di istanze.

    Nota

    Tutti i nodi vengono aggiunti automaticamente alla dev partizione 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 quando Orchestrator.Slurm viene fornito. Controlla la modalità di HyperPod gestione del slurm.conf file sul nodo del controller. Valori validi:

    • Managed(impostazione predefinita): controlla HyperPod completamente le mappature dei nodi di partizione in. slurm.conf Il rilevamento della deriva è abilitato: se la corrente è slurm.conf diversa 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.conf Il 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 le slurm.conf modifiche 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). 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 con. SlurmConfig NodeType: 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 su 1.0.0.

  • workload_manager: obbligatorio Serve a specificare quale gestore del carico di lavoro deve essere configurato nel cluster. HyperPod Lascia il valore su slurm.

  • 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 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:

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: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

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.