Creazione di un cluster SageMaker HyperPod
Scopri come creare cluster SageMaker HyperPod orchestrati da Amazon EKS utilizzando la AWS CLI.
-
Prima di creare un cluster SageMaker HyperPod:
-
Assicurati di disporre di un cluster Amazon EKS funzionante. Per istruzioni dettagliate su come configurare un cluster Amazon EKS, consulta Create an Amazon EKS cluster in Amazon EKS User Guide.
-
Installa il grafico Helm come indicato in Installazione di pacchetti sul cluster Amazon EKS con Helm. Se crei un Creazione di un cluster HyperPod EKS con un gruppo di istanze limitato (RIG), avrai bisogno di un grafico Helm separato.
-
-
Prepara uno script di configurazione del ciclo di vita e caricalo in un bucket Amazon S3, ad esempio
s3://.amzn-s3-demo-bucket/Lifecycle-scripts/base-config/Per iniziare rapidamente, scarica lo script di esempio
on_create.shdal repository GitHub AWSAwesome Distributed Training e caricalo nel bucket S3. Puoi anche includere istruzioni di configurazione aggiuntive, una serie di script di configurazione o comandi da eseguire durante la fase di provisioning del cluster HyperPod. Importante
Se crei un Ruolo IAM per SageMaker HyperPod collegando solo la
AmazonSageMakerClusterInstanceRolePolicygestita, il tuo cluster ha accesso ai bucket Amazon S3 con il prefissosagemaker-specifico.Se crei un gruppo di istanze limitato, non devi scaricare ed eseguire lo script del ciclo di vita. Devi eseguire
install_rig_dependencies.sh, invece.I prerequisiti per eseguire lo script
install_rig_dependencies.shincludono:-
Il nodo AWS (CNI) e CoreDNS devono essere entrambi abilitati. Si tratta di componenti aggiuntivi EKS standard che non sono gestiti dal grafico Helm di SageMaker HyperPod standard, ma possono essere facilmente abilitati nella console EKS alla voce Componenti aggiuntivi.
-
Il grafico Helm di SageMaker HyperPod standard deve essere installato prima di eseguire questo script.
Lo script
install_rig_dependencies.shesegue queste operazioni.-
aws-node(CNI): nuovo DaemonSetrig-aws-nodecreato; applicate patch alaws-nodeesistente per evitare nodi RIG. -
coredns: convertito in DaemonSet per RIG per supportare l’utilizzo di più RIG e prevenire il sovraccarico. -
training-operators: aggiornato con le tolleranze di taint dei worker RIG e con nodeAffinity che favorisce le istanze non RIG.
-
Elastic Fabric Adapter (EFA): aggiornato per tollerare il taint dei worker RIG e utilizzare immagini dei container corrette per ogni Regione.
-
-
Prepara un file di richiesta API CreateCluster in formato JSON. Per
ExecutionRole, fornisci l’ARN del ruolo IAM che hai creato con la policy gestitaAmazonSageMakerClusterInstanceRolePolicynella sezione Ruolo IAM per SageMaker HyperPod.Nota
Assicurati che il cluster SageMaker HyperPod sia implementato all’interno dello stesso cloud privato virtuale (VPC) del cluster Amazon EKS. Le sottoreti e i gruppi di sicurezza specificati nella configurazione del cluster SageMaker HyperPod devono consentire la connettività di rete e la comunicazione con l’endpoint del server API del cluster Amazon EKS.
// create_cluster.json{ "ClusterName":"string", "InstanceGroups": [{ "InstanceGroupName":"string", "InstanceType":"string", "InstanceCount":number, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate":"on_create.sh"}, "ExecutionRole":"string", "ThreadsPerCore":number, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }], "RestrictedInstanceGroups": [ { "EnvironmentConfig": { "FSxLustreConfig": { "PerUnitStorageThroughput":number, "SizeInGiB":number} }, "ExecutionRole":"string", "InstanceCount":number, "InstanceGroupName":"string", "InstanceStorageConfigs": [ { ... } ], "InstanceType":"string", "OnStartDeepHealthChecks": ["string"], "OverrideVpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "ScheduledUpdateConfig": { "DeploymentConfig": { "AutoRollbackConfiguration": [ { "AlarmName":"string"} ], "RollingUpdatePolicy": { "MaximumBatchSize": { "Type":"string", "Value":number}, "RollbackMaximumBatchSize": { "Type":"string", "Value":number} }, "WaitIntervalInSeconds":number}, "ScheduleExpression":"string"}, "ThreadsPerCore":number, "TrainingPlanArn":"string"} ], "VpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "Tags": [{ "Key":"string", "Value":"string"}], "Orchestrator": { "Eks": { "ClusterArn":"string", } }, "NodeRecovery": "Automatic" }Tieni presente quanto segue durante la configurazione per creare un nuovo cluster SageMaker HyperPod associato a un cluster EKS.
-
Puoi configurare fino a 20 gruppi di istanze nel parametro
InstanceGroups. -
Per
Orchestator.Eks.ClusterArn, specifica l’ARN del cluster EKS da utilizzare come orchestratore. -
Per
OnStartDeepHealthChecks, aggiungiInstanceStresseInstanceConnectivityper abilitare Controlli dell’integrità approfonditi. -
Per
NodeRecovery, specificaAutomaticper abilitare il ripristino automatico dei nodi. SageMaker HyperPod sostituisce o riavvia le istanze (nodi) quando l’agente di monitoraggio dell’integrità rileva problemi. -
Per il parametro
Tags, puoi aggiungere tag personalizzati per la gestione del cluster SageMaker HyperPod come risorsa AWS. Puoi aggiungere tag al cluster con la stessa procedura utilizzata per altri servizi AWS che supportano il tagging. Per ulteriori informazioni generali sul tagging delle risorse AWS, consulta Tagging AWS Resources User Guide. -
Per il parametro
VpcConfig, specifica le informazioni del VPC utilizzato nel cluster EKS. Le sottoreti devono essere private.
-
-
Utilizza il comando create-cluster come segue.
Importante
Quando esegui il comando
create-clustercon il parametro--cli-input-json, devi includere il prefissofile://prima del percorso completo del file JSON. Questo prefisso è necessario per garantire che AWS CLI riconosca l’input come percorso di file. L’omissione del prefissofile://genera un errore di analisi del parametro.aws sagemaker create-cluster \ --cli-input-jsonfile://complete/path/to/create_cluster.jsonQuesto dovrebbe restituire l’ARN del nuovo cluster.
Importante
Per rimuovere un gruppo di istanze limitato (RIG), puoi utilizzare l’operazione update-cluster. Quando un RIG viene ridotto verticalmente a 0, il file system FSx per Lustre non viene eliminato. Per eliminare completamente il file system FSx per Lustre, è necessario rimuovere completamente il RIG.
La rimozione di un RIG non eliminerà gli artefatti archiviati nel bucket Amazon S3 gestito dal servizio. Tuttavia, prima della rimozione, devi verificare che tutti gli artefatti nel file system FSx per Lustre siano completamente sincronizzati con Amazon S3. Consigliamo di attendere almeno 30 minuti dopo il completamento del processo per garantire la sincronizzazione completa di tutti gli artefatti tra il file system FSx per Lustre e il bucket Amazon S3 gestito dal servizio.