Uso de AWS CLI - 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 AWS CLI

En los temas siguientes se proporciona orientación sobre cómo escribir archivos de SageMaker HyperPod API solicitud en JSON formato y ejecutarlos mediante AWS CLI comandos.

Crea un nuevo clúster

  1. Prepare los scripts de configuración del ciclo de vida y cárguelos en un bucket de S3, comos3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/. En el siguiente paso 2, se supone que hay un script de punto de entrada denominado on_create.sh en el bucket de S3 especificado.

    importante

    Asegúrese de configurar la ruta S3 para empezars3://sagemaker-. IAMrol para SageMaker HyperPodTiene el administrador AmazonSageMakerClusterInstanceRolePolicyadjunto, que permite el acceso a los depósitos de S3 con el prefijo sagemaker- específico.

  2. Prepare un archivo de CreateClusterAPIsolicitud en JSON formato. Debes configurar los grupos de instancias para que coincidan con el clúster de Slurm que diseñaste en el provisioning_params.json archivo que se usará durante la creación del clúster como parte de la ejecución de un conjunto de scripts de ciclo de vida. Para obtener más información, consulte SageMaker HyperPod prácticas recomendadas de configuración del ciclo de vida. La siguiente plantilla tiene dos grupos de instancias para cumplir con los requisitos mínimos de un clúster de Slurm: un nodo controlador (principal) y un nodo informático (trabajador). Para ExecutionRole ello, proporciona el ARN IAM rol que creaste junto con el gestionado AmazonSageMakerClusterInstanceRolePolicy de la sección. IAMrol para SageMaker HyperPod

    // create_cluster.json { "ClusterName": "your-hyperpod-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller-group", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // 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": "worker-group-1", "InstanceType": "ml.p4d.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster" } ], // Optional "Tags": [ { "Key": "string", "Value": "string" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }

    En función de cómo diseñes la estructura de clústeres a través de tus scripts de ciclo de vida, puedes configurar hasta 20 grupos de instancias con el InstanceGroups parámetro.

    Para el parámetro de Tags solicitud, puedes añadir etiquetas personalizadas para administrar el SageMaker HyperPod clúster como AWS recurso. Puede añadir etiquetas a su clúster de la misma manera que las añade a otros AWS servicios que admiten el etiquetado. Para obtener más información sobre el etiquetado AWS recursos en general, consulte Etiquetado AWS Guía del usuario de recursos.

    Para el parámetro de VpcConfig solicitud, especifique la información del parámetro que VPC desee utilizar. Para obtener más información, consulte Configuración SageMaker HyperPod con Amazon VPC.

  3. Ejecute el comando create-cluster de la siguiente manera.

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

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

Describir un clúster

Ejecute describe-cluster para comprobar el estado del clúster. Puede especificar el nombre o el ARN del clúster.

aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster

Cuando el estado del clúster cambie aInService, continúe con el siguiente paso. De este modoAPI, también puede recuperar los mensajes de error relacionados con la ejecución de otras HyperPod API operaciones.

Enumere los detalles de los nodos del clúster

Ejecute list-cluster-nodespara comprobar la información clave de los nodos del clúster.

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

Esto devuelve una respuesta y InstanceId es lo que necesita usar para iniciar sesión (usaraws ssm) en ellos.

Describa los detalles de un nodo de clúster

Ejecute describe-cluster-nodepara recuperar los detalles de un nodo de clúster. Puede obtener el ID del nodo del clúster a partir de la list-cluster-nodes salida. Puede especificar el nombre o el ARN del clúster.

aws sagemaker describe-cluster-node \ --cluster-name your-hyperpod-cluster \ --node-id i-111222333444555aa

Enumerar clústeres

Ejecuta list-clusters para ver todos los clústeres de tu cuenta.

aws sagemaker list-clusters

También puedes añadir indicadores adicionales para filtrar la lista de clústeres hacia abajo. Para obtener más información sobre lo que ejecuta este comando en un nivel bajo y otros indicadores para filtrar, consulta la ListClustersAPIreferencia.

Actualice la configuración del clúster

Ejecute update-cluster para actualizar la configuración de un clúster.

  1. Cree un archivo de UpdateCluster solicitud en JSON formato. Asegúrate de especificar el nombre del clúster y el nombre del grupo de instancias correctos para actualizarlos. Puedes cambiar el tipo de instancia, el número de instancias, el script de punto de entrada de la configuración del ciclo de vida y la ruta al script.

    1. Para ClusterName ello, especifique el nombre del clúster que desea actualizar.

    2. En InstanceGroupName

      1. Para actualizar un grupo de instancias existente, especifica el nombre del grupo de instancias que deseas actualizar.

      2. Para agregar un nuevo grupo de instancias, especifica un nombre nuevo que no exista en tu clúster.

    3. En InstanceType

      1. Para actualizar un grupo de instancias existente, debes hacer coincidir el tipo de instancia que especificaste inicialmente con el grupo.

      2. Para añadir un nuevo grupo de instancias, especifica el tipo de instancia con el que quieras configurar el grupo.

    4. En InstanceCount

      1. Para actualizar un grupo de instancias existente, especifica un número entero mayor que el número actual de instancias. Actualmente, solo puedes aumentar el número de instancias.

      2. Para añadir un nuevo grupo de instancias, especifica un número entero mayor o igual a 1.

    5. PuesLifeCycleConfig, puedes cambiar ambos SourceS3Uri OnCreat valores según desees actualizar el grupo de instancias.

    6. En ExecutionRole

      1. Para actualizar un grupo de instancias existente, sigue usando el mismo IAM rol que asignaste durante la creación del clúster.

      2. Para añadir un nuevo grupo de instancias, especifica IAM el rol que quieras adjuntar.

    7. En TreadsPerCore

      1. Para actualizar un grupo de instancias existente, sigue usando el mismo valor que especificaste durante la creación del clúster.

      2. Para añadir un nuevo grupo de instancias, puedes elegir cualquier valor de las opciones permitidas por tipo de instancia. Para obtener más información, busca el tipo de instancia y consulta la columna Hilos válidos por núcleo en la tabla de referencia en CPUnúcleos y subprocesos por CPU núcleo por tipo de instancia en la Guía del EC2 usuario de Amazon.

    El siguiente fragmento de código es una plantilla de archivo de JSON solicitud que puedes usar. Para obtener más información sobre la sintaxis de la solicitud y sus parámetrosAPI, consulta la UpdateClusterAPIreferencia.

    // update_cluster.json { // Required "ClusterName": "name-of-cluster-to-update", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // 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, } } ] }, // add more blocks of instance groups as needed { ... } ] }
  2. Ejecute el siguiente update-cluster comando para enviar la solicitud.

    aws sagemaker update-cluster \ --cli-input-json file://complete/path/to/update_cluster.json

Actualice el software de la SageMaker HyperPod plataforma de un clúster

Ejecute update-cluster-softwarepara actualizar los clústeres existentes con el software y los parches de seguridad proporcionados por el SageMaker HyperPod servicio. Para --cluster-name ello, especifique el nombre o el ARN del clúster que se va a actualizar.

importante

Tenga en cuenta que debe hacer una copia de seguridad de su trabajo antes de ejecutarloAPI. El proceso de aplicación de parches reemplaza el volumen raíz por el actualizadoAMI, lo que significa que se perderán los datos anteriores almacenados en el volumen raíz de la instancia. Asegúrese de hacer una copia de seguridad de los datos del volumen raíz de la instancia en Amazon S3 o Amazon FSx for Lustre. Para obtener más información, consulte Utilice el script de respaldo proporcionado por SageMaker HyperPod.

aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster

Este comando llama a. UpdateClusterSoftwareAPI Tras la API llamada, SageMaker HyperPod actualiza las instancias del clúster para que usen las más recientes SageMaker HyperPod DLAMI y ejecuta los scripts de su ciclo de vida en el bucket de S3 que especificó durante la creación o actualización del clúster. El equipo SageMaker HyperPod de servicio lanza nuevas SageMaker HyperPod DLAMI aplicaciones de forma periódica para mejorar la seguridad y la experiencia de los usuarios. Le recomendamos que se mantenga siempre actualizado a la última versión SageMaker HyperPod DLAMI. Para futuras SageMaker HyperPod DLAMI actualizaciones de los parches de seguridad, consulte conNotas de SageMaker HyperPod lanzamiento de Amazon.

sugerencia

Si el parche de seguridad no funciona, puede recuperar los mensajes de error ejecutándolo tal y DescribeClusterAPIcomo se indica en Describir un clúster las instrucciones.

nota

Solo puede ejecutarlo API mediante programación. La funcionalidad de aplicación de parches no está implementada en la interfaz de usuario de la SageMaker HyperPod consola.

Utilice el script de respaldo proporcionado por SageMaker HyperPod

SageMaker HyperPod proporciona un script para realizar copias de seguridad de sus datos y restaurarlos 1.architectures/5.sagemaker-hyperpod/patching-backup.shen el GitHub repositorio de Awsome Distributed Training. El script proporciona las dos funciones siguientes.

Para hacer una copia de seguridad de los datos en un bucket de S3 antes de aplicar los parches

sudo bash patching-backup.sh --create <s3-buckup-bucket-path>

Tras ejecutar el comando, el script comprueba squeue si hay trabajos en cola, detiene Slurm si no hay ningún trabajo en la cola, hace copias de seguridad y copia los elementos locales en el disco como se mariadb define en la sección. LOCAL_ITEMS Puede añadir más archivos y directorios a. LOCAL_ITEMS

# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )

Además, puede añadir código personalizado al script proporcionado para hacer copias de seguridad de cualquier aplicación según su caso de uso.

Para restaurar los datos de un bucket de S3 después de aplicar un parche

sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>

Eliminar un clúster

Ejecute delete-cluster para eliminar un clúster. Puede especificar el nombre o el ARN del clúster.

aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster