Ridimensionamento di un cluster SageMaker HyperPod - 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à.

Ridimensionamento di un cluster SageMaker HyperPod

Puoi ridurre il numero di istanze in esecuzione sul tuo SageMaker HyperPod cluster Amazon. Potresti voler ridurre verticalmente un cluster per vari motivi, ad esempio per limitare l’utilizzo delle risorse o ottimizzare i costi.

La pagina seguente descrive i due approcci principali per la riduzione verticale:

  • Riduzione verticale a livello di gruppo di istanze: questo approccio utilizza l’API UpdateCluster, che consente di:

    • Ridurre verticalmente il numero di istanze per gruppi di istanze specifici in modo indipendente. SageMaker L'intelligenza artificiale gestisce la terminazione dei nodi in modo da raggiungere i nuovi conteggi di istanze target che hai impostato per ciascun gruppo. Per informazioni, consulta Riduzione verticale di un gruppo di istanze.

    • Elimina completamente i gruppi di istanze dal cluster. Per informazioni, consulta Eliminazione di gruppi di istanze.

  • Riduzione verticale a livello di istanza: questo approccio utilizza l’API BatchDeleteClusterNodes, che consente di specificare i singoli nodi da terminare. Per informazioni, consulta Riduzione verticale a livello di istanza.

Nota

Quando si esegue la riduzione verticale a livello di istanza con BatchDeleteCusterNodes, puoi terminare solo un massimo di 99 istanze alla volta. UpdateCluster supporta la terminazione di qualsiasi numero di istanze.

Considerazioni importanti

  • Quando si riduce verticalmente un cluster, è necessario assicurarsi che le risorse rimanenti siano sufficienti per gestire il carico di lavoro e che qualsiasi operazione necessaria di migrazione o ribilanciamento dei dati sia gestita correttamente per evitare interruzioni.

  • Assicurati di eseguire il backup dei dati su Amazon S3 o su un file system FSx for Lustre prima di richiamare l'API su un gruppo di nodi di lavoro. Questo aiuta a prevenire qualsiasi potenziale perdita di dati dal volume root dell’istanza. Per ulteriori informazioni sui backup, consulta Utilizza lo script di backup fornito da SageMaker HyperPod.

  • Per richiamare questa API su un cluster esistente, devi prima applicare una patch al cluster eseguendo l'API. UpdateClusterSoftware Per ulteriori informazioni sull’applicazione delle patch in un cluster, consulta Aggiorna il software della SageMaker HyperPod piattaforma di un cluster.

  • La misurazione/fatturazione per le istanze on demand verrà interrotta automaticamente dopo la riduzione verticale. Per interrompere la misurazione delle istanze riservate ridotte, contatta il team del tuo AWS account per ricevere assistenza.

  • Puoi utilizzare la capacità rilasciata dalle istanze riservate ridimensionate per scalare un altro cluster. SageMaker HyperPod

Riduzione verticale a livello di gruppo di istanze

L'UpdateClusteroperazione consente di apportare modifiche alla configurazione del SageMaker HyperPod cluster, ad esempio ridurre il numero di istanze di un gruppo di istanze o rimuovere interi gruppi di istanze. Questa opzione può essere utile per adattare le risorse allocate al cluster in base alle variazioni del carico di lavoro, ottimizzare i costi o modificare il tipo di istanza di un gruppo di istanze.

Riduzione verticale di un gruppo di istanze

Utilizza questo approccio quando hai un gruppo di istanze inattivo, che può quindi essere ridotto verticalmente in modo sicuro terminando una qualsiasi delle sue istanze. Quando invii una UpdateCluster richiesta di ridimensionamento, sceglie HyperPod casualmente le istanze da terminare e le ridimensiona fino al numero di nodi specificato per il gruppo di istanze.

Nota

Quando riduci verticalmente a 0 il numero di istanze in un gruppo di istanze, tutte le istanze all’interno del gruppo verranno terminate. Tuttavia, il gruppo di istanze stesso continuerà a esistere come parte del cluster. SageMaker HyperPod Puoi aumentare di nuovo verticalmente il gruppo di istanze in un secondo momento, utilizzando la stessa configurazione del gruppo di istanze.

In alternativa, puoi scegliere di rimuovere un gruppo di istanze in modo permanente. Per ulteriori informazioni, consulta Eliminazione di gruppi di istanze.

Per ridurre verticalmente con UpdateCluster
  1. Segui la procedura descritta in Aggiornamento SageMaker HyperPod della configurazione del cluster. Quando raggiungi il passaggio 1.d in cui specifichi il InstanceCountcampo, inserisci un numero inferiore al numero corrente di istanze per ridimensionare il cluster.

  2. Esegui il AWS CLI comando update-cluster per inviare la richiesta.

Di seguito è riportato un esempio di un oggetto JSON UpdateCluster: Supponiamo che il gruppo di istanze abbia attualmente due istanze in esecuzione. Se imposti il InstanceCountcampo su 1, come mostrato nell'esempio, seleziona HyperPod casualmente una delle istanze e la termina.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training-instances", "InstanceType": "instance-type", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] } ], "NodeRecovery": "Automatic" }

Eliminazione di gruppi di istanze

È possibile utilizzare l'UpdateClusteroperazione per rimuovere interi gruppi di istanze dal SageMaker HyperPod cluster quando non sono più necessari. Questa operazione va oltre la semplice riduzione verticale, poiché consente di eliminare completamente gruppi di istanze specifici dalla configurazione del cluster.

Nota

Quando rimuovi un gruppo di istanze:

  • Tutte le istanze all’interno del gruppo di destinazione vengono terminate.

  • L’intera configurazione del gruppo viene eliminata dal cluster.

  • Tutti i carichi di lavoro in esecuzione sul gruppo di istanze vengono arrestati.

Per eliminare gruppi di istanze con UpdateCluster
  1. Quando segui la procedura descritta in Aggiornamento SageMaker HyperPod della configurazione del cluster:

    1. Imposta il parametro InstanceGroupsToDelete facoltativo nel JSON UpdateCluster e passa l’elenco separato da virgole dei nomi dei gruppi di istanze da eliminare.

    2. Quando indichi l’elenco InstanceGroups, assicurati che le specifiche dei gruppi di istanze che stai rimuovendo non siano più elencate in InstanceGroups.

  2. Esegui il AWS CLI comando update-cluster per inviare la richiesta.

Importante
  • Il SageMaker HyperPod cluster deve sempre mantenere almeno un gruppo di istanze.

  • Assicurati che venga eseguito il backup di tutti i dati critici prima della rimozione.

  • Il processo di rimozione non può essere annullato.

Di seguito è riportato un esempio di un oggetto JSON UpdateCluster: Consideriamo il caso di un cluster con tre gruppi di istanze: training, prototype-training e inference-serving. Vuoi eliminare il gruppo prototype-training.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training", "InstanceType": "instance-type", "InstanceCount": , "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] }, { "InstanceGroupName": "inference-serving", "InstanceType": "instance-type", "InstanceCount": 2, [...] }, ], "InstanceGroupsToDelete": [ "prototype-training" ], "NodeRecovery": "Automatic" }

Riduzione verticale a livello di istanza

L'BatchDeleteClusterNodesoperazione consente di ridimensionare un SageMaker HyperPod cluster specificando i singoli nodi che si desidera terminare. BatchDeleteClusterNodesfornisce un controllo più granulare per la rimozione mirata dei nodi e l'ottimizzazione del cluster. Ad esempio, è possibile utilizzare BatchDeleteClusterNodes per eliminare nodi mirati per la manutenzione, gli aggiornamenti in sequenza o il ribilanciamento geografico delle risorse.

Richiesta e risposta API

Quando invii una BatchDeleteClusterNodes richiesta, SageMaker HyperPod elimina i nodi in base alla loro istanza. IDs L'API accetta una richiesta con il nome del cluster e un elenco di nodi IDs da eliminare.

La risposta include due sezioni:

  • Failed: un elenco di errori di tipo BatchDeleteClusterNodesError , uno per ogni ID di istanza.

  • Successful: L'elenco delle istanze è IDs stato terminato con successo.

Convalida e gestione degli errori

L’API esegue varie convalide, ad esempio:

  • Verifica del formato dell'ID del nodo (prefisso e struttura dell'ID dell' EC2 istanza i- Amazon).

  • Verifica della lunghezza dell'elenco dei nodi, con un limite di 99 o meno nodi IDs in una singola BatchDeleteClusterNodes richiesta.

  • Garantire che sia presente un SageMaker HyperPod cluster valido con il nome del cluster di input e che non siano in corso operazioni a livello di cluster (aggiornamento, aggiornamento del sistema, applicazione di patch o eliminazione).

  • Gestione dei casi in cui le istanze non vengono trovate, hanno uno stato non valido o sono in uso.

Codici di risposta API

  • L’API restituisce un codice di stato 200 per le richieste riuscite (ad esempio, la convalida di tutti i nodi di input è riuscita) o parzialmente riuscite (ad esempio, la convalida di alcuni nodi di input non è riuscita).

  • Se tutte queste convalide non riescono (ad esempio, la convalida di tutti i nodi di input non riesce), l’API restituirà una risposta Richiesta non valida 400 con i messaggi e i codici di errore appropriati.

Esempio

Di seguito è riportato un esempio di riduzione verticale di un cluster a livello di istanza con la AWS CLI:

aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'