Reducción vertical de un clúster de SageMaker HyperPod - Amazon SageMaker AI

Reducción vertical de un clúster de SageMaker HyperPod

Puede reducir verticalmente el número de instancias que se ejecutan en su clúster de Amazon SageMaker HyperPod. Puede reducir verticalmente un clúster por varios motivos, como rebajar el uso de los recursos o para optimizar los costos.

En la página siguiente se describen dos enfoques principales para reducir verticalmente:

  • Reducir verticalmente en el grupo de instancias: este enfoque usa la API UpdateCluster, con la que puede:

    • Reducir verticalmente el número de instancias para grupos de instancias específicos de forma independiente. SageMaker AI gestiona la terminación de los nodos de forma que alcance los nuevos recuentos de instancias de destino que haya establecido para cada grupo. Consulte Reducción vertical de un grupo de instancias.

    • Elimine los grupos de instancias de su clúster por completo. Consulte Eliminación de grupos de instancias.

  • Reducir verticalmente en la instancia: este enfoque utiliza la API BatchDeleteClusterNodes, con la que puede especificar los nodos individuales que quiere terminar. Consulte Reducción vertical en la instancia.

nota

Al reducir verticalmente en la instancia con BatchDeleteCusterNodes, solo puede terminar un máximo de 99 instancias a la vez. UpdateCluster admite la terminación de cualquier número de instancias.

Consideraciones importantes

  • Al reducir verticalmente un clúster, debe asegurarse de que los recursos restantes sean suficientes para gestionar su carga de trabajo y de que cualquier migración o reequilibrio de datos necesarios se gestione adecuadamente para evitar interrupciones.

  • Asegúrese de hacer una copia de seguridad de sus datos en Amazon S3 o en un sistema de archivos de FSx para Lustre antes de llamar a la API en un grupo de nodos de trabajo. Esto puede ayudar a evitar cualquier posible pérdida de datos del volumen raíz de la instancia. Para obtener más información sobre las copias de seguridad, consulte Utilice el script de copia de seguridad que le proporciona SageMaker HyperPod.

  • Para invocar esta API en un clúster existente, primero debe aplicar un parche al clúster ejecutando la API UpdateClusterSoftware. Para obtener más información sobre la aplicación de parches a clústeres, consulte Actualización del software de la plataforma de un clúster de SageMaker HyperPod.

  • La medición y la facturación de las instancias bajo demanda se detendrán automáticamente tras la reducción vertical. Para dejar de contabilizar las instancias reservadas reducidas verticalmente, contacte con su equipo de la cuenta de AWS para solicitar asistencia.

  • Puede utilizar la capacidad liberada de las instancias reservadas reducidas verticalmente para escalar verticalmente otro clúster de SageMaker HyperPod.

Reducción vertical en el grupo de instancias

La operación UpdateCluster le permite realizar cambios en la configuración del clúster de SageMaker HyperPod, como reducir verticalmente el número de instancias de un grupo de instancias o eliminar grupos de instancias completos. Esto puede resultar útil si quiere adaptar los recursos asignados a su clúster en función de los cambios en su carga de trabajo, optimizar los costos o cambiar el tipo de instancia de un grupo de instancias.

Reducción vertical de un grupo de instancias

Use este enfoque cuando tenga un grupo de instancias inactivo y sea seguro terminar cualquiera de las instancias para llevar a cabo la reducción vertical. Si envía una solicitud UpdateCluster para reducir verticalmente, HyperPod selecciona las instancias que se van a terminar de forma aleatoria y las reduce verticalmente hasta alcanzar la cantidad de nodos especificada para el grupo de instancias.

nota

Al reducir el número de instancias de un grupo de instancias a 0, se terminan todas las instancias de ese grupo. Sin embargo, el propio grupo de instancias seguirá existiendo como parte del clúster de SageMaker HyperPod. Puede volver a escalar el grupo de instancias más adelante con la misma configuración de grupo de instancias.

También puede optar por eliminar un grupo de instancias de forma permanente. Para obtener más información, consulte Eliminación de grupos de instancias.

Cómo reducir verticalmente con UpdateCluster
  1. Siga los pasos que se indican en Actualización de la configuración del clúster de SageMaker HyperPod. Cuando llegue al paso 1.d, en el que rellena el campo InstanceCount, introduzca un número que sea inferior al número actual de instancias para reducir el clúster verticalmente.

  2. Ejecute el comando update-cluster AWS CLI para enviar su solicitud.

A continuación se muestra un ejemplo de un objeto JSON UpdateCluster: Piense en una situación en la que su grupo de instancias tiene 2 instancias en ejecución. Si establece el campo InstanceCount en 1, tal como se muestra en el ejemplo, HyperPod selecciona aleatoriamente una de las instancias y la termina.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training-instances", "InstanceType": "instance-type", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] } ], "NodeRecovery": "Automatic" }

Eliminación de grupos de instancias

Puede utilizar la operación UpdateCluster para eliminar grupos de instancias enteros del clúster de SageMaker HyperPod cuando ya no los necesite. Esto va más allá de una simple reducción vertical, pues le permite eliminar por completo grupos de instancias específicos de la configuración del clúster.

nota

Al eliminar un grupo de instancias:

  • Se terminan todas las instancias del grupo objetivo.

  • Se elimina toda la configuración del grupo del clúster.

  • Se detienen todas las cargas de trabajo que se ejecuten en ese grupo de instancias.

Cómo eliminar grupos de instancias con UpdateCluster
  1. Al seguir los pasos descritos en Actualización de la configuración del clúster de SageMaker HyperPod:

    1. Configure el parámetro InstanceGroupsToDelete opcional en su JSON UpdateCluster y pase la lista de nombres de grupos de instancias separados por comas que desea eliminar.

    2. Cuando especifique la lista InstanceGroups, asegúrese de que las especificaciones de los grupos de instancias que va a eliminar ya no se incluyan en la lista InstanceGroups.

  2. Ejecute el comando update-cluster AWS CLI para enviar su solicitud.

importante
  • El clúster de SageMaker HyperPod debe incluir siempre al menos un grupo de instancias.

  • Asegúrese de hacer una copia de seguridad de todos los datos importantes antes de eliminarlos.

  • El proceso de eliminación no se puede deshacer.

A continuación se muestra un ejemplo de un objeto JSON UpdateCluster: Piense en una situación en la que un clúster tiene 3 grupos de instancias: un grupo training, uno prototype-training y uno inference-serving. Desea eliminar el grupo prototype-training.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training", "InstanceType": "instance-type", "InstanceCount": , "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] }, { "InstanceGroupName": "inference-serving", "InstanceType": "instance-type", "InstanceCount": 2, [...] }, ], "InstanceGroupsToDelete": [ "prototype-training" ], "NodeRecovery": "Automatic" }

Reducción vertical en la instancia

La operación BatchDeleteClusterNodes le permite reducir verticalmente un clúster de SageMaker HyperPod especificando los nodos individuales que desea terminar. BatchDeleteClusterNodes proporciona un control más detallado para la eliminación de nodos específicos y la optimización del clúster. Por ejemplo, puede utilizar BatchDeleteClusterNodes para eliminar los nodos de destino con fines de mantenimiento, para actualizaciones continuas o para reequilibrar los recursos geográficamente.

Solicitud y respuesta de la API

Al enviar una solicitud BatchDeleteClusterNodes, SageMaker HyperPod elimina los nodos según los ID de instancia. La API acepta una solicitud con el nombre del clúster y una lista de ID de los nodos que se van a eliminar.

La respuesta incluye dos secciones:

  • Failed: una lista de tipos de error BatchDeleteClusterNodesError : uno por ID de instancia.

  • Successful: la lista de ID de instancia ha finalizado correctamente.

Validación y gestión de errores

La API realiza varias validaciones, como:

  • Verificar el formato de ID del nodo (prefijo i- y estructura de ID de instancia de Amazon EC2).

  • Comprobar la longitud de la lista de nodos, con un límite de 99 o menos ID de nodos en una sola solicitud BatchDeleteClusterNodes.

  • Asegúrese de que haya un clúster de SageMaker HyperPod válido con el nombre del clúster de entrada y de que no se esté realizando ninguna operación en el clúster (actualización, actualización del sistema, aplicación de parches o eliminación).

  • Gestionar los casos en los que no se encuentran instancias, que tienen un estado no válido o que están en uso.

Códigos de respuesta de la API

  • La API devuelve un código de estado 200 para las solicitudes correctas (por ejemplo, todos los nodos de entrada se han validado correctamente) o parcialmente correctas (por ejemplo, si algunos nodos de entrada no se han validado).

  • Si todas estas validaciones fallan (por ejemplo, si no se validad ningún nodo de entrada), la API devolverá una respuesta a una solicitud 400 errónea con los mensajes y códigos de error correspondientes.

Ejemplo

El siguiente es un ejemplo de reducción vertical de un clúster en la instancia usando la AWS CLI:

aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'