Uso de los AWS CLI comandos del SageMaker HyperPod APIs - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de los AWS CLI comandos del SageMaker HyperPod APIs

Cree su primer SageMaker HyperPod clúster con los AWS CLI comandos for HyperPod.

Crea tu primer SageMaker HyperPod clúster con Slurm

El siguiente tutorial muestra cómo crear un nuevo SageMaker HyperPod clúster y configurarlo con Slurm mediante los comandos para.AWS CLI SageMaker HyperPod Tras el tutorial, crearás un HyperPod clúster con tres nodos de Slurm,, ymy-controller-group. my-login-group worker-group-1

  1. En primer lugar, prepare y cargue los scripts del ciclo de vida en un bucket de Amazon S3. Durante la creación del clúster, los HyperPod ejecuta en cada grupo de instancias. Cargue los scripts del ciclo de vida en Amazon S3 mediante el siguiente comando.

    aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
    nota

    La ruta del bucket de S3 debe comenzar con un prefijosagemaker-, ya que IAMrol para SageMaker HyperPod with AmazonSageMakerClusterInstanceRolePolicy solo permite el acceso a los buckets de Amazon S3 que comiencen con el prefijo específico.

    Si va a empezar desde cero, utilice ejemplos de scripts de ciclo de vida que se proporcionan en el repositorio Awsome Distributed Training. GitHub Los siguientes subpasos muestran cómo descargar, qué modificar y cómo cargar los scripts de ciclo de vida de muestra en un bucket de Amazon S3.

    1. Descargue una copia de los ejemplos de scripts del ciclo de vida en un directorio de su ordenador local.

      git clone https://github.com/aws-samples/awsome-distributed-training/
    2. Vaya al directorio 1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config, donde encontrará un conjunto de scripts de ciclo de vida.

      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config

      Para obtener más información sobre los ejemplos de scripts de ciclo de vida, consultePersonalice SageMaker HyperPod los clústeres mediante scripts de ciclo de vida.

    3. Escriba un archivo de configuración de Slurm y guárdelo como. provisioning_params.json En el archivo, especifique los parámetros de configuración básicos de Slurm para asignar correctamente los nodos de Slurm a los grupos de instancias del clúster. SageMaker HyperPod En este tutorial, configura tres nodos de Slurm denominados y my-controller-groupmy-login-group, como se muestra en el siguiente worker-group-1 ejemplo de configuración. provisioning_params.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. Cargue los scripts en. s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src Puede hacerlo mediante la consola Amazon S3 o ejecutando el siguiente comando de AWS CLI Amazon S3.

      aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
  2. Prepare un archivo de CreateClustersolicitud en este JSON formato y guárdelo comocreate_cluster.json. La siguiente plantilla de solicitud se alinea con la configuración de nodos de Slurm definida provisioning_params.json en el paso 1.c. Para ExecutionRole ello, proporcione el ARN IAM rol que creó junto con el administrado. AmazonSageMakerClusterInstanceRolePolicy Requisitos previos para utilizar 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. Ejecute el siguiente comando para crear el clúster.

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

    Esto debería devolver el ARN del clúster creado.

    Si recibes un error debido a los límites de recursos, asegúrate de cambiar el tipo de instancia por uno con cuotas suficientes en tu cuenta o solicita cuotas adicionales siguiendo este enlaceSageMaker HyperPod cuotas.

  4. Ejecuta describe-cluster para comprobar el estado del clúster.

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

    Cuando el estado del clúster cambie aInService, continúe con el siguiente paso.

  5. Ejecute list-cluster-nodes para comprobar los detalles de los nodos del clúster.

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

    Esto devuelve una respuesta y InstanceId es lo que los usuarios del clúster necesitan para iniciar sesión (aws ssm) en ellos. Para obtener más información sobre cómo iniciar sesión en los nodos del clúster y ejecutar cargas de trabajo de aprendizaje automático, consultePuestos de trabajo en SageMaker HyperPod clústeres.

Elimine el clúster y limpie los recursos

Una vez que haya probado correctamente la creación de un SageMaker HyperPod clúster, seguirá ejecutándose en ese InService estado hasta que lo elimine. Le recomendamos que elimine todos los clústeres creados con la SageMaker capacidad bajo demanda cuando no esté en uso para evitar incurrir en cargos de servicio continuos en función de los precios bajo demanda. En este tutorial, has creado un clúster que consta de dos grupos de instancias. Uno de ellos usa una instancia C5, así que asegúrate de eliminar el clúster ejecutando el siguiente comando.

aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster

Para limpiar los scripts del ciclo de vida del bucket de Amazon S3 utilizado en este tutorial, vaya al bucket de Amazon S3 que utilizó durante la creación del clúster y elimine los archivos por completo.

Si ha probado la ejecución de algún modelo de carga de trabajo de entrenamiento en el clúster, compruebe también si ha cargado algún dato o si su trabajo ha guardado algún artefacto en distintos buckets de Amazon S3 o servicios de sistema de archivos, como Amazon FSx for Lustre y Amazon Elastic File System. Para evitar incurrir en cargos, elimine todos los artefactos y datos del almacenamiento o del sistema de archivos.