Una biblioteca de optimización de deep learning que facilita y hace más eficiente el entrenamiento distribuido y la inferencia de modelos grandes.
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
Crear un entorno virtual de Python con uv
uv venv nanotron --python 3.11 && source nanotron/bin/activate && uv pip install --upgrade pip - 2
Instalar PyTorch
uv pip install torch --index-url https://download.pytorch.org/whl/cu124 - 3
Instalar las dependencias principales
uv pip install -e . - 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
Sistema de entrenamiento e inferencia distribuidos, basado en PyTorch, para modelos grandes de IA, con paralelismo, optimización de memoria y entrenamiento heterogéneo.
Guía y código en PyTorch para entrenar desde cero un LLM transformer, desde el preentrenamiento hasta SFT, modelado de recompensas, DPO/PPO/GRPO y generación.
Biblioteca de código abierto para entrenar modelos de lenguaje grandes con paralelismo 3D, optimización de memoria ZeRO e integración con Hugging Face, basada en PyTorch y Triton.
Biblioteca para entrenar grandes modelos de lenguaje autorregresivos en GPU, basada en Megatron-LM y DeepSpeed, con paralelismo de modelo, pipeline y datos.
Biblioteca optimizada para GPU y scripts de referencia para entrenar grandes modelos Transformer con paralelismo multidimensional.