Nanochat: simplicidad, código abierto y pedagogía en el manifiesto técnico de Karpathy
Andrej Karpathy presentó nanochat, un proyecto que condensa todo el ciclo de entrenamiento e inferencia de un modelo tipo ChatGPT en menos de 8.000 líneas de código y con un costo de apenas 100 dólares.
Andrej Karpathy ha liberado oficialmente nanochat, un repositorio de código abierto que implementa el ciclo de vida completo de un llm (Large Language Model). A diferencia de su predecesor, nanoGPT, que se centraba exclusivamente en el preentrenamiento, nanochat integra todas las etapas necesarias para construir un asistente conversacional: tokenización, entrenamiento, ajuste fino supervisado (SFT), aprendizaje por refuerzo (RL) e inferencia con interfaz web. El sistema permite entrenar un modelo base en 4 horas utilizando un nodo 8xH100.
El proyecto está diseñado para ejecutarse en un único nodo de computación, permitiendo obtener un modelo funcional similar a ChatGPT en aproximadamente cuatro horas de entrenamiento utilizando hardware de alto rendimiento.
Excited to release new repo: nanochat!
— Andrej Karpathy (@karpathy) October 13, 2025
(it's among the most unhinged I've written).
Unlike my earlier similar repo nanoGPT which only covered pretraining, nanochat is a minimal, from scratch, full-stack training/inference pipeline of a simple ChatGPT clone in a single,… pic.twitter.com/LLhbLCoZFt
Especificaciones del pipeline
El repositorio, que consta de aproximadamente 8.000 líneas de código, evita abstracciones complejas para favorecer la legibilidad y la modificación directa. El flujo de trabajo "speedrun" propuesto por Karpathy describe un proceso lineal optimizado para un nodo con 8 GPUs H100.
| Componente | Descripción Técnica |
| Tokenizador | Implementación en Rust entrenada desde cero. |
| Preentrenamiento | Modelo Transformer entrenado sobre el dataset FineWeb. |
| Midtraining | Ajuste sobre conversaciones (SmolTalk), uso de herramientas y razonamiento. |
| SFT | |
| RL | |
| Inferencia | Motor eficiente con KV cache y soporte para sandbox de Python. |
| Costo estimado | ~$100 USD (aprox. 4 horas en 8xH100) para el modelo base. |
El sistema genera automáticamente un reporte de métricas al finalizar el entrenamiento. En las pruebas de rendimiento del modelo base generado en 4 horas (configuración "speedrun"), se reportan los siguientes resultados en los benchmarks:
- MMLU: ~31.1%
- ARC-Easy: ~35.6%
- GSM8K: ~7.5% (tras aplicar RL)
Definición del proyecto
En el documento de presentación del repositorio, Karpathy detalla la filosofía de diseño detrás de nanochat, priorizando la simplicidad sobre la optimización extrema o la escalabilidad industrial.
"Mi objetivo es conseguir que el stack completo de 'línea base sólida' se integre en un repositorio cohesivo, mínimo, legible, hackeable y máximamente bifurcable (forkable). nanochat será el proyecto final de LLM101n (que aún está en desarrollo)".
Respecto a la capacidad del modelo resultante en comparación con iteraciones anteriores de la tecnología GPT, el autor señala:
"Incluso por un coste tan bajo como $\$100$ (~4 horas en un nodo 8XH100), puedes entrenar un pequeño clon de ChatGPT con el que puedes hablar, y que puede escribir historias/poemas y responder preguntas sencillas. Unas ~12 horas superan la métrica CORE de GPT-2. A medida que escalas hacia los $\$1000$ (~41,6 horas de entrenamiento), rápidamente se vuelve mucho más coherente".
Evolución desde nanoGPT
Este lanzamiento representa la continuación técnica de proyectos educativos previos. Mientras que nanoGPT se limitaba a la arquitectura del Transformer y la predicción del siguiente token, nanochat incorpora la capa de alineación necesaria para convertir un modelo base en un asistente útil.
El repositorio introduce scripts específicos como speedrun.sh y miniseries.sh (añadido en la actualización de enero de 2026), que automatizan la descarga de datos, el entrenamiento distribuido y la evaluación. Además, incluye soporte preliminar para "tool use", permitiendo al modelo escribir y ejecutar código Python en un entorno controlado para resolver problemas matemáticos, una capacidad ausente en modelos simples de generación de texto.
Implementación y requisitos
El código está optimizado para PyTorch y diseñado para ejecutarse preferentemente en nodos GPU NVIDIA (A100/H100), aunque incluye soporte experimental para ejecución en CPU y MPS (Apple Silicon) con fines de depuración y educación, aunque con un rendimiento significativamente menor.
El repositorio incluye también una interfaz web ligera que imita la experiencia de usuario de ChatGPT, permitiendo interactuar con el modelo entrenado localmente a través del navegador.