Biblioteca de otimização de deep learning que facilita e torna mais eficiente o treinamento distribuído e a inferência de modelos grandes.
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
Criar um ambiente virtual Python com uv
uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip - 2
Instalar o PyTorch
uv pip install torch --index-url https://download.pytorch.org/whl/cu124 - 3
Instalar as dependências principais
uv pip install -e . - 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
Sistema baseado em PyTorch para treinamento e inferência distribuídos de grandes modelos de IA, com paralelismo, otimização de memória e treinamento heterogêneo.
Um guia prático e codebase em PyTorch para treinar um LLM do zero, cobrindo pré-treinamento, SFT, modelagem de recompensas, DPO/PPO/GRPO e geração.
Biblioteca open source para treinar grandes modelos de linguagem com paralelismo 3D, otimização de memória ZeRO e integração com Hugging Face, desenvolvida com PyTorch e Triton.
Biblioteca para treinar grandes modelos de linguagem autorregressivos em GPUs, baseada em Megatron-LM e DeepSpeed, com paralelismo de modelo, pipeline e dados.
Biblioteca otimizada para GPU e scripts de referência para treinar grandes modelos transformer com paralelismo multidimensional.