Un marco de investigación de IA autónomo de Andrej Karpathy que permite a un agente de IA (Claude/Codex) modificar, entrenar y evaluar iterativamente un LLM pequeño en una sola GPU durante la noche, ejecutando ~100 experimentos mientras duermes.
autoresearch — Marco de Investigación de LLM de Agentes de IA Autónomos
Resumen
autoresearch es un marco experimental de Andrej Karpathy que automatiza el proceso de iteración de investigación de IA/ML. La idea central es elegantemente simple: dale a un agente de IA (como Claude o Codex) un código de entrenamiento de LLM real y funcional, y deja que proponga cambios de forma autónoma, ejecute experimentos de entrenamiento de 5 minutos, evalúe los resultados y itere, todo sin intervención humana.
Piénsalo como un laboratorio de investigación de IA mínimo y autónomo que se ejecuta durante la noche en una sola GPU, produciendo un registro de ~100 experimentos y (con suerte) un modelo de lenguaje progresivamente mejor por la mañana.
Antecedentes y Motivación
Karpathy abre el README con una visión sardónica del futuro: un mundo donde la investigación de IA ya no la realizan humanos, sino "enjambres autónomos de agentes de IA que se ejecutan en megaestructuras de clústeres de cómputo". El repositorio, escribe, es "la historia de cómo comenzó todo".
La motivación práctica es más terrenal: la iteración de la investigación es lenta porque los humanos necesitan comer, dormir y asistir a reuniones. Este proyecto reemplaza al humano en el bucle con un agente de IA que puede ejecutar experimentos 24/7, haciendo que la investigación de ML sea drásticamente más rápida y automatizada.
Cómo Funciona
El flujo de trabajo es un bucle ajustado de editar → entrenar → evaluar → mantener/descartar:
- El agente lee
program.md: un archivo Markdown que contiene instrucciones de investigación y contexto, escrito y mantenido por el investigador humano. - El agente modifica
train.py: el único archivo Python que contiene la arquitectura del modelo GPT, el optimizador (Muon + AdamW) y el bucle de entrenamiento. El agente puede cambiar cualquier cosa: arquitectura, hiperparámetros, configuración del optimizador, tamaño del lote, etc. - El entrenamiento se ejecuta durante exactamente 5 minutos (tiempo de reloj, excluyendo el inicio/compilación).
- Se calcula la métrica
val_bpb(bits de validación por byte): cuanto menor sea, mejor. Es independiente del tamaño del vocabulario, por lo que los cambios arquitectónicos se pueden comparar de manera justa. - El agente decide si mantener o descartar el cambio, y luego repite.
Esto produce aproximadamente 12 experimentos/hora y ~100 experimentos durante la noche.
Estructura del Repositorio
autoresearch/
├── prepare.py # Fijo: preparación de datos única, entrenamiento de tokenizador BPE, cargador de datos, utilidades de evaluación
├── train.py # Editable por el agente: modelo GPT, optimizador, bucle de entrenamiento
├── program.md # Editable por el humano: instrucciones del agente y contexto de investigación
├── analysis.ipynb # Notebook para analizar los resultados de los experimentos
├── pyproject.toml # Dependencias (gestionadas a través de uv)
└── progress.png # Imagen teaser que muestra el progreso del entrenamiento
Archivos Clave Explicados
| Archivo | Propietario | Propósito |
|---|---|---|
prepare.py |
Humano (fijo) | Descarga fragmentos de datos, entrena el tokenizador BPE, proporciona el cargador de datos y las utilidades de evaluación |
train.py |
Agente de IA | Implementación completa de GPT + bucle de entrenamiento — el sandbox del agente |
program.md |
Humano (iterable) | "Habilidad" de investigación / instrucciones para el agente |
Filosofía de Diseño
1. Un Archivo para Modificar
El agente solo toca train.py. Esto mantiene el alcance manejable y las diferencias fáciles de revisar. También limita el espacio de acción del agente a cambios significativos de ML en lugar de cambios de infraestructura/herramientas.
2. Presupuesto de Tiempo Fijo
Cada experimento se ejecuta durante exactamente 5 minutos de tiempo de entrenamiento de reloj (excluyendo el inicio). Esto asegura:
- Todos los experimentos son directamente comparables independientemente de los cambios arquitectónicos (tamaño del modelo, tamaño del lote, etc.)
- El agente encuentra la mejor configuración de modelo para tu hardware específico
- Rendimiento predecible: ~12 experimentos/hora
La contrapartida: los resultados no son portátiles entre diferentes plataformas de cómputo (una ejecución en H100 no se puede comparar con una ejecución en A100).
3. Autónomo
Sin entrenamiento distribuido, sin archivos de configuración complejos, sin infraestructura de investigación externa. Solo PyTorch + un puñado de paquetes pequeños, una GPU, un archivo, una métrica. Esto hace que el proyecto sea fácil de entender, bifurcar y construir.
4. program.md como Interfaz Humana
En lugar de codificar un agente de investigación desde cero, Karpathy utiliza program.md como una "habilidad" ligera: un archivo Markdown que proporciona al agente de IA contexto, objetivos y restricciones. El humano itera sobre program.md con el tiempo para mejorar el "código de la organización de investigación".
Detalles Técnicos
Modelo y Entrenamiento
- Basado en una versión simplificada de una sola GPU de nanochat
- Utiliza el optimizador Muon + AdamW por defecto (aunque el agente puede cambiar esto)
- Entrena un modelo estilo GPT desde cero en fragmentos de datos de texto descargados
- Tokenizador BPE entrenado en los datos mismos a través de
prepare.py - Métrica de evaluación: val_bpb (bits de validación por byte)
Requisitos
- GPU: Una sola GPU NVIDIA (probado en H100)
- Python: 3.10+
- Gestor de paquetes: uv
Inicio Rápido
# 1. Instalar uv (si aún no está instalado)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. Instalar dependencias
uv sync
# 3. Preparación de datos única (~2 min)
uv run prepare.py
# 4. Ejecutar un experimento de entrenamiento único (~5 min)
uv run train.py
Ejecutando el Agente
Inicia Claude, Codex o cualquier agente de codificación capaz en el directorio del repositorio (con permisos de escritura de archivos), luego solicita:
Echa un vistazo a program.md y comencemos un nuevo experimento. Hagamos primero la configuración.
El agente leerá program.md, propondrá un cambio a train.py, ejecutará el entrenamiento, evaluará el resultado e iterará.
Significado e Impacto
autoresearch es una prueba de concepto para la investigación automatizada de aprendizaje automático a microescala. Si bien existen sistemas AutoML a gran escala, este proyecto es notable por:
- Simplicidad: Todo el código significativo consta de ~3 archivos
- Transparencia: Cada decisión del agente se registra y se puede revisar
- Accesibilidad: Se ejecuta en una sola GPU de consumo/investigación
- Visión: Demuestra la viabilidad de que los agentes de IA realicen investigación genuina de ML de forma autónoma
También sirve como plantilla para "programar tu organización de investigación de IA a través de Markdown", un paradigma que puede convertirse en estándar a medida que los agentes de codificación de IA se vuelven más capaces.
Bifurcaciones Notables
- miolini/autoresearch-macos — Soporte para macOS/MPS
Resumen
| Propiedad | Valor |
|---|---|
| Tipo | Marco de Agente de Investigación de IA Autónomo |
| Uso Principal | Experimentación de entrenamiento de LLM automatizada durante la noche |
| Interfaz del Agente | program.md (instrucciones Markdown) |
| Espacio de Acción del Agente | train.py (modelo GPT + bucle de entrenamiento) |
| Duración del Experimento | 5 minutos (fijo) |
| Rendimiento | ~12 experimentos/hora, ~100 durante la noche |
| Métrica | val_bpb (bits de validación por byte) |
| Hardware | Una sola GPU NVIDIA (probado H100) |
| Licencia | MIT |