Creación de un clúster de SageMaker HyperPod
Aprenda a crear los clústeres de SageMaker HyperPod orquestados por Amazon EKS con la AWS CLI.
-
Antes de crear un clúster de SageMaker HyperPod:
-
Asegúrese de disponer de un clúster de Amazon EKS existente y en funcionamiento. Para obtener instrucciones sobre cómo configurar un clúster de Amazon EKS, consulte Creación de un clúster de Amazon EKS en la Guía del usuario de Amazon EKS.
-
Instale el gráfico de Helm, tal y como se indica en Instalación de paquetes en el clúster de Amazon EKS mediante Helm. Si crea un Creación de un clúster de HyperPod EKS con un grupo de instancias restringido (RIG), necesitará un gráfico de Helm distinto.
-
-
Prepare un script de configuración del ciclo de vida y cárguelo en un bucket de Amazon S3, como, por ejemplo,
s3://.amzn-s3-demo-bucket/Lifecycle-scripts/base-config/Para empezar rápidamente, descargue el script de ejemplo
on_create.shen el repositorio de GitHub de AWSome Distributed Training y cárguelo en el bucket de S3. También puede incluir instrucciones de configuración adicionales, una serie de scripts de configuración o comandos para que se ejecuten durante la fase de aprovisionamiento del clúster de HyperPod. importante
Si crea un Rol de IAM para SageMaker HyperPod que se asocia únicamente a las
AmazonSageMakerClusterInstanceRolePolicyadministradas, el clúster tendrá acceso a los buckets de Amazon S3 con el prefijo específicosagemaker-.Si crea un grupo de instancias restringido, no tendrá que descargar ni ejecutar el script de ciclo de vida. En su lugar, deberá ejecutar
install_rig_dependencies.sh.Los requisitos previos para ejecutar el script
install_rig_dependencies.shson:-
Tanto AWS Node (CNI) como CoreDNS deben habilitarse. Se trata de complementos de EKS estándar que no se administran con el gráfico de Helm de SageMaker HyperPod estándar, pero que se pueden activar fácilmente en la sección Complementos de la consola de EKS.
-
Se debe instalar el gráfico de Helm de SageMaker HyperPod estándar para poder ejecutar este script.
El script
install_rig_dependencies.shrealiza las siguientes acciones.-
aws-node(CNI): se ha creado un nuevorig-aws-nodeDaemonset; se ha parcheado elaws-nodeexistente para evitar los nodos RIG. -
coredns: se ha convertido a Daemonset para RIG a para permitir el uso de varios RIG y evitar la sobrecarga. -
training-operators: se ha actualizado con las tolerancias de taint de trabajo de RIG y con nodeAffinity para favorecer las instancias que no son RIG.
-
Elastic Fabric Adapter (EFA): se ha actualizado para tolerar las propiedades taint de trabajo de RIG y utilizar las imágenes de contenedores correctas para cada región.
-
-
Prepare un archivo de solicitud de la API CreateCluster en formato JSON. En
ExecutionRole, proporcione el ARN del rol de IAM que ha creado con laAmazonSageMakerClusterInstanceRolePolicyadministrada de la sección Rol de IAM para SageMaker HyperPod.nota
Asegúrese de que el clúster de SageMaker HyperPod se haya implementado en la misma Amazon Virtual Private Cloud (VPC) que el clúster de Amazon EKS. Las subredes y los grupos de seguridad especificados en la configuración del clúster de SageMaker HyperPod deben permitir la conectividad de red y la comunicación con el punto de conexión del servidor de la API del clúster de Amazon EKS.
// create_cluster.json{ "ClusterName":"string", "InstanceGroups": [{ "InstanceGroupName":"string", "InstanceType":"string", "InstanceCount":number, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate":"on_create.sh"}, "ExecutionRole":"string", "ThreadsPerCore":number, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }], "RestrictedInstanceGroups": [ { "EnvironmentConfig": { "FSxLustreConfig": { "PerUnitStorageThroughput":number, "SizeInGiB":number} }, "ExecutionRole":"string", "InstanceCount":number, "InstanceGroupName":"string", "InstanceStorageConfigs": [ { ... } ], "InstanceType":"string", "OnStartDeepHealthChecks": ["string"], "OverrideVpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "ScheduledUpdateConfig": { "DeploymentConfig": { "AutoRollbackConfiguration": [ { "AlarmName":"string"} ], "RollingUpdatePolicy": { "MaximumBatchSize": { "Type":"string", "Value":number}, "RollbackMaximumBatchSize": { "Type":"string", "Value":number} }, "WaitIntervalInSeconds":number}, "ScheduleExpression":"string"}, "ThreadsPerCore":number, "TrainingPlanArn":"string"} ], "VpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "Tags": [{ "Key":"string", "Value":"string"}], "Orchestrator": { "Eks": { "ClusterArn":"string", } }, "NodeRecovery": "Automatic" }Tenga en cuenta lo siguiente al configurar la creación de un nuevo clúster de SageMaker HyperPod que se asocie a un clúster de EKS.
-
Puede configurar hasta 20 grupos de instancias con el parámetro
InstanceGroups. -
En
Orchestator.Eks.ClusterArn, especifique el ARN del clúster de EKS que desea usar como orquestador. -
En
OnStartDeepHealthChecks, añadaInstanceStressyInstanceConnectivitypara habilitar Comprobaciones de estado exhaustivas. -
En
NodeRecovery, especifiqueAutomaticpara habilitar la recuperación automática de nodos. SageMaker HyperPod reemplaza o reinicia las instancias (nodos) cuando el agente de supervisión del estado detecte problemas. -
En el parámetro
Tags, puede añadir etiquetas personalizadas para administrar el clúster de SageMaker HyperPod como un recurso de AWS. Puede añadir etiquetas al clúster del mismo modo que las añadiría a otros servicios de AWS que admitan el etiquetado. Para obtener más información sobre el etiquetado de recursos de AWS en general, consulte Tagging AWS Resources User Guide. -
En el parámetro
VpcConfig, especifique la información de la VPC utilizada en el clúster de EKS. Las subredes deben ser privadas.
-
-
Ejecute el comando create-cluster de la siguiente manera.
importante
Al ejecutar el comando
create-clustercon el parámetro--cli-input-json, debe incluir el prefijofile://delante de la ruta completa al archivo JSON. Este prefijo es necesario para garantizar que la AWS CLI reconozca la entrada como una ruta de archivo. Si se omite el prefijofile://, se genera un error de análisis de parámetros.aws sagemaker create-cluster \ --cli-input-jsonfile://complete/path/to/create_cluster.jsonEsto debería devolver el ARN del nuevo clúster.
importante
Puede usar la operación update-cluster para eliminar un grupo de instancias restringido (RIG). Cuando un RIG se reduce verticalmente a 0, el sistema de archivos de FSx para Lustre no se elimina. Para eliminar por completo el sistema de archivos de FSx para Lustre, debe eliminar el RIG por completo.
Al eliminar un RIG, no se elimina ningún artefacto almacenado en el bucket de Amazon S3 administrado por el servicio. Sin embargo, debe asegurarse de que todos los artefactos del sistema de archivos de FSx para Lustre estén completamente sincronizados con Amazon S3 antes de eliminarlos. Recomendamos esperar al menos 30 minutos después de finalizar el trabajo para garantizar la total sincronización de todos los artefactos del sistema de archivos de FSx para Lustre con el bucket de Amazon S3 administrado por el servicio.