Colección bilingüe de más de 100 diagramas originales que explican LLM, RL, RLHF, DPO, GRPO y algoritmos relacionados con modelos grandes.
FareedKhan-dev/train-llm-from-scratch
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.
- Estrellas
- 12,328
- Forks
- 1,816
- Issues abiertos
- 2
- Último commit
- hace 18 días
¿Qué es?
Este repositorio implementa desde cero un modelo de lenguaje transformer en PyTorch puro, basado en el diseño original de «Attention is All You Need», y recorre todo el proceso desde el texto sin procesar hasta un modelo conversacional. Incluye un tokenizador BPE a nivel de bytes, un decodificador clásico al estilo GPT-2 y una variante moderna con RoPE, RMSNorm, SwiGLU, atención de consultas agrupadas y Mixture of Experts. Todo está programado a mano, sin usar los entrenadores de Hugging Face.
Las etapas de postentrenamiento también están implementadas desde cero: ajuste fino supervisado con una máscara de pérdida solo para el asistente, un modelo de recompensas Bradley-Terry, DPO, ORPO, KTO, PPO con GAE y GRPO. Cada etapa tiene su propio script de preparación de datos y configuración JSON. Los presets más pequeños, como un modelo TinyStories diminuto, pueden entrenarse en minutos en la CPU de una laptop; las configuraciones más grandes requieren una GPU.
Funciones clave
- 01Construye desde cero bloques de atención, MLP y transformer en PyTorch.
- 02Incluye un tokenizador BPE a nivel de bytes implementado en el repositorio.
- 03Cubre SFT con una máscara de pérdida solo para el asistente en datos conversacionales.
- 04Implementa modelado de recompensas, DPO/ORPO/KTO, PPO y GRPO.
- 05Ofrece un preset diminuto que se entrena en la CPU de una laptop, sin GPU.
Casos de uso
- Aprender paso a paso cómo funciona un modelo de lenguaje transformer y su ciclo de entrenamiento.
- Preentrenar un LLM pequeño en una sola GPU o en una laptop, a modo de experimento.
- Estudiar métodos de postentrenamiento como DPO, PPO y GRPO en una base de código fácil de leer.
- Comparar componentes clásicos y modernos de transformers dentro del mismo flujo de trabajo.
Inicio rápido
- 1
Clona el repositorio
git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git - 2
Entra en la carpeta del proyecto
cd train-llm-from-scratch - 3
Instala el proyecto en modo editable
pip install -e . - 4
Entrena un modelo pequeño en la CPU de un portátil después de preparar los datos
python scripts/train_transformer.py --preset tiny --arch modern
Antes de usarlo
- Las configuraciones de modelos grandes necesitan una GPU, y un modelo de mil millones de parámetros no cabe en una T4 gratuita.
- Algunas etapas dependen de conjuntos de datos públicos que deben descargarse primero.
Temas
Preguntas frecuentes
- ¿Qué es train-llm-from-scratch?
- 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. Este repositorio implementa desde cero un modelo de lenguaje transformer en PyTorch puro, basado en el diseño original de «Attention is All You Need», y recorre todo el proceso desde el texto sin procesar hasta un modelo conversacional. Incluye un tokenizador BPE a nivel de bytes, un decodificador clásico al estilo GPT-2 y una variante moderna con RoPE, RMSNorm, SwiGLU, atención de consultas agrupadas y Mixture of Experts. Todo está programado a mano, sin usar los entrenadores de Hugging Face.
- ¿train-llm-from-scratch es gratuito? ¿Qué licencia tiene?
- train-llm-from-scratch es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿train-llm-from-scratch sigue mantenido?
- Mantenimiento activo. El último commit de train-llm-from-scratch fue el 2 oct 2026.
- ¿Para qué puedo usar train-llm-from-scratch?
- Aprender paso a paso cómo funciona un modelo de lenguaje transformer y su ciclo de entrenamiento. Preentrenar un LLM pequeño en una sola GPU o en una laptop, a modo de experimento. Estudiar métodos de postentrenamiento como DPO, PPO y GRPO en una base de código fácil de leer. Comparar componentes clásicos y modernos de transformers dentro del mismo flujo de trabajo.
- ¿Cómo se instala train-llm-from-scratch?
- Clona el repositorio: git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git Entra en la carpeta del proyecto: cd train-llm-from-scratch Instala el proyecto en modo editable: pip install -e . Entrena un modelo pequeño en la CPU de un portátil después de preparar los datos: python scripts/train_transformer.py --preset tiny --arch modern
- ¿Dónde consigo train-llm-from-scratch?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/FareedKhan-dev/train-llm-from-scratch
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Herramienta CLI para ajustar y seguir entrenando LLM con una sola configuración YAML, con opciones para usar GPU de consumo con poca VRAM.
Biblioteca de Python que ejecuta modelos de lenguaje grandes capa por capa para que los modelos de 70B puedan inferir en una sola GPU de 4 GB, sin cuantización.
NEO es una familia de modelos nativos de visión y lenguaje que procesan píxeles y palabras en una arquitectura densa sin encoder, e incluye código de entrenamiento y evaluación.
Motor de entrenamiento unificado para modelos multimodales, compatible con VLM, difusión y entrenamiento de LLM con FSDP2, Muon y kernels de Liger.
Lista seleccionada de proveedores de API para LLM con planes gratuitos permanentes para inferencia de texto, con endpoints, modelos y límites de uso.