Personalize clusters do SageMaker HyperPod usando scripts de ciclo de vida - Amazon SageMaker

Personalize clusters do SageMaker HyperPod usando scripts de ciclo de vida

O SageMaker HyperPod oferece clusters de computação sempre em funcionamento, que são altamente personalizáveis, pois você pode escrever scripts de ciclo de vida para informar ao SageMaker HyperPod como configurar os recursos do cluster. Os tópicos a seguir são as melhores práticas para preparar scripts de ciclo de vida para configurar clusters do SageMaker HyperPod com ferramentas de gerenciamento de workload de código aberto.

Os tópicos a seguir discutem as práticas recomendadas detalhadas para preparar scripts de ciclo de vida para definir as configurações do Slurm no SageMaker HyperPod.

Uma visão geral de alto nível

O procedimento a seguir é o fluxo principal de provisionamento de um cluster HyperPod e sua configuração com o Slurm. As etapas são colocadas na ordem de uma abordagem de baixo para cima.

  1. Planeje como você deseja criar nós do Slurm em um cluster HyperPod. Por exemplo, se você quiser configurar dois nós do Slurm, precisará configurar dois grupos de instâncias em um cluster HyperPod.

  2. Prepare um arquivo provisioning_parameters.json, que é umFormulário de configuração para provisionamento de nós Slurm no HyperPod. provisioning_parameters.json deve conter informações de configuração do nó Slurm a serem provisionadas no cluster HyperPod. Isso deve refletir o design dos nós do Slurm da Etapa 1.

  3. Prepare um conjunto de scripts de ciclo de vida para configurar o Slurm no HyperPod para instalar pacotes de software e configurar um ambiente no cluster para seu caso de uso. Você deve estruturar os scripts de ciclo de vida para serem executados coletivamente em um script Python central (lifecycle_script.py) e escrever um script de shell de ponto de entrada (on_create.sh) para executar o script Python. O script de shell do ponto de entrada é o que você precisa fornecer para uma solicitação de criação de cluster HyperPod posteriormente na Etapa 5.

    Além disso, observe que você deve escrever os scripts para esperar resource_config.json que sejam gerados pelo HyperPod durante a criação do cluster. resource_config.json contém informações de recursos do cluster HyperPod, como endereços IP, tipos de instância e ARNs, e é o que você precisa usar para configurar o Slurm.

  4. Reúna todos os arquivos das etapas anteriores em uma pasta.

    └── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
  5. Faça upload de todos os arquivos em um bucket do S3. Copie e mantenha o caminho do bucket do S3. Observe que você deve criar um caminho de bucket do S3 começando com sagemaker- porque precisa escolher um Perfil do IAM para o SageMaker HyperPod anexo com AmazonSageMakerClusterInstanceRolePolicy, que só permite caminhos do bucket do S3 começando com o prefixo sagemaker-. O comando a seguir é um exemplo de comando para carregar todos os arquivos em um bucket do S3.

    aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
  6. Prepare uma solicitação de criação de cluster HyperPod.

    • Opção 1: se você usar a AWS CLI, escreva uma solicitação de criação de cluster no formato JSON (create_cluster.json) seguindo as instruções em Criar um novo cluster.

    • Opção 2: se você usa a interface do console do SageMaker, preencha o formulário Criar um cluster na interface do usuário do console do HyperPod seguindo as instruções em Cria um cluster do SageMaker HyperPod.

    Nesse estágio, certifique-se de criar grupos de instâncias na mesma estrutura planejada nas etapas 1 e 2. Além disso, especifique o bucket do S3 da Etapa 5 nos formulários de solicitação.

  7. Envie a solicitação de criação de cluster. O HyperPod provisiona um cluster com base na solicitação e, em seguida, cria um arquivo resource_config.json nas instâncias do cluster HyperPod e configura o Slurm no cluster que executa os scripts de ciclo de vida.

Os tópicos a seguir explicam e aprofundam os detalhes sobre como organizar arquivos de configuração e scripts de ciclo de vida para que funcionem adequadamente durante a criação do cluster HyperPod.