Usar o AWS CLI - Amazon SageMaker

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á.

Usar o AWS CLI

Os tópicos a seguir fornecem orientação sobre como escrever arquivos de SageMaker HyperPod API solicitação em JSON formato e executá-los usando o AWS CLI comandos.

Crie um novo cluster

  1. Prepare scripts de configuração do ciclo de vida e carregue-os em um bucket do S3, como. s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/ A etapa 2 a seguir pressupõe que há um script de ponto de entrada nomeado on_create.sh no bucket do S3 especificado.

    Importante

    Certifique-se de definir o caminho do S3 para começars3://sagemaker-. O IAMpapel para SageMaker HyperPod tem o gerenciado AmazonSageMakerClusterInstanceRolePolicyanexado, que permite o acesso aos buckets do S3 com o prefixo específico. sagemaker-

  2. Prepare um arquivo de CreateClusterAPIsolicitação em JSON formato. Você deve configurar grupos de instâncias para que correspondam ao cluster Slurm projetado no provisioning_params.json arquivo que será usado durante a criação do cluster como parte da execução de um conjunto de scripts de ciclo de vida. Para saber mais, consulte SageMaker HyperPod melhores práticas de configuração do ciclo de vida. O modelo a seguir tem dois grupos de instâncias para atender ao requisito mínimo de um cluster Slurm: um nó controlador (principal) e um nó de computação (trabalhador). ParaExecutionRole, forneça ARN a IAM função que você criou com o AmazonSageMakerClusterInstanceRolePolicy gerenciado na seçãoIAMpapel para SageMaker HyperPod.

    // create_cluster.json { "ClusterName": "your-hyperpod-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller-group", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, { "InstanceGroupName": "worker-group-1", "InstanceType": "ml.p4d.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster" } ], // Optional "Tags": [ { "Key": "string", "Value": "string" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }

    Dependendo de como você projeta a estrutura do cluster por meio de seus scripts de ciclo de vida, você pode configurar até 20 grupos de instâncias sob o InstanceGroups parâmetro.

    Para o parâmetro de Tags solicitação, você pode adicionar tags personalizadas para gerenciar o SageMaker HyperPod cluster como AWS recurso. Você pode adicionar tags ao seu cluster da mesma forma que as adiciona em outros AWS serviços que oferecem suporte à marcação. Para saber mais sobre a marcação AWS recursos em geral, consulte Marcação AWS Guia do usuário de recursos.

    Para o parâmetro de VpcConfig solicitação, especifique as informações de um que VPC você deseja usar. Para obter mais informações, consulte Configurando SageMaker HyperPod com a Amazon VPC.

  3. Execute o comando create-cluster da seguinte maneira.

    aws sagemaker create-cluster \ --cli-input-json file://complete/path/to/create_cluster.json

    Isso deve retornar o ARN do novo cluster.

Descrever um cluster

Execute describe-cluster para verificar o status do cluster. Você pode especificar o nome ou o ARN do cluster.

aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster

Depois que o status do cluster mudar paraInService, vá para a próxima etapa. Usando issoAPI, você também pode recuperar mensagens de falha da execução de outras HyperPod API operações.

Listar detalhes dos nós do cluster

Execute list-cluster-nodespara verificar as principais informações dos nós do cluster.

aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster

Isso retorna uma resposta e InstanceId é o que você precisa usar para fazer login (usaraws ssm) nelas.

Descrever detalhes de um nó de cluster

Execute describe-cluster-nodepara recuperar detalhes de um nó do cluster. Você pode obter o ID do nó do cluster na list-cluster-nodes saída. Você pode especificar o nome ou o ARN do cluster.

aws sagemaker describe-cluster-node \ --cluster-name your-hyperpod-cluster \ --node-id i-111222333444555aa

Listar clusters

Execute list-clusters para listar todos os clusters em sua conta.

aws sagemaker list-clusters

Você também pode adicionar sinalizadores adicionais para filtrar a lista de clusters. Para saber mais sobre o que esse comando executa em baixo nível e sinalizadores adicionais para filtragem, consulte a ListClustersAPIreferência.

Atualizar a configuração do cluster

Execute update-cluster para atualizar a configuração de um cluster.

  1. Crie um arquivo de UpdateCluster solicitação em JSON formato. Certifique-se de especificar o nome do cluster e o nome do grupo de instâncias corretos para atualizar. Você pode alterar o tipo de instância, o número de instâncias, o script do ponto de entrada da configuração do ciclo de vida e o caminho para o script.

    1. ParaClusterName, especifique o nome do cluster que você deseja atualizar.

    2. Para InstanceGroupName

      1. Para atualizar um grupo de instâncias existente, especifique o nome do grupo de instâncias que você quer atualizar.

      2. Para adicionar um novo grupo de instâncias, especifique um novo nome que não existe no seu cluster.

    3. Para InstanceType

      1. Para atualizar um grupo de instâncias existente, você precisa corresponder ao grupo o tipo de instância especificado inicialmente.

      2. Para adicionar um novo grupo de instâncias, especifique o tipo de instância com o qual você quer configurar o grupo.

    4. Para InstanceCount

      1. Para atualizar um grupo de instâncias existente, especifique um número inteiro maior que o número atual de instâncias. Atualmente, você só pode aumentar o número de instâncias.

      2. Para adicionar um novo grupo de instâncias, especifique um número inteiro maior ou igual a 1.

    5. PoisLifeCycleConfig, você pode alterar os OnCreat valores SourceS3Uri e os valores conforme quiser para atualizar o grupo de instâncias.

    6. Para ExecutionRole

      1. Para atualizar um grupo de instâncias existente, continue usando a mesma IAM função que você atribuiu durante a criação do cluster.

      2. Para adicionar um novo grupo de instâncias, especifique uma IAM função que você deseja anexar.

    7. Para TreadsPerCore

      1. Para atualizar um grupo de instâncias existente, continue usando o mesmo valor que você especificou durante a criação do cluster.

      2. Para adicionar um novo grupo de instâncias, você pode escolher qualquer valor entre as opções permitidas por tipo de instância. Para obter mais informações, pesquise o tipo de instância e consulte a coluna Valid Treads per core na tabela de referência em CPUnúcleos e threads por CPU núcleo por tipo de instância no Amazon EC2 User Guide.

    O trecho de código a seguir é um modelo de arquivo de JSON solicitação que você pode usar. Para obter mais informações sobre a sintaxe da solicitação e seus parâmetrosAPI, consulte a UpdateClusterAPIreferência.

    // update_cluster.json { // Required "ClusterName": "name-of-cluster-to-update", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<amzn-s3-demo-bucket>/<lifecycle-script-directory>/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, // add more blocks of instance groups as needed { ... } ] }
  2. Execute o update-cluster comando a seguir para enviar a solicitação.

    aws sagemaker update-cluster \ --cli-input-json file://complete/path/to/update_cluster.json

Atualizar o software da SageMaker HyperPod plataforma de um cluster

Execute update-cluster-softwarepara atualizar os clusters existentes com os patches de software e segurança fornecidos pelo SageMaker HyperPod serviço. Para--cluster-name, especifique o nome ou o ARN do cluster a ser atualizado.

Importante

Observe que você deve fazer backup do seu trabalho antes de executar issoAPI. O processo de correção substitui o volume raiz pelo atualizadoAMI, o que significa que seus dados anteriores armazenados no volume raiz da instância serão perdidos. Certifique-se de fazer backup dos dados do volume raiz da instância no Amazon S3 ou no Amazon FSx for Lustre. Para obter mais informações, consulte Use o script de backup fornecido pelo SageMaker HyperPod.

aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster

Esse comando chama UpdateClusterSoftwareAPIo. Após a API chamada, SageMaker HyperPod atualiza as instâncias do cluster para usar as mais recentes SageMaker HyperPod DLAMI e executa seus scripts de ciclo de vida no bucket do S3 que você especificou durante a criação ou atualização do cluster. A equipe SageMaker HyperPod de serviço lança regularmente novos SageMaker HyperPod DLAMI s para aprimorar a segurança e melhorar a experiência do usuário. Recomendamos que você sempre continue atualizando com as últimas novidades SageMaker HyperPod DLAMI. Para futuras SageMaker HyperPod DLAMI atualizações de patches de segurança, entre em contato comNotas SageMaker HyperPod de lançamento da Amazon.

dica

Se o patch de segurança falhar, você poderá recuperar as mensagens de falha executando o DescribeClusterAPIconforme as instruções em. Descrever um cluster

nota

Você só pode executar isso API programaticamente. A funcionalidade de correção não está implementada na interface do usuário do SageMaker HyperPod console.

Use o script de backup fornecido pelo SageMaker HyperPod

SageMaker HyperPod fornece um script para fazer backup e restaurar seus dados 1.architectures/5.sagemaker-hyperpod/patching-backup.shno GitHub repositório do Awsome Distributed Training. O script fornece as duas funções a seguir.

Para fazer backup dos dados em um bucket do S3 antes da aplicação de patches

sudo bash patching-backup.sh --create <s3-buckup-bucket-path>

Depois de executar o comando, o script verifica squeue se há trabalhos em fila, interrompe o Slurm se não houver nenhum trabalho na fila, faz backup mariadb e copia itens locais no disco definido abaixo. LOCAL_ITEMS Você pode adicionar mais arquivos e diretórios a. LOCAL_ITEMS

# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )

Além disso, você pode adicionar código personalizado ao script fornecido para fazer backup de qualquer aplicativo para seu caso de uso.

Para restaurar dados de um bucket S3 após a aplicação de patches

sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>

Excluir um cluster

Execute delete-cluster para excluir um cluster. Você pode especificar o nome ou o ARN do cluster.

aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster