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

Los siguientes temas proporcionan orientación sobre cómo escribir archivos de solicitudes de SageMaker HyperPod API en formato JSON y ejecutarlos mediante los AWS CLI comandos.

Crea un clúster nuevo

  1. Prepare los scripts de configuración del ciclo de vida y cárguelos en un bucket de S3, comos3://sagemaker-<your-s3-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-. Función de IAM 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 CreateClusterde solicitud de API en formato JSON. Debes configurar los grupos de instancias para que coincidan con el clúster de Slurm que diseñes 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). ParaExecutionRole, proporciona el ARN del rol de IAM que creaste con el gestionado AmazonSageMakerClusterInstanceRolePolicy de la sección. Función de IAM para SageMaker HyperPod

    // create_cluster.json { "ClusterName": "your-hyperpod-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller-group", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<your-s3-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-<your-s3-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 agregar etiquetas personalizadas para administrar el SageMaker HyperPod clúster como un AWS recurso. Puede agregar etiquetas a su clúster de la misma manera que las agrega en otros AWS servicios que admiten el etiquetado. Para obtener más información sobre el etiquetado de AWS los recursos en general, consulte la Guía del usuario de AWS los recursos de etiquetado.

    Para el parámetro de VpcConfig solicitud, especifique la información de la VPC que desee utilizar. Para obtener más información, consulte (Opcional) Configúrelo SageMaker HyperPod con su Amazon VPC.

  3. Ejecute el siguiente comando para enviar la solicitud de CreateCluster API.

    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. Con esta API, también puedes recuperar los mensajes de error relacionados con la ejecución de otras operaciones de la HyperPod API.

Enumere los detalles de los nodos del clúster

Ejecute list-cluster-nodes para 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-node para 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

Ejecute list-clusters para enumerar todos los clústeres de su 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 de filtrado, consulta la referencia de la ListClustersAPI.

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 formato JSON. 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 la misma función de IAM que asignaste durante la creación del clúster.

      2. Para añadir un nuevo grupo de instancias, especifica el rol de IAM 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, busque el tipo de instancia y consulte la columna Hilos válidos por núcleo de la tabla de referencia en Núcleos de CPU y subprocesos por núcleo de CPU por tipo de instancia en la Guía del usuario de Amazon EC2.

    El siguiente fragmento de código es una plantilla de archivo de solicitud JSON que puede utilizar. Para obtener más información sobre la sintaxis y los parámetros de la solicitud de esta API, consulta la referencia de la UpdateClusterAPI.

    // 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-<your-s3-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. Ejecuta 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-software para actualizar los clústeres existentes con el software y los parches de seguridad proporcionados por el SageMaker HyperPod servicio. Para--cluster-name, 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 ejecutar esta API. El proceso de aplicación de parches reemplaza el volumen raíz por la AMI actualizada, 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 la API de UpdateClustersoftware. Tras la llamada a la API, 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 depósito 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 SageMaker HyperPod DLAMI. Para futuras actualizaciones de SageMaker HyperPod DLAMI para parches de seguridad, consulte con. Notas de SageMaker HyperPod lanzamiento de Amazon

sugerencia

Si el parche de seguridad no funciona, puede recuperar los mensajes de error ejecutando la DescribeClusterAPI tal y como se indica en las instrucciones. Describir un clúster

nota

Solo puede ejecutar esta 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