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à.
Provisioning continuo per operazioni cluster avanzate su Amazon EKS
SageMaker HyperPod I cluster Amazon creati con l'orchestrazione di Amazon EKS ora supportano il provisioning continuo, una nuova funzionalità che consente una maggiore flessibilità ed efficienza nell'esecuzione di carichi di lavoro su larga scala. AI/ML Il provisioning continuo consente di iniziare rapidamente l’addestramento, scalare senza problemi, eseguire la manutenzione senza interrompere le operazioni e avere una visibilità granulare sulle operazioni del cluster.
Nota
Il provisioning continuo è disponibile come configurazione opzionale per i cluster creati con l'orchestrazione EKS. HyperPod I cluster creati con l’orchestrazione Slurm utilizzano un modello di dimensionamento diverso.
Come funziona
Il sistema di provisioning continuo introduce un’architettura dello stato desiderato che sostituisce il tradizionale modello basato sulla richiesta. Questa nuova architettura consente operazioni parallele e non bloccanti su diversi livelli di risorse, mantenendo al contempo la stabilità e le prestazioni del sistema. Il sistema di provisioning continuo:
-
Accetta la richiesta: registra il numero delle istanze di destinazione per ogni gruppo di istanze
-
Avvia il provisioning: avvia le istanze per raggiungere il conteggio previsto
Monitora lo stato di avanzamento: monitora ogni tentativo di avvio dell’istanza e registra lo stato
-
Gestisce gli errori: riprova automaticamente gli avvii non riusciti
Il provisioning continuo è disabilitato per impostazione predefinita. Per utilizzare questa funzionalità, imposta --node-provisioning-mode su Continuous.
Con il provisioning continuo abilitato, puoi avviare più operazioni di dimensionamento contemporaneamente senza attendere il completamento delle operazioni precedenti. Ciò consente di scalare contemporaneamente diversi gruppi di istanze nello stesso cluster e di inviare più richieste di dimensionamento allo stesso gruppo di istanze.
Il provisioning continuo consente inoltre l'accesso e il monitoraggio dettagliato degli eventi DescribeClusterEvente ListClusterEventla visibilità operativa.
Misurazione dell’utilizzo
HyperPod i cluster con provisioning continuo utilizzano la misurazione a livello di istanza per fornire una fatturazione accurata che rifletta l'utilizzo effettivo delle risorse. Questo approccio di misurazione si differenzia dalla tradizionale fatturazione a livello di cluster in quanto tiene traccia di ogni istanza in modo indipendente.
Fatturazione a livello di istanza
Con il provisioning continuo, la fatturazione inizia e si arresta a livello della singola istanza anziché attendere le modifiche dello stato a livello di cluster. Questa funzionalità fornisce i seguenti vantaggi:
-
Accuratezza di fatturazione: la fatturazione inizia quando inizia l’esecuzione dello script del ciclo di vita. Se lo script del ciclo di vita non riesce, l’allocazione dell’istanza verrà ritentata e verrà addebitata la durata del runtime dello script del ciclo di vita.
-
Misurazione indipendente: il ciclo di vita della fatturazione di ogni istanza viene gestito separatamente, evitando errori di fatturazione a cascata
-
Aggiornamenti della fatturazione in tempo reale: la fatturazione inizia quando un’istanza inizia a eseguire lo script del ciclo di vita e si arresta quando l’istanza entra in uno stato di terminazione
Ciclo di vita della fatturazione
Ogni istanza del cluster segue questo ciclo di vita di fatturazione: HyperPod
-
La fatturazione inizia: quando l’istanza viene avviata correttamente e inizia a eseguire lo script di configurazione del ciclo di vita
-
La fatturazione continua: per tutta la durata operativa dell’istanza
-
La fatturazione si arresta: quando l’istanza entra in uno stato di terminazione, indipendentemente dal motivo della terminazione
Nota
La fatturazione non inizia in caso di errori di avvio delle istanze. Se l’avvio di un’istanza non riesce a causa di una capacità insufficiente o di altri problemi, non verrà addebitato alcun costo per il tentativo non riuscito. La fatturazione viene calcolata a livello di istanza e i costi sono aggregati e riportati nel nome della risorsa Amazon (ARN) del cluster.
Creazione di un cluster con provisioning continuo abilitato
Nota
È necessario che sia configurato un cluster Amazon EKS esistente con la rete VPC e che sia installato il grafico Helm richiesto. Inoltre, devi preparare uno script di configurazione del ciclo di vita e devi caricarlo in un bucket Amazon S3 a cui può accedere il tuo ruolo di esecuzione. Per ulteriori informazioni, consulta Gestione dei SageMaker HyperPod cluster orchestrati da Amazon EKS.
La seguente AWS CLI operazione crea un HyperPod cluster con un gruppo di istanze e il provisioning continuo abilitato.
aws sagemaker create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "ig-1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "TrainingPlanArn": "" }' \ --node-provisioning-mode Continuous // Expected Output: { "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>" }
Dopo aver creato il cluster, puoi utilizzare ListClusterNodeso DescribeClusterNodeper trovare ulteriori informazioni sui nodi del cluster.
La chiamata a queste operazioni restituirà un ClusterInstanceStatusDetailsoggetto con uno dei seguenti valori:
-
Running: il nodo è integro e registrato con l’orchestratore del cluster (EKS).
-
Errore: il provisioning del nodo non è riuscito, ma il sistema riproverà automaticamente a eseguire il provisioning con una nuova istanza. EC2
-
Pending: è in corso il provisioning o il riavvio del nodo.
-
ShuttingDown: La chiusura del nodo è in corso. Il nodo viene rimosso correttamente dal cluster oppure passa in stato di errore se si verificano errori durante la terminazione.
-
SystemUpdating: Il nodo è sottoposto a patch AMI, attivate manualmente o come parte dell'applicazione di patch ai cronjob.
-
DeepHealthCheckInProgress: Sono in corso controlli sanitari approfonditi () DHCs. Questa operazione potrebbe richiedere da pochi minuti a diverse ore a seconda della natura dei test. I nodi danneggiati vengono sostituiti e i nodi integri passano in stato Running.
-
NotFound: Usato in BatchAddClusterNodesrisposta a indicare che un nodo è stato eliminato durante la riproduzione idempotente.
Requisiti di capacità minima () MinCount
La MinCount funzionalità consente di specificare il numero minimo di istanze che devono essere fornite correttamente prima che un gruppo di istanze passi allo stato. InService Questa funzionalità offre un migliore controllo sulle operazioni di scalabilità e aiuta a prevenire scenari in cui i gruppi di istanze con provisioning parziale non possono essere utilizzati efficacemente per i carichi di lavoro di formazione.
Importante
MinCount non è una garanzia permanente di capacità minima. Assicura che il numero minimo di istanze specificato sia disponibile solo quando il gruppo di istanze diventa InService disponibile per la prima volta. Durante le normali operazioni, ad esempio sostituzioni di istanze non funzionanti o attività di manutenzione, MinCount possono verificarsi brevi cali di seguito.
Come funziona MinCount
Quando si crea o si aggiorna un gruppo di istanze con MinCount enabled, si verifica il seguente comportamento:
-
Nuovi gruppi di istanze: il gruppo di istanze rimane
Creatingattivo fino a quando almeno MinCount le istanze non vengono fornite correttamente e sono pronte. Una volta raggiunta questa soglia, il gruppo di istanze passa a.InService -
Gruppi di istanze esistenti: quando si MinCount esegue l'aggiornamento su un gruppo di istanze esistente, lo stato cambia
Updatingfino al soddisfacimento del nuovo MinCount requisito. -
Scalabilità continua: se TargetCount è maggiore di MinCount, il sistema di ridimensionamento continuo continua a tentare di avviare istanze aggiuntive finché non viene raggiunto. TargetCount
-
Timeout e rollback: se MinCount non possono essere soddisfatti entro 3 ore, il sistema ripristina automaticamente il gruppo di istanze all'ultimo stato valido conosciuto. Per ulteriori informazioni sul comportamento di rollback, vedete Comportamento automatico del rollback.
Stato del gruppo di istanze durante le operazioni MinCount
I gruppi di istanze MinCount configurati presentano il seguente comportamento di stato:
- Creazione in corso
-
Per i nuovi gruppi di istanze quando CurrentCount < MinCount. Il gruppo di istanze rimane in questo stato fino al raggiungimento del requisito di capacità minima.
- Aggiornamento in corso
-
Per i gruppi di istanze esistenti quando MinCount viene modificato e CurrentCount < MinCount. Il gruppo di istanze rimane in questo stato finché non viene soddisfatto il nuovo requisito di capacità minima.
- InService
-
Quando MinCount ≤ CurrentCount ≤ TargetCount. Il gruppo di istanze è pronto per l'uso e tutte le operazioni di modifica sono sbloccate.
Durante il Creating nostro Updating status, si applicano le seguenti restrizioni:
-
Operazioni mutanti come
BatchAddClusterNodesBatchDeleteClusterNodes, oUpdateClusterSoftwaresono bloccate -
È comunque possibile modificare TargetCount i valori MinCount e per correggere gli errori di configurazione
-
L'eliminazione di gruppi di cluster e istanze è sempre consentita
Comportamento automatico del rollback
Se un gruppo di istanze non riesce a raggiungerlo MinCount entro 3 ore, il sistema avvia automaticamente un rollback per evitare un'attesa indefinita:
-
Nuovi gruppi di istanze: MinCount e TargetCount vengono reimpostati su (0, 0)
-
Gruppi di istanze esistenti: MinCount e TargetCount vengono ripristinati ai loro valori dall'ultimo
InServicestato -
Selezione delle istanze da terminare: se è necessario terminare le istanze durante il rollback, il sistema seleziona prima le istanze non integre e poi quelle a cui è stato effettuato il provisioning più recente.
-
Transizione dello stato: il gruppo di istanze passa immediatamente
InServiceallo stato dopo l'avvio del rollback, consentendo al sistema di scalabilità continua di gestire la capacità in base alle impostazioni di rollback
Il timeout di 3 ore si ripristina ogni volta che viene aggiornato. MinCount Ad esempio, se si esegue l'aggiornamento MinCount più volte, il periodo di timeout ricomincia dall'aggiornamento più recente.
MinCount eventi
Il sistema emette eventi specifici per aiutarvi a tenere traccia MinCount delle operazioni:
-
Capacità minima raggiunta: emessa quando un gruppo di istanze raggiunge con successo la propria posizione MinCount e passa a
InService -
Rollback avviato: emesso quando scade il timeout di 3 ore e inizia il rollback automatico
È possibile monitorare questi eventi utilizzando per tenere traccia dello stato di avanzamento delle ListClusterEventsoperazioni. MinCount
Utilizzo delle API
MinCount viene specificato utilizzando il MinInstanceCount parametro nelle configurazioni del gruppo di istanze:
aws sagemaker create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "worker-group", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 64, "MinInstanceCount": 50, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'" }' \ --node-provisioning-mode Continuous
Considerazioni chiave per MinCount l'utilizzo:
-
MinInstanceCountdeve essere compreso tra 0 e il valoreInstanceCount(incluso) del gruppo di istanze specificato nella CreateClusternostra richiesta UpdateCluster -
L'impostazione
MinInstanceCountsu 0 (impostazione predefinita) mantiene il comportamento di ridimensionamento continuo standard -
L'impostazione
MinInstanceCountuguale aInstanceCountfornisce un comportamento di all-or-nothing ridimensionamento -
MinCount è disponibile solo per i cluster impostati
NodeProvisioningModesuContinuous