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.
Crear un SageMaker HyperPod clúster
Aprenda a crear SageMaker HyperPod clústeres orquestados por Amazon EKS mediante. AWS CLI
-
Antes de crear un SageMaker HyperPod clúster:
-
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 creas unCrear un clúster de HyperPod EKS con un grupo de instancias restringido (RIG), necesitarás un diagrama de Helm independiente.
-
-
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, descarga el script
on_create.sh
de muestra del GitHub repositorio AWS ome Distributed Training y cárgalo 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 etapa de aprovisionamiento del HyperPod clúster. importante
Si crea un Función de IAM para SageMaker HyperPod que se asocia únicamente a las
AmazonSageMakerClusterInstanceRolePolicy
administradas, el clúster tendrá acceso a los buckets de Amazon S3 con el prefijo específicosagemaker-
.Si creas un grupo de instancias restringido, no necesitas descargar ni ejecutar el script de ciclo de vida. En su lugar, debes ejecutar
install_rig_dependencies.sh
.Los requisitos previos para ejecutar el
install_rig_dependencies.sh
script incluyen:-
AWS Tanto Node (CNI) como CoreDNS deben estar habilitados. Se trata de complementos de EKS estándar que no son gestionados por el SageMaker HyperPod Helm estándar, pero que se pueden activar fácilmente en la consola de EKS en la sección Complementos.
-
Se debe instalar el gráfico de SageMaker HyperPod Helm estándar antes de ejecutar este script.
El
install_rig_dependencies.sh
script realiza las siguientes acciones.-
aws-node
(CNI): Se ha creado un nuevorig-aws-node
Daemonset; se haaws-node
parcheado el existente para evitar los nodos RIG. -
coredns
: Convertido a Daemonset para admitir el uso de varios RIG y RIGs evitar la sobrecarga. -
Formación de operadores: se actualizó con las tolerancias de contaminación de RIG Worker y con NodeAffinity para favorecer las instancias ajenas a RIG.
-
Elastic Fabric Adapter (EFA): actualizado para tolerar la contaminación de los trabajadores de RIG y utilizar las imágenes de contenedores correctas para cada región.
-
-
Prepare un archivo CreateClusterde solicitud de API en formato JSON. En
ExecutionRole
, proporcione el ARN del rol de IAM que ha creado con laAmazonSageMakerClusterInstanceRolePolicy
administrada de la sección Función de IAM para SageMaker HyperPod.nota
Asegúrese de que el SageMaker HyperPod clúster esté implementado en la misma Nube Privada Virtual (VPC) que el clúster de Amazon EKS. Las subredes y los grupos de seguridad especificados en la configuración del SageMaker HyperPod clúster deben permitir la conectividad de red y la comunicación con el punto final del servidor 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 SageMaker HyperPod clúster 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ñadaInstanceStress
yInstanceConnectivity
para habilitar Comprobaciones de estado exhaustivas. -
Para
NodeRecovery
, especifique si deseaAutomatic
habilitar la recuperación automática de nodos. SageMaker HyperPod reemplaza o reinicia las instancias (nodos) cuando el agente de supervisión del estado detecta problemas. -
Para el
Tags
parámetro, puede agregar etiquetas personalizadas para administrar el SageMaker HyperPod clúster como un AWS recurso. 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
create-cluster
comando con el--cli-input-json
parámetro, debe incluir elfile://
prefijo antes de la ruta completa al archivo JSON. Este prefijo es necesario para garantizar que AWS CLI reconozca la entrada como una ruta de archivo. Si se omite elfile://
prefijo, se produce un error en el parámetro de análisis.aws sagemaker create-cluster \ --cli-input-json
file://complete/path/to/create_cluster.json
Esto debería devolver el ARN del nuevo clúster.
importante
Puedes usar la operación update-cluster para eliminar un grupo de instancias restringido (RIG). Cuando un RIG se reduce a 0, el sistema de archivos FSx de Lustre no se eliminará. Para eliminar por completo el FSx sistema de archivos de Lustre, debe eliminar el RIG por completo.
Al eliminar un RIG, no se eliminará 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 for 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 sincronización completa de todos los artefactos del sistema de archivos de Lustre con el bucket de Amazon S3 administrado FSx por el servicio.