Repolode
huggingface

huggingface/nanotron

Biblioteca minimalista da Hugging Face para pré-treinar LLMs transformer com paralelismo 3D (DP, TP, PP) em clusters multi-GPU.

Estrelas
2,855
Forks
342
Issues abertas
159
Último commit
há 30 dias

O que é?

Nanotron é uma biblioteca Python para pré-treinar modelos de linguagem transformer com datasets personalizados. Seu objetivo é manter a API de treinamento simples e legível, com suporte a setups grandes com várias GPUs e vários nós.

A biblioteca implementa paralelismo de dados, tensores e pipeline, além de paralelismo de especialistas para modelos Mixture-of-Experts. Ela oferece os escalonamentos de pipeline AFAB e 1F1B, um otimizador ZeRO-1, acumulação de gradientes em FP32 e APIs explícitas de TP e PP para facilitar a depuração. As configurações de exemplo abrangem um modelo Llama pequeno, Mamba, MoE, DoReMi e o escalonamento spectral µTransfer.

O treinamento é iniciado com arquivos de configuração YAML usando torchrun, e há um script separado para gerar checkpoints. O projeto também indica um Ultrascale Playbook com dados de benchmark para diferentes tamanhos de modelo e quantidades de nós.

Recursos principais

  • 01Paralelismo 3D que combina paralelismo de dados, tensores e pipeline
  • 02Paralelismo de especialistas para modelos Mixture-of-Experts
  • 03Escalonamentos de pipeline AFAB e 1F1B
  • 04Otimizador ZeRO-1 com acumulação de gradientes em FP32
  • 05Parametrização spectral µTransfer para escalar modelos

Casos de uso

  • Pré-treinar um modelo de linguagem personalizado no estilo Llama em hardware com várias GPUs
  • Experimentar arquiteturas Mixture-of-Experts ou Mamba em pequena escala
  • Escalar o treinamento de transformers entre vários nós usando Slurm

Início rápido

  1. 1

    Criar um ambiente virtual Python com uv

    uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip
  2. 2

    Instalar o PyTorch

    uv pip install torch --index-url https://download.pytorch.org/whl/cu124
  3. 3

    Instalar as dependências principais

    uv pip install -e .
  4. 4

    Treinar um modelo Llama pequeno em um único nó com 8 GPUs

    CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml

Antes de usar

  • Os exemplos de treinamento pressupõem hardware NVIDIA com várias GPUs, como um nó com 8 H100.
  • A configuração exige algumas etapas extras, incluindo as wheels CUDA do PyTorch e a compilação do flash-attn.
  • Alguns recursos, como treinamento FP8 e ZeRO-3, ainda estão no roadmap.

Tópicos

Perguntas frequentes

O que é nanotron?
Biblioteca minimalista da Hugging Face para pré-treinar LLMs transformer com paralelismo 3D (DP, TP, PP) em clusters multi-GPU. Nanotron é uma biblioteca Python para pré-treinar modelos de linguagem transformer com datasets personalizados. Seu objetivo é manter a API de treinamento simples e legível, com suporte a setups grandes com várias GPUs e vários nós.
nanotron é gratuito? Qual é a licença?
nanotron é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
nanotron ainda é mantido?
Manutenção ativa. O último commit de nanotron foi em 8 de out. de 2026.
Para que posso usar nanotron?
Pré-treinar um modelo de linguagem personalizado no estilo Llama em hardware com várias GPUs Experimentar arquiteturas Mixture-of-Experts ou Mamba em pequena escala Escalar o treinamento de transformers entre vários nós usando Slurm
Como instalar nanotron?
Criar um ambiente virtual Python com uv: uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip Instalar o PyTorch: uv pip install torch --index-url https://download.pytorch.org/whl/cu124 Instalar as dependências principais: uv pip install -e . Treinar um modelo Llama pequeno em um único nó com 8 GPUs: CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
Onde consigo nanotron?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/huggingface/nanotron

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados