Iniciar uma tarefa de treinamento usando a CLI do HyperPod
A CLI do SageMaker HyperPod é uma ferramenta de interface de linha de comandos para gerenciar clusters do Amazon SageMaker HyperPod. Você pode usar a CLI do HyperPod para criar, configurar e monitorar clusters do HyperPod para workloads de machine learning. Para ter mais informações, consulte o repositório sagemaker-hyperpod-cli
Pré-requisitos
-
Instale a CLI do HyperPod. Para personalizar o Amazon Nova no Amazon SageMaker HyperPod, você deve conferir a ramificação
release_v2para usar a CLI do SageMaker HyperPod. -
Antes de enviar trabalhos, verifique se o bucket de saída do Nova existe. Para verificar, execute
aws s3 ls s3://nova-111122223333/.O nome do bucket é o valor que você especificou para
recipes.run.output_s3_pathna fórmula. Esse bucket de saída armazenará um arquivo de manifesto gerado após o treinamento, que conterá caminhos do S3 para os artefatos de saída armazenados no bucket do Amazon S3 gerenciado pelo serviço. Além disso, ele pode armazenar opcionalmente os arquivos do TensorBoard ou os resultados da avaliação. -
Noções básicas sobre os requisitos de sincronização de dados do Amazon FSx. Para que os trabalhos possam ser executados, primeiro o Amazon FSx precisa de tempo para sincronizar os dados de treinamento do Amazon S3.
Configurar a CLI do HyperPod para personalização do Amazon Nova
Para configurar a CLI do HyperPod para personalização do Amazon Nova, siga as etapas abaixo.
-
Clone o repositório sagemaker-hyperpod-cli
do GitHub com a ramificação release_v2.git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2 -
Navegue para a pasta
sagemaker-hyperpod-cli.cd sagemaker-hyperpod-cli -
Verifique se você tem todos os pré-requisitos em Pré-requisitos
. -
Para configurar o Helm, siga estas etapas:
-
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 -
Para tornar o script executável, execute:
chmod 700 get_helm.shEsse comando altera as permissões para tornar o script executável.
-
Para executar o script de instalação do Helm, execute:
./get_helm.sh -
Para remover o script de instalação, execute:
rm -f ./get_helm.sh
-
-
Para instalar dependências do HyperPod que permitam grupos de instâncias restritas (RIG), siga as etapas abaixo.
nota
Antes de instalar as dependências, você deve ter um cluster do HyperPod orquestrado pelo EKS com um RIG. Se você não tiver um par de chaves, siga estas instruções para criar um:
-
Para se conectar ao cluster do HyperPod orquestrado pelo EKS, execute:
aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1 -
Para verificar a conexão com o cluster do HyperPod orquestrado pelo EKS, execute:
kubectl config current-context -
Para obter atualizações para dependências padrão do HyperPod, execute:
helm dependencies update helm_chart/HyperPodHelmChart -
Para instalar dependências padrão do HyperPod, execute:
helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system -
Para navegar até o diretório do chart do Helm, execute:
cd helm_chart -
Para instalar dependências do HyperPod 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 a criação.
-
Você deve garantir que o utilitário yq esteja instalado pelo menos com a versão 4 (como v4). Há uma verificação integrada para confirmar se yq >=4 está disponível no script de instalação.
-
Você precisará confirmar a instalação inserindo
yquando for 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 -
-
Para voltar à raiz do repositório
codesagemaker-hyperpod-cli, execute:cd ..
-
-
Para continuar com a instalação da CLI do HyperPod em
sagemaker-hyperpod-cli, siga estas etapas.-
Instale o a CLI usando o pip:
pip install -e . Verifique a instalação:
hyperpod --help
-
Enviar um trabalho
Você pode usar a CLI do HyperPod para enviar uma tarefa de treinamento.
Para enviar uma tarefa usando uma fórmula, 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 de tarefa que você está executando por meio da fórmula. Os valores válidos são:fine-tuning|evaluation|training.Tipo de trabalho Valor Tarefas de SFT/PEFT/PPO/DPO fine-tuningTrabalhos de avaliação evaluationTarefas de CPT training -
Nome da fórmula: você pode encontrar o nome no repositório, no diretório
/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/. -
Fórmula de exemplo:
--recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval. -
Contêiner: este campo é obrigatório. Para encontrar suas imagens referentes aos tipos de trabalho, consulte a tabela a seguir.
Técnica Contêiner DPO 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-DPO-latest Trabalhos de avaliação 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest CPT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-CPT-latest PPO 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SMHP-PPO-TRAIN-latest SFT/PEFT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest -
Nome de execução personalizado: há restrições de definição na entrada
custom-run-time; por exemplo, sem maiúsculas, sem espaços, sem sublinhados. Para ter mais informações, consulte Object Names and IDs.
[Opcional] Se você já tem uma tarefa de treinamento e deseja direcionar um nó específico para sua próxima tarefa, siga estas etapas.
-
Para obter todos os nós livres, execute o comando a seguir.
kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}' -
Adicione o seguinte ao arquivo
src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yamlpara seletor de rótulos:label_selector: required: kubernetes.io/hostname: - <node_name> -
No diretório raiz, execute o comando a seguir. Isso garante que o SageMaker HyperPod seja instalado no sistema do usuário, permitindo que ele use a palavra-chave “hyperpod” para envio de tarefas e outras funções. Você deve executar esse comando na pasta raiz onde está o código da CLI do HyperPod.
pip install .
Listar tarefas
Para listar todas as tarefas, execute o comando a seguir.
hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]
O comando lista todas as tarefas no namespace especificado ou em todos os namespaces.
Obter detalhes da tarefa
Para obter detalhes sobre uma tarefa, execute o comando a seguir.
hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]
O comando recupera informações detalhadas sobre uma tarefa específica.
Listar pods
Para listar pods, execute o comando a seguir.
hyperpod list-pods --job-name <job-name> [--namespace <namespace>]
O comando lista todos os pods associados a uma tarefa específica no namespace especificado.
Cancelar tarefas
Para cancelar uma tarefa, execute o comando a seguir.
hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]
Esse comando cancela e exclui uma tarefa de treinamento em execução no namespace especificado.