View a markdown version of this page

SageMaker HyperPod referencias - Amazon SageMaker AI

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.

SageMaker HyperPod referencias

Encuentre más información y referencias sobre su uso SageMaker HyperPod en los siguientes temas.

SageMaker HyperPod precios

En los temas siguientes se proporciona información sobre SageMaker HyperPod los precios. Para obtener más información sobre el precio por hora del uso de SageMaker HyperPod instancias, consulta también SageMaker los precios de Amazon.

Solicitudes de capacidad

Puede asignar capacidad de cómputo reservada o bajo demanda con SageMaker IA para su uso en ellas SageMaker HyperPod. On-demand La creación de clústeres asigna la capacidad disponible del conjunto de capacidades de SageMaker IA bajo demanda. Como alternativa, puede solicitar una capacidad reservada para garantizar el acceso enviando un ticket para aumentar la cuota. La SageMaker IA prioriza las solicitudes de capacidad entrantes y usted recibe un tiempo estimado para la asignación de la capacidad.

Facturación del servicio

Cuando aprovisiona una capacidad de cómputo SageMaker HyperPod, se le factura por la duración de la asignación de capacidad. SageMaker HyperPod la facturación aparece en tus facturas de aniversario con una partida que indica el tipo de asignación de capacidad (bajo demanda, reservada), el tipo de instancia y el tiempo dedicado a usarla.

Para enviar una solicitud de aumento de cuota, consulte SageMaker HyperPod cuotas.

SageMaker HyperPod APIs

La siguiente lista incluye un conjunto completo de SageMaker HyperPod API para enviar solicitudes de acción en formato JSON a SageMaker AI a través de AWS CLI o AWS SDK para Python (Boto3).

SageMaker HyperPod Configuración de Slurm

HyperPod admite dos enfoques para configurar Slurm en su clúster. Elija el enfoque que mejor se adapte a sus necesidades.

Enfoque Descripción Recomendado para
API-driven configuración Defina la configuración de Slurm directamente en las solicitudes CreateCluster y API UpdateCluster Nuevos clústeres; administración simplificada
Configuración antigua Utilice un provisioning_parameters.json archivo independiente almacenado en Amazon S3 Clústeres existentes; compatibilidad con versiones anteriores

API-driven Configuración de Slurm (recomendada)

Con API-driven la configuración, los tipos de nodos de Slurm, las asignaciones de particiones y los montajes de los sistemas de archivos se definen directamente en las solicitudes y en las de la API. CreateCluster UpdateCluster Este enfoque proporciona lo siguiente:

  • Fuente única de información: toda la configuración está en la solicitud de API

  • Sin administración de archivos S3: no es necesario crearlos ni mantenerlos provisioning_parameters.json

  • Built-in validación: la API valida la topología de Slurm antes de la creación del clúster

  • Detección de desviaciones: detecta cambios no autorizados en slurm.conf

  • Per-instance-group almacenamiento: configure diferentes sistemas de archivos FSx para diferentes grupos de instancias

  • Compatibilidad con FSx para OpenZFS: monte sistemas de archivos OpenZFS además de FSx for Lustre

SlurmConfig (por grupo de instancias)

SlurmConfigAñádelo a cada grupo de instancias para definir el tipo de nodo de Slurm y la asignación de particiones.

"SlurmConfig": { "NodeType": "Controller | Login | Compute", "PartitionNames": ["string"] }

Parámetros:

  • NodeType: obligatorio. El tipo de nodo Slurm para este grupo de instancias. Valores válidos:

    • Controller— Nodo controlador (principal) de Slurm. Ejecuta el daemonslurmctld. Exactamente un grupo de instancias debe tener este tipo de nodo.

    • Login— Nodo de inicio de sesión para el acceso de los usuarios. Opcional. Como máximo, un grupo de instancias puede tener este tipo de nodo.

    • Compute— Nodos de trabajo que ejecutan trabajos. Puede tener varios grupos de instancias con este tipo de nodo.

    importante

    NodeTypees inmutable. Una vez establecido durante la creación del clúster, no se puede cambiar. Para usar un tipo de nodo diferente, crea un grupo de instancias nuevo.

  • PartitionNames: condicional. Un conjunto de nombres de particiones de Slurm. Necesario para los tipos de Compute nodos; no está permitido para Controller ningún tipo de Login nodo. Actualmente, admite un único nombre de partición por grupo de instancias.

    nota

    Todos los nodos se agregan automáticamente a la dev partición universal además de la partición especificada.

Ejemplo:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }

Orchestrator.Slurm (nivel de clúster)

Orchestrator.SlurmAñádalo a la configuración del clúster para especificar cómo se HyperPod administra el slurm.conf archivo.

"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }

Parámetros:

  • SlurmConfigStrategy— Obligatorio cuando Orchestrator.Slurm se proporciona. Controla cómo HyperPod gestiona el slurm.conf archivo en el nodo controlador. Valores válidos:

    • Managed(predeterminado): controla HyperPod completamente las asignaciones entre nodos y particiones en él. slurm.conf La detección de desviaciones está habilitada: si la configuración actual slurm.conf difiere de la esperada, se produce un UpdateCluster error. Utilice esta estrategia cuando desee HyperPod ser la única fuente de información fiable para la configuración de Slurm.

    • Overwrite— HyperPod fuerza la aplicación de la configuración de la API y sobrescribe cualquier cambio manual en ella. slurm.conf La detección de deriva está desactivada. Utilice esta estrategia para recuperarse de una desviación o restablecer el clúster a un estado conocido.

    • Merge— HyperPod conserva slurm.conf los cambios manuales y los fusiona con la configuración de la API. La detección de deriva está desactivada. Utilice esta estrategia si necesita realizar cambios manuales en la configuración de Slurm que deberían persistir a lo largo de las actualizaciones.

nota

Si Orchestrator.Slurm se omite en la solicitud, el comportamiento predeterminado es la estrategia. Managed

sugerencia

Puede cambiarlo SlurmConfigStrategy en cualquier momento utilizando UpdateCluster. No hay que ceñirse a una estrategia específica.

Ejemplo:

{ "ClusterName": "my-hyperpod-cluster", "InstanceGroups": [...], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } } }

SlurmConfigStrategy comparación

Strategy (Estrategia) Detección de deriva Cambios manuales Caso de uso
Managed Activado: bloquea las actualizaciones si se detecta una desviación Blocked HyperPod gestionado
Overwrite Deshabilitado Sobrescrito Recuperación de una desviación; restablecimiento al estado conocido
Merge Deshabilitado Preservado Usuarios avanzados con slurm.conf necesidades personalizadas

Configuración de FSx mediante InstanceStorageConfigs

Con API-driven la configuración, puede configurar los sistemas de archivos FSx por grupo de instancias mediante. InstanceStorageConfigs Esto permite que diferentes grupos de instancias monten diferentes sistemas de archivos.

Requisitos previos:

  • El clúster debe usar una VPC personalizada (viaVpcConfig). Los sistemas de archivos FSx residen en su VPC y la VPC administrada por la plataforma no puede acceder a ellos.

  • Debe haber al menos un grupo de instancias con. SlurmConfig NodeType: Controller

FsxLustreConfig

Configura el montaje del sistema de archivos FSx for Lustre para un grupo de instancias.

"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]

Parámetros:

  • DnsName: obligatorio. El nombre DNS del sistema de archivos FSx for Lustre. Ejemplo: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

  • MountPath: opcional. La ruta de montaje local de la instancia. Valor predeterminado: /fsx

  • MountName: obligatorio. El nombre de montaje del sistema de archivos FSx for Lustre. Puede encontrarlo en la consola de Amazon FSx o ejecutándolo. aws fsx describe-file-systems

FsxOpenZfsConfig

Configura FSx para el montaje del sistema de archivos OpenZFS para un grupo de instancias.

"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]

Parámetros:

  • DnsName: obligatorio. El nombre DNS del sistema de archivos FSx para OpenZFS. Ejemplo: fs-0xyz987654321.fsx.us-west-2.amazonaws.com

  • MountPath: opcional. La ruta de montaje local de la instancia. Valor predeterminado: /home

nota

Cada grupo de instancias puede tener como máximo uno FsxLustreConfig y unoFsxOpenZfsConfig.

Ejemplo con varios sistemas de archivos:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } }, { "FsxOpenZfsConfig": { "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com", "MountPath": "/shared" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 500 } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }
importante

Los cambios en la configuración de FSx solo se aplican durante el aprovisionamiento de nodos. Los nodos existentes conservan su configuración FSx original. Para aplicar la nueva configuración de FSx a todos los nodos, reduce el grupo de instancias a 0 y, a continuación, vuelve a escalarlo.

Ejemplo de API-driven configuración completo

El siguiente ejemplo muestra una CreateCluster solicitud completa mediante la configuración de API-driven Slurm:

{ "ClusterName": "ml-training-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Controller" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "login", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Login" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }, { "InstanceGroupName": "cpu-compute", "InstanceType": "ml.c5.18xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["cpu-preprocessing"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 } ], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } }, "VpcConfig": { "SecurityGroupIds": ["sg-0abc123def456789a"], "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"] }, "Tags": [ { "Key": "Project", "Value": "ML-Training" } ] }

Para obtener más información sobre el uso de la API-driven configuración, consulte. Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida

Configuración antigua: provisioning_parameters.json

nota

El provisioning_parameters.json enfoque es el método tradicional para configurar Slurm on. HyperPod Para los clústeres nuevos, recomendamos utilizar el enfoque de API-driven configuración descrito anteriormente. El enfoque tradicional sigue siendo totalmente compatible con versiones anteriores.

Con el enfoque tradicional, crea un archivo de configuración de Slurm denominado provisioning_parameters.json y lo carga en Amazon S3 como parte de sus scripts de ciclo de vida. HyperPod lee este archivo durante la creación del clúster para configurar los nodos de Slurm.

Formulario de configuración para provisioning_parameters.json

El siguiente código es el formulario de configuración de Slurm que debe preparar para configurar correctamente los nodos de Slurm en su clúster. HyperPod Debe completar este formulario y cargarlo como parte de un conjunto de scripts de ciclo de vida durante la creación del clúster. Para saber cómo se debe preparar este formulario durante los procesos de creación de HyperPod clústeres, consulte. Personalización de SageMaker HyperPod clústeres mediante scripts de ciclo de vida

// Save as provisioning_parameters.json. { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "string", "login_group": "string", "worker_groups": [ { "instance_group_name": "string", "partition_name": "string" } ], "fsx_dns_name": "string", "fsx_mountname": "string" }

Parámetros:

  • version: obligatorio. Esta es la versión del formulario de parámetros de HyperPod aprovisionamiento. Déjelo como 1.0.0.

  • workload_manager: obligatorio. Esto sirve para especificar qué administrador de carga de trabajo se debe configurar en el HyperPod clúster. Déjelo como slurm.

  • controller_group: obligatorio. Esto sirve para especificar el nombre del grupo de instancias del HyperPod clúster que desea asignar al nodo controlador (principal) de Slurm.

  • login_group: opcional. Esto sirve para especificar el nombre del grupo de instancias del HyperPod clúster que quieres asignar al nodo de inicio de sesión de Slurm.

  • worker_groups: obligatorio. Esto sirve para configurar los nodos de trabajo (cómputo) de Slurm en el clúster. HyperPod

    • instance_group_name: obligatorio. Esto sirve para especificar el nombre del grupo de HyperPod instancias que deseas asignar al nodo trabajador (de cómputo) de Slurm.

    • partition_name: obligatorio. Esto sirve para especificar el nombre de la partición para el nodo.

  • fsx_dns_name: opcional. Si desea configurar los nodos de Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifique el nombre DNS de FSx.

  • fsx_mountname: opcional. Si desea configurar los nodos de Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifique el nombre del montaje de FSx.

Comparación: con la configuración anterior API-driven

Característica API-driven (Recomendado) Legado (provisioning_parameters.json)
Ubicación de configuración CreateCluster Solicitud de API Archivo S3
FSx para Lustre Sí, por grupo de instancias Sí, Cluster-wide solo
FSx para OpenZFS Sí, por grupo de instancias No: no se admite
Built-in validación No
Detección de desviaciones Sí (estrategia gestionada) No
Administración de archivos S3 No obligatorio Obligatorio
Complejidad del ciclo de vida Simplificado Se requiere una configuración completa de SLURM

SageMaker HyperPod DLAMI

SageMaker HyperPod ejecuta un DLAMI basado en:

El SageMaker HyperPod DLAMI incluye paquetes adicionales para admitir herramientas de código abierto como Slurm, Kubernetes, dependencias y paquetes de software de clúster para admitir funciones de resiliencia, como la comprobación del estado del clúster SageMaker HyperPod y la reanudación automática. Para hacer un seguimiento de las actualizaciones de HyperPod software que el equipo de servicio distribuye a través de DLAMis, consulte. HyperPod Notas de SageMaker HyperPod lanzamiento de Amazon

SageMaker HyperPod Referencia de permisos de API

importante

Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte Proporcione permisos para etiquetar los recursos de SageMaker IA.

AWS políticas gestionadas para Amazon SageMaker AIque otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Cuando configure el control de acceso para permitir la ejecución de operaciones de SageMaker HyperPod API y redacte una política de permisos que pueda adjuntar a los usuarios de IAM para los administradores de la nube, utilice la siguiente tabla como referencia.

Operaciones de SageMaker la API de Amazon Permisos necesarios (acciones de la API) Recursos
CreateCluster sagemaker:CreateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DeleteCluster sagemaker:DeleteCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeCluster sagemaker:DescribeCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeClusterNode sagemaker:DescribeClusterNode arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusterNodes sagemaker:ListClusterNodes arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusters sagemaker:ListClusters arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateCluster sagemaker:UpdateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateClusterSoftware sagemaker:UpdateClusterSoftware arn:aws:sagemaker:region:account-id:cluster/cluster-id

Para obtener una lista completa de permisos y tipos de recursos para SageMaker las API, consulte Acciones, recursos y claves de condición de Amazon SageMaker AI en la Referencia de autorización de AWS servicios.

SageMaker HyperPod comandos en AWS CLI

Los siguientes son los AWS CLI comandos SageMaker HyperPod para ejecutar las operaciones principales de la HyperPod API.

SageMaker HyperPod Módulos de Python en AWS SDK para Python (Boto3)

Los siguientes son los métodos del AWS SDK para Python (Boto3) cliente para que la SageMaker IA ejecute las operaciones principales de la HyperPod API.