Acelere o treinamento e o ajuste fino do modelo básico com as novas receitas do Amazon SageMaker HyperPod


Acelere o treinamento e o ajuste fino do modelo básico com as novas receitas do Amazon SageMaker HyperPod

Hoje, estamos anunciando a disponibilidade geral de Receitas do Amazon SageMaker HyperPod para ajudar cientistas de dados e desenvolvedores de todos os conjuntos de habilidades a começar o treinamento e o ajuste fino modelos de fundação (FMs) em minutos com desempenho de última geração. Agora eles podem acessar receitas otimizadas para treinamento e ajuste fino de FMs populares disponíveis publicamente, como Lhama 3.1 405B, Lhama 3.2 90Bou Mixtral 8x22B.

No AWS re:Invent 2023, nós apresentou o SageMaker HyperPod para reduzir o tempo de treinamento de FMs em até 40% e dimensionar mais de mil recursos de computação em paralelo com bibliotecas de treinamento distribuídas pré-configuradas. Com o SageMaker HyperPod, você pode encontrar os recursos de computação acelerados necessários para treinamento, criar os planos de treinamento mais adequados e executar cargas de trabalho de treinamento em diferentes blocos de capacidade com base na disponibilidade de recursos de computação.

As receitas do SageMaker HyperPod incluem uma pilha de treinamento testada pela AWS, eliminando o trabalho tedioso de experimentar diferentes configurações de modelo e eliminando semanas de avaliação e testes iterativos. As receitas automatizam várias etapas críticas, como carregar conjuntos de dados de treinamento, aplicar técnicas de treinamento distribuído, automatizar pontos de verificação para recuperação mais rápida de falhas e gerenciar o ciclo de treinamento de ponta a ponta.

Com uma simples mudança de receita, você pode alternar facilmente entre instâncias baseadas em GPU ou Trainium para otimizar ainda mais o desempenho do treinamento e reduzir custos. Você pode executar facilmente cargas de trabalho em produção no SageMaker HyperPod ou em trabalhos de treinamento do SageMaker.

Receitas do SageMaker HyperPod em ação
Para começar, visite o Repositório GitHub de receitas do SageMaker HyperPod para procurar receitas de treinamento para FMs populares disponíveis publicamente.

Você só precisa editar parâmetros de receita simples para especificar um tipo de instância e o native de seu conjunto de dados na configuração do cluster e, em seguida, executar a receita com um comando de linha única para obter desempenho de última geração.

Você precisa editar o arquivo config.yaml da receita para especificar o modelo e o tipo de cluster após clonar o repositório.

$ git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
$ cd sagemaker-hyperpod-recipes
$ pip3 set up -r necessities.txt.
$ cd ./recipes_collections
$ vim config.yaml

As receitas suportam SageMaker HyperPod com Slurm, SageMaker HyperPod com Amazon Elastic Kubernetes Service (Amazon EKS)e Trabalhos de treinamento SageMaker. Por exemplo, você pode configurar um tipo de cluster (orquestrador Slurm), um nome de modelo (modelo de linguagem Meta Llama 3.1 405B), um tipo de instância (ml.p5.48xlarge) e seus locais de dados, como armazenamento de dados de treinamento, resultados, registros e assim por diante.

defaults:
- cluster: slurm # assist: slurm / k8s / sm_jobs
- recipes: fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora # title of mannequin to be educated
debug: False # set to True to debug the launcher configuration
instance_type: ml.p5.48xlarge # or different supported cluster cases
base_results_dir: # Location(s) to retailer the outcomes, checkpoints, logs and so on.

Opcionalmente, você pode ajustar parâmetros de treinamento específicos do modelo neste arquivo YAML, que descreve a configuração superb, incluindo o número de dispositivos aceleradores, tipo de instância, precisão de treinamento, técnicas de paralelização e fragmentação, o otimizador e registro para monitorar experimentos por meio de TensorBoard.

run:
  title: llama-405b
  results_dir: ${base_results_dir}/${.title}
  time_limit: "6-00:00:00"
restore_from_path: null
coach:
  gadgets: 8
  num_nodes: 2
  accelerator: gpu
  precision: bf16
  max_steps: 50
  log_every_n_steps: 10
  ...
exp_manager:
  exp_dir: # location for TensorBoard logging
  title: helloworld 
  create_tensorboard_logger: True
  create_checkpoint_callback: True
  checkpoint_callback_params:
    ...
  auto_checkpoint: True # for automated checkpointing
use_smp: True 
distributed_backend: smddp # optimized collectives
# Begin coaching from pretrained mannequin
mannequin:
  model_type: llama_v3
  train_batch_size: 4
  tensor_model_parallel_degree: 1
  expert_model_parallel_degree: 1
  # different model-specific params

Para executar esta receita no SageMaker HyperPod com Slurm, você deve preparar o cluster SageMaker HyperPod seguindo o instrução de configuração do cluster.

Em seguida, conecte-se ao nó principal do SageMaker HyperPod, acesse o controlador Slurm e copie a receita editada. Em seguida, você executa um arquivo auxiliar para gerar um script de envio Slurm para o trabalho que pode ser usado para uma simulação para inspecionar o conteúdo antes de iniciar o trabalho de treinamento.

$ python3 primary.py --config-path recipes_collection --config-name=config

Após a conclusão do treinamento, o modelo treinado é salvo automaticamente no native de dados atribuído.

Para executar esta receita no SageMaker HyperPod com Amazon EKS, clone a receita do repositório GitHub, instale os requisitos e edite a receita (cluster: k8s) no seu laptop computer. Em seguida, crie um hyperlink entre seu laptop computer e a execução do cluster EKS e, posteriormente, use o Interface de linha de comando do HyperPod (CLI) para executar a receita.

$ hyperpod start-job –recipe fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora 
--persistent-volume-claims fsx-claim:information 
--override-parameters 
'{
  "recipes.run.title": "hf-llama3-405b-seq8k-gpu-qlora",
  "recipes.exp_manager.exp_dir": "/information/",
  "cluster": "k8s",
  "cluster_type": "k8s",
  "container": "658645717510.dkr.ecr..amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121",
  "recipes.mannequin.information.train_dir": "",
  "recipes.mannequin.information.val_dir": "",
}'

Você também pode executar receitas em trabalhos de treinamento do SageMaker usando SDK do SageMaker para Python. O exemplo a seguir está executando scripts de treinamento PyTorch em trabalhos de treinamento SageMaker com substituição de receitas de treinamento.

...
recipe_overrides = {
    "run": {
        "results_dir": "/choose/ml/mannequin",
    },
    "exp_manager": {
        "exp_dir": "",
        "explicit_log_dir": "/choose/ml/output/tensorboard",
        "checkpoint_dir": "/choose/ml/checkpoints",
    },   
    "mannequin": {
        "information": {
            "train_dir": "/choose/ml/enter/information/practice",
            "val_dir": "/choose/ml/enter/information/val",
        },
    },
}
pytorch_estimator = PyTorch(
           output_path=,
           base_job_name=f"llama-recipe",
           function=,
           instance_type="p5.48xlarge",
           training_recipe="fine-tuning/llama/hf_llama3_405b_seq8k_gpu_qlora",
           recipe_overrides=recipe_overrides,
           sagemaker_session=sagemaker_session,
           tensorboard_output_config=tensorboard_output_config,
)
...

À medida que o treinamento avança, os pontos de verificação do modelo são armazenados em Serviço de armazenamento simples da Amazon (Amazon S3) com capacidade de checkpoint totalmente automatizada, permitindo recuperação mais rápida de falhas de treinamento e reinicializações de instâncias.

Agora disponível
As receitas do Amazon SageMaker HyperPod agora estão disponíveis no Repositório GitHub de receitas do SageMaker HyperPod. Para saber mais, visite o Página do produto SageMaker HyperPod e o Guia do desenvolvedor de IA do Amazon SageMaker.

Experimente as receitas do SageMaker HyperPod e envie comentários para AWS re:Publish para SageMaker ou por meio de seus contatos habituais do AWS Help.

Channy



Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *