SageMaker HyperPod referências - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

SageMaker HyperPod referências

Encontre mais informações e referências sobre o uso SageMaker HyperPod nos tópicos a seguir.

SageMaker HyperPod preços

Os tópicos a seguir fornecem informações sobre SageMaker HyperPod preços. Para encontrar mais detalhes sobre o preço por hora do uso de SageMaker HyperPod instâncias, consulte também os SageMaker preços da Amazon.

Solicitações de capacidade

Você pode alocar capacidade computacional sob demanda ou reservada com SageMaker IA para uso em. SageMaker HyperPod A criação de clusters sob demanda aloca a capacidade disponível do pool de capacidade sob demanda de SageMaker IA. Como alternativa, você pode solicitar capacidade reservada para garantir o acesso enviando um ticket para aumentar a cota. As solicitações de capacidade de entrada são priorizadas pela SageMaker IA e você recebe um tempo estimado para alocação de capacidade.

Faturamento de serviço

Ao provisionar uma capacidade computacional SageMaker HyperPod, você é cobrado pela duração da alocação de capacidade. SageMaker HyperPod o faturamento aparece em suas faturas de aniversário com um item de linha para o tipo de alocação de capacidade (sob demanda, reservada), o tipo de instância e o tempo gasto no uso da instância.

Para enviar um ticket para um aumento de cota, consulteSageMaker HyperPod cotas.

SageMaker HyperPod APIs

A lista a seguir é um conjunto completo SageMaker HyperPod APIs para enviar solicitações de ação no formato JSON para a SageMaker IA por meio AWS CLI de ou. AWS SDK para Python (Boto3)

SageMaker HyperPod Configuração do Slurm

HyperPod oferece suporte a duas abordagens para configurar o Slurm em seu cluster. Escolha a abordagem que melhor atenda às suas necessidades.

Abordagem Descrição Recomendado para
Configuração orientada por API Defina a configuração do Slurm diretamente nas solicitações de API CreateCluster e UpdateCluster Novos clusters; gerenciamento simplificado
Configuração legada Use um provisioning_parameters.json arquivo separado armazenado no Amazon S3 Clusters existentes; compatibilidade com versões anteriores

Configuração do Slurm baseada em API (recomendada)

Com a configuração orientada por API, você define os tipos de nós do Slurm, as atribuições de partições e as montagens do sistema de arquivos diretamente nas solicitações e na API. CreateCluster UpdateCluster Essa abordagem fornece:

  • Fonte única de verdade — todas as configurações na solicitação da API

  • Sem gerenciamento de arquivos S3 — sem necessidade de criar ou manter provisioning_parameters.json

  • Validação integrada — a API valida a topologia do Slurm antes da criação do cluster

  • Detecção de desvios — detecta alterações não autorizadas em slurm.conf

  • Per-instance-group armazenamento — Configure sistemas de FSx arquivos diferentes para diferentes grupos de instâncias

  • FSx para suporte ao OpenZFS — Monte sistemas de arquivos OpenZFS além do Lustre FSx

SlurmConfig (por grupo de instâncias)

Adicione SlurmConfig a cada grupo de instâncias para definir o tipo de nó do Slurm e a atribuição da partição.

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

Parâmetros:

  • NodeType – obrigatório. O tipo de nó do Slurm para esse grupo de instâncias. Valores válidos:

    • Controller— Nó do controlador Slurm (cabeça). Executa o slurmctld daemon. Exatamente um grupo de instâncias deve ter esse tipo de nó.

    • Login— Nó de login para acesso do usuário. Opcional. No máximo, um grupo de instâncias pode ter esse tipo de nó.

    • Compute— nós de trabalho que executam trabalhos. Pode ter vários grupos de instâncias com esse tipo de nó.

    Importante

    NodeTypeé imutável. Depois de definido durante a criação do cluster, ele não pode ser alterado. Para usar um tipo de nó diferente, crie um novo grupo de instâncias.

  • PartitionNames – Condicional. Uma matriz de nomes de partições do Slurm. Obrigatório para tipos de Compute nós; não permitido para Controller ou tipos de Login nós. Atualmente, é compatível com um único nome de partição por grupo de instâncias.

    nota

    Todos os nós são adicionados automaticamente à dev partição universal, além da partição especificada.

Exemplo:

{ "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 (nível de cluster)

Adicione Orchestrator.Slurm à configuração do cluster para especificar como HyperPod gerencia o slurm.conf arquivo.

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

Parâmetros:

  • SlurmConfigStrategyOrchestrator.Slurm Exigido quando fornecido. Controla como HyperPod gerencia o slurm.conf arquivo no nó do controlador. Valores válidos:

    • Managed(padrão) — controla HyperPod totalmente os mapeamentos dos nós de partição em. slurm.conf A detecção de desvio está ativada: se a corrente for slurm.conf diferente da configuração esperada, UpdateCluster falhará com um erro. Use essa estratégia quando quiser ser HyperPod a única fonte confiável para a configuração do Slurm.

    • Overwrite— HyperPod força a aplicação da configuração da API, substituindo todas as alterações manuais em. slurm.conf A detecção de desvio está desativada. Use essa estratégia para se recuperar do desvio ou redefinir o cluster para um estado conhecido.

    • Merge— HyperPod preserva as slurm.conf alterações manuais e as mescla com a configuração da API. A detecção de desvio está desativada. Use essa estratégia se precisar fazer alterações manuais na configuração do Slurm que devem persistir nas atualizações.

nota

Se Orchestrator.Slurm for omitido da solicitação, o comportamento padrão será estratégia. Managed

dica

Você pode mudar SlurmConfigStrategy a qualquer momento usando UpdateCluster. Não há dependência de uma estratégia específica.

Exemplo:

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

SlurmConfigStrategy comparação

Strategy Detecção de deriva Alterações manuais Caso de uso
Managed Ativado — bloqueia as atualizações se for detectado um desvio Bloqueado HyperPod gerenciado
Overwrite Desabilitado Sobrescrito Recuperação do desvio; redefinição para o estado conhecido
Merge Desabilitado Preservado Usuários avançados com slurm.conf necessidades personalizadas

FSx configuração via InstanceStorageConfigs

Com a configuração orientada por API, você pode configurar FSx sistemas de arquivos por grupo de instâncias usando o. InstanceStorageConfigs Isso permite que diferentes grupos de instâncias montem sistemas de arquivos diferentes.

Pré-requisitos:

  • Seu cluster deve usar uma VPC personalizada (viaVpcConfig). FSx os sistemas de arquivos residem em sua VPC, e a VPC gerenciada pela plataforma não pode acessá-los.

  • Pelo menos um grupo de instâncias deve ter SlurmConfig comNodeType: Controller.

FsxLustreConfig

Configure FSx para montagem do sistema de arquivos Lustre para um grupo de instâncias.

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

Parâmetros:

  • DnsName – obrigatório. O nome DNS do sistema de arquivos FSx for Lustre. Exemplo: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

  • MountPath: opcional. O caminho de montagem local na instância. Padrão: /fsx

  • MountName – obrigatório. O nome da montagem do sistema de arquivos FSx for Lustre. Você pode encontrar isso no FSx console da Amazon ou executandoaws fsx describe-file-systems.

FsxOpenZfsConfig

Configure FSx para montagem do sistema de arquivos OpenZFS para um grupo de instâncias.

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

Parâmetros:

  • DnsName – obrigatório. O nome DNS do sistema de arquivos FSx OpenZFS. Exemplo: fs-0xyz987654321.fsx.us-west-2.amazonaws.com

  • MountPath: opcional. O caminho de montagem local na instância. Padrão: /home

nota

Cada grupo de instâncias pode ter no máximo uma FsxLustreConfig e umaFsxOpenZfsConfig.

Exemplo com vários sistemas de arquivos:

{ "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 as alterações de configuração só se aplicam durante o provisionamento do nó. Os nós existentes mantêm sua FSx configuração original. Para aplicar a nova FSx configuração a todos os nós, reduza o grupo de instâncias para 0 e depois aumente novamente.

Exemplo completo de configuração orientada por API

O exemplo a seguir mostra uma CreateCluster solicitação completa usando a configuração do Slurm orientada por 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 saber mais sobre como usar a configuração orientada por API, consulte. Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida

Configuração legada: provisioning_parameters.json

nota

A provisioning_parameters.json abordagem é o método legado para configurar o Slurm on. HyperPod Para novos clusters, recomendamos usar a abordagem de configuração baseada em API descrita acima. A abordagem antiga permanece totalmente suportada para compatibilidade com versões anteriores.

Com a abordagem legada, você cria um arquivo de configuração do Slurm chamado provisioning_parameters.json e o carrega no Amazon S3 como parte de seus scripts de ciclo de vida. HyperPod lê esse arquivo durante a criação do cluster para configurar os nós do Slurm.

Formulário de configuração para provisioning_parameters.json

O código a seguir é o formulário de configuração do Slurm que você deve preparar para configurar adequadamente os nós do Slurm em seu cluster. HyperPod Preencha esse formulário e carregá-lo como parte de um conjunto de scripts de ciclo de vida durante a criação do cluster. Para saber como esse formulário deve ser preparado em todos os processos de criação de HyperPod clusters, consultePersonalização de SageMaker HyperPod clusters usando 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 – obrigatório. Essa é a versão do formulário de parâmetros de HyperPod aprovisionamento. Guarde para 1.0.0.

  • workload_manager – obrigatório. Isso serve para especificar qual gerenciador de carga de trabalho deve ser configurado no HyperPod cluster. Guarde para slurm.

  • controller_group – obrigatório. Isso serve para especificar o nome do grupo de instâncias do HyperPod cluster que você deseja atribuir ao nó do controlador (principal) do Slurm.

  • login_group: opcional. Isso serve para especificar o nome do grupo de instâncias do HyperPod cluster que você deseja atribuir ao nó de login do Slurm.

  • worker_groups – obrigatório. Isso serve para configurar nós de trabalho (computação) do Slurm no cluster. HyperPod

    • instance_group_name – obrigatório. Isso serve para especificar o nome do grupo de HyperPod instâncias que você deseja atribuir ao nó de trabalho (computação) do Slurm.

    • partition_name – obrigatório. Isso permite especificar o nome da partição para o nó.

  • fsx_dns_name: opcional. Se você quiser configurar seus nós do Slurm no HyperPod cluster para se comunicar com a Amazon FSx, especifique o nome do FSx DNS.

  • fsx_mountname: opcional. Se você quiser configurar seus nós do Slurm no HyperPod cluster para se comunicar com a Amazon FSx, especifique o nome da FSx montagem.

Comparação: configuração baseada em API versus configuração legada

Recurso Orientado por API (recomendado) Legado (provisioning_parameters.json)
Local de configuração CreateCluster Solicitação de API Arquivo S3
FSx para Lustre Sim — Por grupo de instâncias Sim — somente em todo o cluster
FSx para OpenZFS Sim — Por grupo de instâncias Não — Não suportado
Validação integrada Sim Não
Detecção de desvios Sim — (Estratégia gerenciada) Não
Gerenciamento de arquivos S3 Não obrigatório Obrigatório
Complexidade do script do ciclo de vida Simplificado É necessária uma configuração completa do SLURM

SageMaker HyperPod DLAMI

SageMaker HyperPod executa um DLAMI com base em:

O SageMaker HyperPod DLAMI é fornecido com pacotes adicionais para oferecer suporte a ferramentas de código aberto, como Slurm, Kubernetes, dependências e pacotes de software de cluster, para oferecer suporte a recursos de resiliência, como verificação de SageMaker HyperPod integridade e retomada automática do cluster. Para acompanhar as atualizações HyperPod de software pelas quais a equipe HyperPod de serviço distribui DLAMIs, consulteNotas SageMaker HyperPod de lançamento da Amazon.

SageMaker HyperPod Referência de permissões da API

Importante

Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte Forneça permissões para marcar recursos de SageMaker IA.

AWS políticas gerenciadas para Amazon SageMaker AIque dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Ao configurar o controle de acesso para permitir a execução de operações de SageMaker HyperPod API e escrever uma política de permissões que você pode anexar aos usuários do IAM para administradores de nuvem, use a tabela a seguir como referência.

Operações de SageMaker API da Amazon Permissões obrigatórias (ações de 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 obter uma lista completa de permissões e tipos de recursos para SageMaker APIs, consulte Ações, recursos e chaves de condição para Amazon SageMaker AI na Referência de Autorização de AWS Serviço.

SageMaker HyperPod comandos em AWS CLI

A seguir estão os AWS CLI comandos SageMaker HyperPod para executar as principais operações HyperPod da API.

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

A seguir estão os métodos do AWS SDK para Python (Boto3) cliente para que a SageMaker IA execute as principais operações HyperPod da API.