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

Per ulteriori informazioni e riferimenti sull'utilizzo, SageMaker HyperPod consulta i seguenti 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. 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. Un array di nomi di partizioni Slurm. Obbligatorio per i tipi di Compute nodo; non consentito per i tipi di nodo Controller o 2Login. Attualmente supporta un singolo nome di partizione per gruppo di istanze.

    Nota

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

    • Managed(impostazione predefinita): controlla HyperPod completamente la mappatura dei nodi di partizione in. slurm.conf Il rilevamento della deriva è abilitato: se la corrente è slurm.conf diversa 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.conf Il rilevamento della deriva è disabilitato. Utilizzate questa strategia per ripristinare dopo una deriva o ripristinare 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. 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 (viaVpcConfig). 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. SlurmConfig NodeType: 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 su 1.0.0.

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

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

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