Repolode
FareedKhan-dev

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. 1

    Clona el repositorio

    git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git
  2. 2

    Entra en la carpeta del proyecto

    cd train-llm-from-scratch
  3. 3

    Instala el proyecto en modo editable

    pip install -e .
  4. 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