Iniciando um trabalho de treinamento usando a HyperPod CLI - SageMaker IA 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á.

Iniciando um trabalho de treinamento usando a HyperPod CLI

HyperPod A CLI é uma ferramenta de interface de linha de comando para gerenciar clusters da Amazon. SageMaker HyperPod Você pode usar a HyperPod CLI para criar, configurar e monitorar HyperPod clusters para cargas de trabalho de aprendizado de máquina. Para obter mais informações, consulte o sagemaker-hyperpod-cli GitHub repositório.

Pré-requisitos

  • Instalar a CLI do HyperPod . Para personalizar o Amazon Nova na Amazon SageMaker HyperPod, você deve verificar a release_v2 filial para usar a SageMaker HyperPod CLI.

  • Verifique se o bucket de saída do Nova existe antes de enviar trabalhos. Para verificar, executeaws s3 ls s3://nova-111122223333/.

  • Entendendo os requisitos FSx de sincronização de dados da Amazon. A Amazon FSx precisa de tempo para sincronizar os dados de treinamento do Amazon S3 antes que os trabalhos possam ser executados. O envio de trabalhos antes da conclusão da sincronização causa erros de “Esse arquivo ou diretório não existe”. Aguarde a conclusão da sincronização após a criação do cluster.

Configurar a HyperPod CLI para personalização do Amazon Nova

Para configurar a HyperPod CLI para personalização do Amazon Nova, siga as etapas.
  1. Clone o sagemaker-hyperpod-cli GitHub repositório com branch. release_v2

    git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2
  2. Navegue para a pasta sagemaker-hyperpod-cli.

    cd sagemaker-hyperpod-cli
  3. Verifique se você tem todos os pré-requisitos em Pré-requisitos.

  4. Para configurar o Helm, siga estas etapas.

    1. Para baixar o script de instalação do Helm, execute:

      curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    2. Para tornar o script executável, execute:

      chmod 700 get_helm.sh

      Esse comando altera as permissões para tornar o script executável.

    3. Para executar o script de instalação do Helm, execute:

      ./get_helm.sh
    4. Para remover o script de instalação, execute:

      rm -f ./get_helm.sh
  5. Para instalar HyperPod dependências com suporte a grupos de instâncias restritas (RIG), siga estas etapas.

    nota

    Antes de instalar as dependências, você deve ter um cluster HyperPod EKS com o RIG. Se você ainda não tiver um, siga estas instruções para criar um.

    1. Para se conectar ao seu cluster HyperPod EKS, execute:

      aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1
    2. Para verificar a conexão com seu cluster HyperPod EKS, execute:

      kubectl config current-context
    3. Para obter atualizações para HyperPod dependências padrão, execute:

      helm dependencies update helm_chart/HyperPodHelmChart
    4. Para instalar HyperPod dependências padrão, execute:

      helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system
    5. Para navegar até o diretório de gráficos do Helm, execute:

      cd helm_chart
    6. Para instalar HyperPod dependências específicas do RIG, execute o comando a seguir.

      nota

      Antes de instalar as dependências, considere o seguinte:

      • Você só deve executar esse comando uma vez por cluster após sua criação.

      • Você deve garantir o utilitário yq com a versão de pelo menos 4 (por exemplo, v4). Há uma verificação embutida para confirmar que yq >=4 está disponível no script de instalação.

      • Você precisará confirmar a instalação inserindo y quando solicitado. Opcionalmente, antes da confirmação, veja a instalação pretendida em./rig-dependencies.yaml.

      chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh
    7. Para voltar à raiz do codesagemaker-hyperpod-cli repositório, execute:

      cd ..
  6. Para continuar com a instalação da HyperPod CLIsagemaker-hyperpod-cli, siga as etapas.

    1. Instale a CLI usando pip:

      pip install -e .
    2. Verifique a instalação:

      hyperpod --help

Enviar um trabalho

Você pode usar a HyperPod CLI para enviar um trabalho de treinamento.

Para enviar um trabalho usando uma receita, execute o comando a seguir.

hyperpod start-job [--namespace <namespace>] --recipe {{fine-tuning | evaluation | training}}/nova/<Your_Recipe_Name> --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": <Docker Image>, "recipes.run.name": <custom-run-name>, "recipes.run.output_s3_path": "<customer-s3-path>" }'
  • --recipe: o tipo do trabalho que você está executando usando a receita. Os valores válidos são: fine-tuning | evaluation |training.

    Tipo de trabalho Valor
    Tarefas SFT/PEFT/PPO/DPO fine-tuning
    Trabalhos de avaliação evaluation
    Empregos de CPT training
  • Nome da receita: Você pode encontrar o nome no repositório no diretório:/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/.

  • Receita de exemplo:--recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval.

  • Contêiner: Esse campo é obrigatório. Para encontrar suas imagens para os tipos de trabalho, consulte a tabela a seguir.

    Técnica Contêiner
    FAZER 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-DPO-latest nova-fine-tune-repo
    Trabalhos de avaliação 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo
    CPT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:HP-CPT-Latest nova-fine-tune-repo
    PPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SMHP-PPO-train-latest nova-fine-tune-repo
    MÉTICO/ESQUERDO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-latest nova-fine-tune-repo
  • Nome de execução personalizado: há restrições de definição na custom-run-time entrada, por exemplo, em maiúsculas, sem espaços, sem sublinhados. Para obter mais informações, consulte Nomes de objetos IDs e.

[Opcional] Se você já tem um trabalho de treinamento e deseja segmentar um nó específico para seu próximo trabalho, siga as etapas.

  1. Para obter todos os nós livres, execute o comando a seguir.

    kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}'
  2. Adicione o seguinte ao src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml arquivo para seletor de etiquetas.

    label_selector: required: kubernetes.io/hostname: - <node_name>
  3. No diretório raiz, execute o comando a seguir. Isso garante que SageMaker HyperPod esteja instalado no sistema do usuário, permitindo que ele use a palavra-chave “hyperpod” para envio de trabalhos e outras funções. Você deve executar esse comando na pasta raiz onde está o código HyperPod CLI.

    pip install .

Listar trabalhos

Para listar trabalhos, execute o comando a seguir.

hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]

O comando lista todos os trabalhos no namespace especificado ou em todos os namespaces.

Obtenha detalhes do trabalho

Para obter os detalhes de um trabalho, execute o comando a seguir.

hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]

O comando recupera informações detalhadas sobre um trabalho específico.

Listar cápsulas

Para listar os pods, execute o comando a seguir.

hyperpod list-pods --job-name <job-name> [--namespace <namespace>]

O comando lista todos os pods associados a um trabalho específico no namespace especificado.

Cancelar trabalhos

Para cancelar um trabalho, execute o comando a seguir.

hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]

Esse comando cancela e exclui um trabalho de treinamento em execução no namespace especificado.