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.
Mediante los comandos del AWS CLI SageMaker HyperPod APIs
Cree su primer SageMaker HyperPod clúster con los AWS CLI comandos for HyperPod.
Crea tu primer SageMaker HyperPod clúster con Slurm
El siguiente tutorial muestra cómo crear un nuevo SageMaker HyperPod clúster y configurarlo con Slurm mediante los comandos para.AWS CLI
SageMaker HyperPod Tras el tutorial, crearás un HyperPod clúster con tres nodos de Slurm,, ymy-controller-group
. my-login-group
worker-group-1
-
En primer lugar, prepare y cargue los scripts de ciclo de vida en un bucket de Amazon S3. Durante la creación del clúster, los HyperPod ejecuta en cada grupo de instancias. Cargue los scripts de ciclo de vida en Amazon S3 con el siguiente comando.
aws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
nota
La ruta del bucket de S3 debe comenzar con un prefijo
sagemaker-
, ya que el Función de IAM para SageMaker HyperPod conAmazonSageMakerClusterInstanceRolePolicy
solo permite el acceso a buckets de Amazon S3 que empiecen con el prefijo específico.Si empiezas desde cero, usa ejemplos de scripts de ciclo de vida que se proporcionan en el GitHub repositorio de Awsome Distributed Training
. En los siguientes subpasos, se muestra cómo descargar, qué modificar y cómo cargar los scripts de ciclo de vida de ejemplo en un bucket de Amazon S3. -
Descargue una copia de los ejemplos de scripts de ciclo de vida en un directorio de su equipo local.
git clone https://github.com/aws-samples/awsome-distributed-training/
-
Vaya al directorio
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
, donde encontrará un conjunto de scripts de ciclo de vida. cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
Para obtener más información sobre los scripts de ciclo de vida, consulte Personalice SageMaker HyperPod los clústeres mediante scripts de ciclo de vida.
-
Escriba un archivo de configuración de Slurm y guárdelo como
provisioning_params.json
. En el archivo, especifique los parámetros de configuración básicos de Slurm para asignar correctamente los nodos de Slurm a los grupos de instancias del clúster. SageMaker HyperPod En este tutorial, configure tres nodos de Slurm denominadosmy-controller-group
,my-login-group
yworker-group-1
, tal y como se muestra en el siguiente ejemplo de configuraciónprovisioning_params.json
.{ "version": "1.0.0", "workload_manager": "
slurm
", "controller_group": "my-controller-group
", "login_group": "my-login-group
", "worker_groups": [ { "instance_group_name": "worker-group-1
", "partition_name": "partition-1
" } ] } -
Cargue los scripts en
s3://sagemaker-
. Puede hacerlo a través de la consola de Amazon S3 o ejecutando el siguiente comando de Amazon S3 de la AWS CLI .<unique-s3-bucket-name>
/<lifecycle-script-directory>
/srcaws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
Prepara un archivo de CreateClustersolicitud en formato JSON y guárdalo como.
create_cluster.json
La siguiente plantilla de solicitud se alinea con la configuración del nodo de Slurm definida enprovisioning_params.json
en el paso 1.c. ParaExecutionRole
, proporcione el ARN del rol de IAM que creó con laAmazonSageMakerClusterInstanceRolePolicy
administrada en Requisitos previos para utilizar SageMaker HyperPod.{
// Required: Specify the name of the cluster.
"ClusterName": "my-hyperpod-cluster
",// Required: Configure instance groups to be launched in the cluster
"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node.
"InstanceGroupName": "my-controller-group
", "InstanceType": "ml.c5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
",// 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": "my-login-group
", "InstanceType": "ml.m5.4xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" }, { "InstanceGroupName": "worker-group-1
", "InstanceType": "ml.trn1.32xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" } ] } -
Ejecute el siguiente comando para crear el clúster.
aws sagemaker create-cluster --cli-input-json
file://complete/path/to/create_cluster.json
Esto debería devolver el ARN del clúster creado.
Si recibe un error debido a límites de recursos, asegúrese de cambiar el tipo de instancia por uno con cuotas suficientes en su cuenta o bien solicite cuotas adicionales accediendo a SageMaker HyperPod cuotas.
-
Ejecute
describe-cluster
para comprobar el estado del clúster.aws sagemaker describe-cluster --cluster-name
my-hyperpod-cluster
Cuando el estado del clúster cambie a
InService
, continúe con el siguiente paso. -
Ejecute
list-cluster-nodes
para consultar los detalles de los nodos del clúster.aws sagemaker list-cluster-nodes --cluster-name
my-hyperpod-cluster
Esto devuelve una respuesta y el
InstanceId
es lo que los usuarios del clúster necesitan para iniciar sesión (aws ssm
) en ellos. Para obtener más información sobre cómo iniciar sesión en los nodos del clúster y ejecutar cargas de trabajo de ML, consulte Puestos de trabajo en SageMaker HyperPod clústeres.
Eliminación del clúster y limpieza de recursos
Una vez que haya probado correctamente la creación de un SageMaker HyperPod clúster, seguirá ejecutándose en ese InService
estado hasta que lo elimine. Te recomendamos que elimines todos los clústeres creados con la capacidad de SageMaker IA bajo demanda cuando no estén en uso para evitar incurrir en cargos de servicio continuos en función de los precios bajo demanda. En este tutorial, ha creado un clúster que consta de dos grupos de instancias. Uno de ellos utiliza una instancia C5, así que asegúrese de eliminar el clúster ejecutando el siguiente comando.
aws sagemaker delete-cluster --cluster-name
my-hyperpod-cluster
Para limpiar los scripts de ciclo de vida del bucket de S3 utilizado para este tutorial, vaya al bucket de Amazon S3 que utilizó durante la creación del clúster y elimine todos los archivos.
Si ha probado la ejecución de algún modelo de carga de trabajo de entrenamiento en el clúster, compruebe también si ha cargado algún dato o si su trabajo ha guardado algún artefacto en distintos buckets de Amazon S3 o servicios de sistema de archivos, como Amazon FSx for Lustre y Amazon Elastic File System. Para evitar incurrir en gastos, elimine todos los artefactos y datos del almacenamiento o del sistema de archivos.