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à.
Utilizzando i comandi per AWS CLI SageMaker HyperPod APIs
Crea il tuo primo SageMaker HyperPod cluster utilizzando i AWS CLI comandi per HyperPod.
Crea il tuo primo SageMaker HyperPod cluster con Slurm
Il seguente tutorial mostra come creare un nuovo SageMaker HyperPod cluster e configurarlo con Slurm tramite i comandi per.AWS CLI
SageMaker HyperPod Seguendo il tutorial, creerai un HyperPod cluster con tre nodi Slurm,, e. my-controller-group
my-login-group
worker-group-1
-
Innanzitutto, prepara e carica gli script del ciclo di vita in un bucket Amazon S3. Durante la creazione del cluster, li HyperPod esegue in ogni gruppo di istanze. Carica gli script del ciclo di vita su Amazon S3 utilizzando il seguente comando.
aws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
Nota
Il percorso del bucket S3 deve iniziare con un prefisso
sagemaker-
, poiché il IAMruolo per SageMaker HyperPod with consente l'accessoAmazonSageMakerClusterInstanceRolePolicy
solo ai bucket Amazon S3 che iniziano con il prefisso specifico.Se parti da zero, usa gli script del ciclo di vita di esempio forniti nell'archivio Awsome Distributed Training. GitHub
I seguenti passaggi secondari mostrano come scaricare, cosa modificare e come caricare gli script del ciclo di vita di esempio in un bucket Amazon S3. -
Scarica una copia degli esempi di script del ciclo di vita in una directory sul tuo computer locale.
git clone https://github.com/aws-samples/awsome-distributed-training/
-
Accedi alla directory
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
, dove puoi trovare un set di script del ciclo di vita. cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
Per ulteriori informazioni sugli esempi di script del ciclo di vita, consulta. Personalizza SageMaker HyperPod i cluster utilizzando gli script del ciclo di vita
-
Scrivere un file di configurazione Slurm e salvarlo con nome.
provisioning_params.json
Nel file, specifica i parametri di configurazione Slurm di base per assegnare correttamente i nodi Slurm ai gruppi di istanze del cluster. SageMaker HyperPod In questo tutorial, imposta tre nodi Slurm denominati, emy-controller-group
my-login-group
worker-group-1
, come mostrato nella configurazione di esempio seguente.provisioning_params.json
{ "version": "1.0.0", "workload_manager": "
slurm
", "controller_group": "my-controller-group
", "login_group": "my-login-group
", "worker_groups": [ { "instance_group_name": "worker-group-1
", "partition_name": "partition-1
" } ] } -
Carica gli script su.
s3://sagemaker-
Puoi farlo utilizzando la console Amazon S3 o eseguendo il seguente comando Amazon AWS CLI S3.<unique-s3-bucket-name>
/<lifecycle-script-directory>
/srcaws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
Prepara un file di CreateClusterrichiesta in JSON formato e salvalo con nome.
create_cluster.json
Il seguente modello di richiesta si allinea alla configurazione del nodo Slurm definitaprovisioning_params.json
nel passaggio 1.c. PerExecutionRole
, fornisci il ARN IAM ruolo che hai creato con il managed in.AmazonSageMakerClusterInstanceRolePolicy
Prerequisiti per l'utilizzo di SageMaker HyperPod{
// Required: Specify the name of the cluster.
"ClusterName": "my-hyperpod-cluster
",// Required: Configure instance groups to be launched in the cluster
"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node.
"InstanceGroupName": "my-controller-group
", "InstanceType": "ml.c5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
",// Optional: Configure an additional storage per instance group.
"InstanceStorageConfigs": [ {// Attach an additional EBS volume to each instance within the instance group.
// The default mount path for the additional EBS volume is /opt/sagemaker.
"EbsVolumeConfig":{// Specify an integer between 1 and 16384 in gigabytes (GB).
"VolumeSizeInGB":integer
, } } ] }, { "InstanceGroupName": "my-login-group
", "InstanceType": "ml.m5.4xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" }, { "InstanceGroupName": "worker-group-1
", "InstanceType": "ml.trn1.32xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" } ] } -
Esegui il comando seguente per creare il cluster.
aws sagemaker create-cluster --cli-input-json
file://complete/path/to/create_cluster.json
Questo dovrebbe restituire ARN il cluster creato.
Se ricevi un errore dovuto ai limiti delle risorse, assicurati di cambiare il tipo di istanza con una con quote sufficienti nel tuo account oppure richiedi quote aggiuntive seguendo l'indirizzo. SageMaker HyperPod quote
-
Esegui
describe-cluster
per verificare lo stato del cluster.aws sagemaker describe-cluster --cluster-name
my-hyperpod-cluster
Dopo che lo stato del cluster diventa
InService
, procedi al passaggio successivo. -
Esegui
list-cluster-nodes
per controllare i dettagli dei nodi del cluster.aws sagemaker list-cluster-nodes --cluster-name
my-hyperpod-cluster
Ciò restituisce una risposta ed
InstanceId
è ciò di cui gli utenti del cluster hanno bisogno per accedere (aws ssm
) ad essi. Per ulteriori informazioni sull'accesso ai nodi del cluster e sull'esecuzione di carichi di lavoro ML, consulta. Offerte di lavoro sui SageMaker HyperPod cluster
Eliminare il cluster e pulire le risorse
Dopo aver testato con successo la creazione di un SageMaker HyperPod cluster, questo continua a funzionare nello InService
stato fino all'eliminazione del cluster. Ti consigliamo di eliminare tutti i cluster creati utilizzando la SageMaker capacità su richiesta quando non sono in uso per evitare di incorrere in costi di servizio continui in base ai prezzi su richiesta. In questo tutorial, hai creato un cluster composto da due gruppi di istanze. Uno di essi utilizza un'istanza C5, quindi assicurati di eliminare il cluster eseguendo il comando seguente.
aws sagemaker delete-cluster --cluster-name
my-hyperpod-cluster
Per pulire gli script del ciclo di vita dal bucket Amazon S3 utilizzato per questo tutorial, vai al bucket Amazon S3 che hai usato durante la creazione del cluster e rimuovi completamente i file.
Se hai testato l'esecuzione di carichi di lavoro di training su modelli sul cluster, controlla anche se hai caricato dati o se il tuo processo ha salvato artefatti in diversi bucket Amazon S3 o servizi di file system come Amazon FSx for Lustre e Amazon Elastic File System. Per evitare addebiti, elimina tutti gli artefatti e i dati dallo storage o dal file system.