Autoresearch - El framework de investigación automática de Karpathy
(github.com/karpathy)- Un framework autónomo de investigación, autocontenido, que condensa el núcleo de entrenamiento de LLM de nanochat en una sola GPU y un solo archivo de unas 630 líneas, donde un agente de IA repite de forma autónoma experimentos de entrenamiento de LLM durante toda la noche
- El humano modifica el
prompt, y el agente de IA modifica elcódigo de entrenamiento→ entrena con un presupuesto fijo de 5 minutos → compara resultados → repite el bucle de conservar o descartar - El agente funciona en un bucle autónomo sobre una feature branch de git y va acumulando commits en el script de entrenamiento cada vez que logra un validation loss más bajo en elementos como la arquitectura de red neuronal, el optimizador o los hiperparámetros
- El objetivo es diseñar un agente que produzca el mayor avance de investigación posible sin intervención humana
Resumen del proyecto
- Basado en una implementación simplificada de nanochat para una sola GPU, con una estructura en la que un agente de IA modifica y experimenta de forma autónoma con el código de entrenamiento
- El agente repite el ciclo de modificar código → entrenar 5 minutos → revisar resultados → conservar/descartar, mientras el usuario revisa por la mañana los logs de experimentos y el modelo mejorado
- La idea es conectar a este repositorio el agente que se prefiera, como Claude o Codex, hacer que lea
program.mdy luego iniciar los experimentos
Estructura clave de archivos (solo 3 importan)
prepare.py- incluye constantes fijas, preparación de datos (descarga de datos de entrenamiento, entrenamiento del tokenizador BPE) y utilidades de runtime (data loader, evaluación); no es un objetivo de modificacióntrain.py- el único archivo que modifica el agente; incluye el modelo GPT completo, el optimizador (Muon + AdamW) y el bucle de entrenamiento; se pueden modificar la arquitectura, los hiperparámetros, el optimizador, el batch size y cualquier otro elementoprogram.md- archivo base de instrucciones para el agente; lo edita el humano y funciona como una habilidad ligera que define la dirección de investigación autónoma del agente
Principios de diseño
- Modificación de un solo archivo: el agente solo modifica
train.py, lo que mantiene controlable el alcance de los cambios y facilita revisar los diff - Presupuesto fijo de tiempo: sin importar la plataforma, siempre se ejecuta durante exactamente 5 minutos → unas 12 veces por hora, cerca de 100 experimentos mientras se duerme
- Permite comparar directamente experimentos sin importar cambios en tamaño del modelo, batch size, arquitectura, etc.
- Desventaja: no se puede comparar con resultados de ejecución de otras personas si no usaron la misma plataforma
- Autocontención: no tiene dependencias externas aparte de PyTorch y unos pocos paquetes; no hay entrenamiento distribuido; no hay configuración compleja
Requisitos y ejecución
- Requisitos: una sola GPU NVIDIA (probado en H100), Python 3.10+, gestor de paquetes
uv - Por ahora es exclusivo para GPU NVIDIA; no incluye soporte para otras plataformas como CPU o MPS para evitar que el código crezca demasiado
- Si se necesita soporte para una gama más amplia de plataformas, se recomienda consultar el repositorio principal de nanochat; ya existe un fork para macOS (
miolini/autoresearch-macos)
- Si se necesita soporte para una gama más amplia de plataformas, se recomienda consultar el repositorio principal de nanochat; ya existe un fork para macOS (
- Para ejecutar el agente, se corre Claude/Codex u otro dentro del repositorio con todos los permisos desactivados, y se le indica por prompt que lea
program.mdy comience los experimentos
Intención de diseño del program.md base
- El
program.mdbase se mantiene intencionalmente como una línea base mínima - Puede usarse como un método para iterar y mejorar con el tiempo hasta encontrar un “código de organización de investigación” que logre el avance más rápido posible
- La estructura también permite extender de forma clara agregando más agentes o haciendo las instrucciones más específicas
3 comentarios
Por favor, también hagan AMD ROCm.
Tuit de presentación de Karpathy
¿Por qué hace estas cosas en fin de semana, profesor?
Parece que lo sigue haciendo para crear rápido material de clase y lanzar el curso de Eureka Lab antes de que quede desactualizado ;_;
P. D.: hace 7 horas también creó y subió otro más llamado AgentHub 🫢