Utilizzo di AWS CLI - Amazon SageMaker

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

Utilizzo di AWS CLI

I seguenti argomenti forniscono indicazioni sulla scrittura in JSON formato dei file di SageMaker HyperPod API richiesta e sulla loro esecuzione utilizzando il AWS CLI comandi.

Crea un nuovo cluster

  1. Prepara gli script di configurazione del ciclo di vita e caricali in un bucket S3, ad esempio. s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/ Il passaggio 2 seguente presuppone che esista uno script del punto di ingresso denominato on_create.sh nel bucket S3 specificato.

    Importante

    Assicurati di aver impostato il percorso S3 con cui iniziare. s3://sagemaker- IAMruolo per SageMaker HyperPodHa il managed AmazonSageMakerClusterInstanceRolePolicyattached, che consente l'accesso ai bucket S3 con il prefisso specifico. sagemaker-

  2. Prepara un file di CreateClusterAPIrichiesta in formato. JSON È necessario configurare i gruppi di istanze in modo che corrispondano al cluster Slurm progettato nel provisioning_params.json file che verrà utilizzato durante la creazione del cluster come parte dell'esecuzione di un set di script del ciclo di vita. Per ulteriori informazioni, consulta SageMaker HyperPod best practice per la configurazione del ciclo di vita. Il modello seguente ha due gruppi di istanze per soddisfare i requisiti minimi per un cluster Slurm: un nodo controller (principale) e un nodo di elaborazione (worker). PerExecutionRole, fornisci il ARN IAM ruolo che hai creato con il file gestito AmazonSageMakerClusterInstanceRolePolicy dalla sezione. IAMruolo per SageMaker HyperPod

    // create_cluster.json { "ClusterName": "your-hyperpod-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller-group", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // 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": "worker-group-1", "InstanceType": "ml.p4d.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster" } ], // Optional "Tags": [ { "Key": "string", "Value": "string" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }

    A seconda di come si progetta la struttura del cluster tramite gli script del ciclo di vita, è possibile configurare fino a 20 gruppi di istanze in base al parametro. InstanceGroups

    Per il parametro Tags request, puoi aggiungere tag personalizzati per la gestione del SageMaker HyperPod cluster come AWS risorsa. Puoi aggiungere tag al tuo cluster nello stesso modo in cui li aggiungi in altri AWS servizi che supportano il tagging. Per saperne di più sull'etichettatura AWS risorse in generale, vedi Etichettatura AWS Guida per l'utente delle risorse.

    Per il parametro di VpcConfig richiesta, specifica le informazioni di a che VPC desideri utilizzare. Per ulteriori informazioni, consulta Configurazione SageMaker HyperPod con Amazon VPC.

  3. Eseguite il comando create-cluster come segue.

    aws sagemaker create-cluster \ --cli-input-json file://complete/path/to/create_cluster.json

    Questo dovrebbe restituire il file ARN del nuovo cluster.

Descrivi un cluster

Esegui describe-cluster per verificare lo stato del cluster. È possibile specificare il nome o il clusterARN.

aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster

Dopo che lo stato del cluster diventaInService, procedi al passaggio successivo. In questo modoAPI, è anche possibile recuperare i messaggi di errore dall'esecuzione di altre HyperPod API operazioni.

Elenca i dettagli dei nodi del cluster

Esegui list-cluster-nodesper controllare le informazioni chiave dei nodi del cluster.

aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster

Ciò restituisce una risposta ed InstanceId è ciò che è necessario utilizzare per registrarsi (utilizzarliaws ssm).

Descrivi i dettagli di un nodo del cluster

Esegui describe-cluster-nodeper recuperare i dettagli di un nodo del cluster. È possibile ottenere l'ID del nodo del cluster dall' list-cluster-nodes output. È possibile specificare il nome o ARN il cluster.

aws sagemaker describe-cluster-node \ --cluster-name your-hyperpod-cluster \ --node-id i-111222333444555aa

Elenca i cluster

Esegui list-clusters per elencare tutti i cluster del tuo account.

aws sagemaker list-clusters

Puoi anche aggiungere flag aggiuntivi per filtrare l'elenco dei cluster verso il basso. Per ulteriori informazioni su cosa viene eseguito questo comando a basso livello e sui flag aggiuntivi per il filtraggio, consulta il riferimento. ListClustersAPI

Aggiorna la configurazione del cluster

Esegui update-cluster per aggiornare la configurazione di un cluster.

  1. Crea un file di UpdateCluster richiesta in JSON formato. Assicurati di specificare il nome corretto del cluster e il nome del gruppo di istanze da aggiornare. È possibile modificare il tipo di istanza, il numero di istanze, lo script di ingresso alla configurazione del ciclo di vita e il percorso dello script.

    1. PerClusterName, specifica il nome del cluster che desideri aggiornare.

    2. Per InstanceGroupName

      1. Per aggiornare un gruppo di istanze esistente, specifica il nome del gruppo di istanze che desideri aggiornare.

      2. Per aggiungere un nuovo gruppo di istanze, specifica un nuovo nome non esistente nel cluster.

    3. Per InstanceType

      1. Per aggiornare un gruppo di istanze esistente, è necessario che il tipo di istanza inizialmente specificato corrisponda al gruppo.

      2. Per aggiungere un nuovo gruppo di istanze, specificate il tipo di istanza con cui desiderate configurare il gruppo.

    4. Per InstanceCount

      1. Per aggiornare un gruppo di istanze esistente, specificate un numero intero maggiore del numero corrente di istanze. Attualmente, è possibile solo aumentare il numero di istanze.

      2. Per aggiungere un nuovo gruppo di istanze, specificate un numero intero maggiore o uguale a 1.

    5. InfattiLifeCycleConfig, potete modificare entrambi SourceS3Uri i OnCreat valori se desiderate aggiornare il gruppo di istanze.

    6. Per ExecutionRole

      1. Per aggiornare un gruppo di istanze esistente, continuate a utilizzare lo stesso IAM ruolo assegnato durante la creazione del cluster.

      2. Per aggiungere un nuovo gruppo di istanze, specifica IAM il ruolo che desideri associare.

    7. Per TreadsPerCore

      1. Per aggiornare un gruppo di istanze esistente, continuate a utilizzare lo stesso valore specificato durante la creazione del cluster.

      2. Per aggiungere un nuovo gruppo di istanze, puoi scegliere qualsiasi valore tra le opzioni consentite per tipo di istanza. Per ulteriori informazioni, cerca il tipo di istanza e consulta la colonna Valid treads per core nella tabella di riferimento su CPUcore e thread per CPU core per tipo di istanza nella Amazon EC2 User Guide.

    Il seguente frammento di codice è un modello di file di JSON richiesta che puoi utilizzare. Per ulteriori informazioni sulla sintassi della richiesta e sui relativi parametriAPI, consulta il riferimento. UpdateClusterAPI

    // update_cluster.json { // Required "ClusterName": "name-of-cluster-to-update", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // 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, } } ] }, // add more blocks of instance groups as needed { ... } ] }
  2. Esegui il update-cluster comando seguente per inviare la richiesta.

    aws sagemaker update-cluster \ --cli-input-json file://complete/path/to/update_cluster.json

Aggiorna il software della SageMaker HyperPod piattaforma di un cluster

Esegui update-cluster-softwareper aggiornare i cluster esistenti con software e patch di sicurezza fornite dal SageMaker HyperPod servizio. Per--cluster-name, specifica il nome o il nome ARN del cluster da aggiornare.

Importante

Tieni presente che devi eseguire il backup del tuo lavoro prima di eseguirloAPI. Il processo di applicazione delle patch sostituisce il volume root con quello aggiornatoAMI, il che significa che i dati precedenti memorizzati nel volume root dell'istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre. Per ulteriori informazioni, consulta Utilizza lo script di backup fornito da SageMaker HyperPod.

aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster

Questo comando chiama il. UpdateClusterSoftwareAPI Dopo la API chiamata, SageMaker HyperPod aggiorna le istanze del cluster per utilizzare le più recenti SageMaker HyperPod DLAMI ed esegue gli script del ciclo di vita nel bucket S3 che hai specificato durante la creazione o l'aggiornamento del cluster. Il team SageMaker HyperPod di assistenza lancia regolarmente nuovi strumenti per migliorare la sicurezza SageMaker HyperPod DLAMI e l'esperienza degli utenti. Ti consigliamo di continuare ad aggiornare sempre alle ultime novità SageMaker HyperPod DLAMI. Per i futuri SageMaker HyperPod DLAMI aggiornamenti per le patch di sicurezza, segui conNote di SageMaker HyperPod rilascio di Amazon.

Suggerimento

Se la patch di sicurezza fallisce, puoi recuperare i messaggi di errore eseguendola DescribeClusterAPIcome indicato in. Descrivi un cluster

Nota

È possibile eseguirlo solo a livello di codiceAPI. La funzionalità di patching non è implementata nell'interfaccia utente della SageMaker HyperPod console.

Utilizza lo script di backup fornito da SageMaker HyperPod

SageMaker HyperPod fornisce uno script per il backup e il ripristino dei dati 1.architectures/5.sagemaker-hyperpod/patching-backup.shnel GitHub repository Awsome Distributed Training. Lo script fornisce le due funzioni seguenti.

Per eseguire il backup dei dati su un bucket S3 prima dell'applicazione delle patch

sudo bash patching-backup.sh --create <s3-buckup-bucket-path>

Dopo aver eseguito il comando, lo script verifica squeue se ci sono lavori in coda, arresta Slurm se non c'è nessun lavoro in coda, esegue il backup mariadb e copia gli elementi locali sul disco definito in. LOCAL_ITEMS È possibile aggiungere altri file e directory a. LOCAL_ITEMS

# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )

Inoltre, puoi aggiungere codice personalizzato allo script fornito per eseguire il backup di qualsiasi applicazione adatta al tuo caso d'uso.

Per ripristinare i dati da un bucket S3 dopo l'applicazione della patch

sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>

Eliminazione di un cluster

Esegui delete-cluster per eliminare un cluster. È possibile specificare il nome o il ARN cluster.

aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster