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 informática reservada o bajo demanda con SageMaker IA para su uso en ellas SageMaker HyperPod. La creación de clústeres bajo demanda asigna la capacidad disponible del conjunto de capacidades bajo demanda de SageMaker IA. 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 opciones SageMaker HyperPod APIs para enviar solicitudes de acción en formato JSON a SageMaker AI mediante 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 |
| Configuración basada en API | Defina la configuración de Slurm directamente en las solicitudes de API y CreateCluster 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 |
Configuración de Slurm basada en API (recomendada)
Con la configuración basada en API, los tipos de nodos de Slurm, las asignaciones de particiones y los montajes de los sistemas de archivos se definen directamente en las solicitudes de Slurm y de 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 -
Validación integrada: 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: configura diferentes FSx sistemas de archivos para diferentes grupos de instancias
-
FSx para compatibilidad con OpenZFS: monte sistemas de archivos OpenZFS además de para Lustre FSx
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 (a nivel de clúster)
Añádalo Orchestrator.Slurm a la configuración del clúster para especificar cómo se gestiona el archivo. HyperPod slurm.conf
"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }
Parámetros:
-
SlurmConfigStrategy— Obligatorio cuandoOrchestrator.Slurmse proporciona. Controla la forma en que se HyperPod administra 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 |
FSx configuración mediante InstanceStorageConfigs
Con la configuración basada en API, puede configurar los FSx sistemas de archivos 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). FSx los sistemas de archivos 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 FSx el montaje del sistema de archivos 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 de Lustre FSx . 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 FSx sistema de archivos de Lustre. Puedes encontrarlo en la FSx consola de Amazon o ejecutándoloaws fsx describe-file-systems.
FsxOpenZfsConfig
Configura FSx 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 OpenZFS FSx . 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
FSx los cambios de configuración solo se aplican durante el aprovisionamiento de nodos. Los nodos existentes conservan su FSx configuración original. Para aplicar la nueva FSx configuración a todos los nodos, reduce el grupo de instancias a 0 y, a continuación, vuelve a escalarlo.
Ejemplo completo de configuración basada en API
El siguiente ejemplo muestra una CreateCluster solicitud completa mediante una configuración de Slurm basada en API:
{ "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 configuración basada en API, 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 configuración basado en API 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 quieres configurar tus nodos Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifica el nombre FSx DNS. -
fsx_mountname: opcional. Si quieres configurar tus nodos Slurm en el HyperPod clúster para que se comuniquen con Amazon FSx, especifica el nombre del FSx montaje.
Comparación: configuración basada en API frente a configuración tradicional
| Característica | Impulsado por API (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í, solo para todo el clúster |
| FSx para OpenZFS | Sí, por grupo de instancias | No: no se admite |
| Validación integrada | 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 software que distribuye el equipo de servicio, consulte HyperPod . HyperPod DLAMIs 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 los tipos de permisos y recursos SageMaker APIs, consulte Acciones, recursos y claves de condición de Amazon SageMaker AI en la Referencia de autorización de AWS servicio.
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.