Repolode
huggingface

huggingface/nanotron

Biblioteca minimalista de Hugging Face para preentrenar LLMs basados en transformers con paralelismo 3D (DP, TP, PP) en clústeres con varias GPU.

Estrellas
2,854
Forks
342
Issues abiertos
159
Último commit
el mes pasado

¿Qué es?

Nanotron es una biblioteca de Python para preentrenar modelos de lenguaje basados en transformers con conjuntos de datos personalizados. Busca mantener una API de entrenamiento sencilla y fácil de leer, sin renunciar a escalar a configuraciones grandes con varias GPU y varios nodos.

La biblioteca implementa paralelismo de datos, tensores y pipeline, además de paralelismo de expertos para modelos Mixture-of-Experts. Ofrece planificaciones de pipeline AFAB y 1F1B, un optimizador ZeRO-1, acumulación de gradientes en FP32 y API explícitas de TP y PP para facilitar la depuración. Entre las configuraciones de ejemplo hay un modelo Llama diminuto, Mamba, MoE, DoReMi y escalado con µTransfer espectral.

El entrenamiento se configura con archivos YAML y se inicia con torchrun; los checkpoints se pueden generar con un script aparte. El proyecto también remite a un Ultrascale Playbook con datos de benchmarks para distintos tamaños de modelo y cantidades de nodos.

Funciones clave

  • 01Paralelismo 3D que combina paralelismo de datos, tensores y pipeline
  • 02Paralelismo de expertos para modelos Mixture-of-Experts
  • 03Planificaciones de pipeline AFAB y 1F1B
  • 04Optimizador ZeRO-1 con acumulación de gradientes en FP32
  • 05Parametrización µTransfer espectral para escalar modelos

Casos de uso

  • Preentrenar un modelo de lenguaje personalizado al estilo Llama en hardware con varias GPU
  • Experimentar a pequeña escala con arquitecturas Mixture-of-Experts o Mamba
  • Escalar el entrenamiento de transformers entre varios nodos con Slurm

Inicio rápido

  1. 1

    Crear un entorno virtual de Python con uv

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

    Instalar PyTorch

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

    Instalar las dependencias principales

    uv pip install -e .
  4. 4

    Entrenar un modelo Llama pequeño en un único nodo con 8 GPU

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

Antes de usarlo

  • Los ejemplos de entrenamiento requieren hardware NVIDIA con varias GPU, como un nodo con 8 H100.
  • La configuración requiere varios pasos adicionales, como instalar las wheels de PyTorch CUDA y compilar flash-attn.
  • Algunas funciones, como el entrenamiento FP8 y ZeRO-3, siguen en la hoja de ruta.

Temas

Preguntas frecuentes

¿Qué es nanotron?
Biblioteca minimalista de Hugging Face para preentrenar LLMs basados en transformers con paralelismo 3D (DP, TP, PP) en clústeres con varias GPU. Nanotron es una biblioteca de Python para preentrenar modelos de lenguaje basados en transformers con conjuntos de datos personalizados. Busca mantener una API de entrenamiento sencilla y fácil de leer, sin renunciar a escalar a configuraciones grandes con varias GPU y varios nodos.
¿nanotron es gratuito? ¿Qué licencia tiene?
nanotron es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿nanotron sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de nanotron fue el 8 oct 2026.
¿Para qué puedo usar nanotron?
Preentrenar un modelo de lenguaje personalizado al estilo Llama en hardware con varias GPU Experimentar a pequeña escala con arquitecturas Mixture-of-Experts o Mamba Escalar el entrenamiento de transformers entre varios nodos con Slurm
¿Cómo se instala nanotron?
Crear un entorno virtual de Python con uv: uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip Instalar PyTorch: uv pip install torch --index-url https://download.pytorch.org/whl/cu124 Instalar las dependencias principales: uv pip install -e . Entrenar un modelo Llama pequeño en un único nodo con 8 GPU: CUDA_DEVICE_MAX_CONNECTIONS=1 torchrun --nproc_per_node=8 run_train.py --config-file examples/config_tiny_llama.yaml
¿Dónde consigo nanotron?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/huggingface/nanotron

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados