Guida introduttiva all'utilizzo di SageMaker HyperPod AWS CLI - 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à.

Guida introduttiva all'utilizzo di SageMaker HyperPod AWS CLI

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

  1. Prima di tutto, prepara e carica gli script del ciclo di vita su 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 comando seguente.

    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 prefissosagemaker- perché il Ruolo IAM per SageMaker HyperPod con AmazonSageMakerClusterInstanceRolePolicy consente l’accesso 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 Le fasi secondarie seguenti mostrano come scaricare, cosa modificare e come caricare gli script del ciclo di vita di esempio in un bucket Amazon S3.

    1. Scarica una copia degli script del ciclo di vita di esempio in una directory sul computer locale.

      git clone https://github.com/aws-samples/awsome-distributed-training/
    2. 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 Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita.

    3. Scrivi un file di configurazione Slurm e salvalo come provisioning_parameters.json. Nel file, specificate i parametri di configurazione Slurm di base per assegnare correttamente i nodi Slurm ai gruppi di istanze del cluster. SageMaker HyperPod In questo tutorial, configura tre nodi Slurm denominati my-controller-group, my-login-group e worker-group-1, come mostrato nella configurazione di esempio seguente provisioning_parameters.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" } ] }
    4. Carica gli script su s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src. Puoi eseguire questa operazione con la console di Amazon S3 o con il comando della AWS CLI Amazon S3 seguente.

      aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
  2. Prepara un file di CreateClusterrichiesta in formato JSON e salvalo con nome. create_cluster.json Il modello di richiesta seguente è allineato alla configurazione del nodo Slurm definita in provisioning_parameters.json nella Fase 1.c. Per ExecutionRole, fornisci l’ARN del ruolo IAM che hai creato con la policy gestita AmazonSageMakerClusterInstanceRolePolicy in 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}" } ] }
  3. Utilizza il comando seguente per creare il cluster.

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

    Questo dovrebbe restituire l’ARN del cluster creato.

    Se ricevi un errore dovuto ai limiti delle risorse, assicurati di sostituire il tipo di istanza con uno che disponga di quote sufficienti nel tuo account oppure richiedi quote aggiuntive seguendo la procedura in SageMaker HyperPod quote.

  4. Esegui describe-cluster per verificare lo stato del cluster.

    aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

    Quando lo stato del cluster diventa InService, procedi con la fase successiva.

  5. Esegui list-cluster-nodes per controllare i dettagli dei nodi del cluster.

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

    Questo restituisce una risposta e InstanceId è ciò che serve agli utenti del cluster per l’accesso (aws ssm). Per ulteriori informazioni sull’accesso ai nodi del cluster e sull’esecuzione di carichi di lavoro di ML, consulta Lavori su cluster SageMaker HyperPod .

Eliminazione del cluster e pulizia delle risorse

Dopo aver testato con successo la creazione di un SageMaker HyperPod cluster, questo continua a funzionare nello InService stato fino a quando non lo elimini. Ti consigliamo di eliminare tutti i cluster creati utilizzando la capacità di SageMaker intelligenza artificiale 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 costituito da due gruppi di istanze. Uno di essi utilizza un’istanza C5, quindi assicurati di eliminare il cluster con 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 utilizzato 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 dall’archiviazione o dal file system.