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.
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 deComputenodos; no está permitido paraControllerningún tipo deLoginnodo. Actualmente, admite un único nombre de partición por grupo de instancias.nota
Todos los nodos se agregan automáticamente a la
devpartició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 cuandoOrchestrator.Slurmse proporciona. Controla cómo HyperPod gestiona elslurm.confarchivo en el nodo controlador. Valores válidos:-
Managed(predeterminado): controla HyperPod completamente las asignaciones entre nodos y particiones en él.slurm.confLa detección de desviaciones está habilitada: si la configuración actualslurm.confdifiere 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.confLa 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 conservaslurm.conflos 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 (via
VpcConfig). 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.
SlurmConfigNodeType: 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 como1.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 comoslurm. -
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 | Sí | 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:
-
AWS AMI de GPU Deep Learning Base (Ubuntu 20.04)
para orquestación con Slurm. -
AMI basada en Amazon Linux 2 para la orquestación con Amazon EKS.
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: |
| DeleteCluster | sagemaker:DeleteCluster |
arn:aws:sagemaker: |
| DescribeCluster | sagemaker:DescribeCluster |
arn:aws:sagemaker: |
| DescribeClusterNode | sagemaker:DescribeClusterNode |
arn:aws:sagemaker: |
| ListClusterNodes | sagemaker:ListClusterNodes |
arn:aws:sagemaker: |
| ListClusters | sagemaker:ListClusters |
arn:aws:sagemaker: |
| UpdateCluster | sagemaker:UpdateCluster |
arn:aws:sagemaker: |
| UpdateClusterSoftware | sagemaker:UpdateClusterSoftware |
arn:aws:sagemaker: |
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.