11 de agosto de 2026 · Por YasKad
karpathy/autoresearch

autoresearch: un laboratorio nocturno para que un agente itere sobre un modelo

karpathy/autoresearch · 96.768★ · 13.524 forks

Todo lo que hay que saber sobre karpathy/autoresearch: un experimento mínimo de entrenamiento de modelos de lenguaje en el que un agente modifica un único archivo, mide el resultado y conserva o revierte cada intento.


Qué es autoresearch

autoresearch es un repositorio de Andrej Karpathy para dejar que un agente de IA ejecute experimentos de entrenamiento de un modelo de lenguaje durante horas. La descripción oficial lo resume como investigación automática sobre el entrenamiento de nanochat en una sola GPU; el README concreta el ciclo: modificar código, entrenar cinco minutos, medir, conservar o descartar y repetir.

No intenta ser un sistema general de AutoML ni un producto de laboratorio distribuido. Es una reducción deliberada del problema a un entorno pequeño y medible: una GPU NVIDIA, un modelo GPT, una métrica (val_bpb, bits por byte de validación; cuanto menor, mejor) y una superficie de modificación controlada.

Diagrama circular futurista que muestra el ciclo de cuatro pasos: modificar código, entrenar cinco minutos, medir la métrica y conservar o revertir.

El origen: una ficción de enjambres y un prototipo mínimo

GitHub registra la creación de karpathy/autoresearch el 6 de marzo de 2026. Su autor es Andrej Karpathy (karpathy), cuya cuenta de GitHub se presenta como una persona interesada en entrenar redes neuronales profundas con grandes conjuntos de datos y ubica su perfil en Stanford. El README está fechado de forma narrativa en marzo de 2026: abre imaginando un futuro de enjambres autónomos de agentes que modifican código más allá de la comprensión humana y presenta este repositorio como el comienzo de esa historia.

La propuesta nace como una simplificación de karpathy/nanochat: el README dice explícitamente que el código de entrenamiento es una versión reducida de ese repositorio. La tensión que intenta resolver no es una carencia de un agente concreto, sino el coste de hacer investigación iterativa manualmente: el humano deja de editar archivos Python en cada ronda y, en su lugar, diseña program.md, el documento que da contexto e instrucciones operativas al agente.

El primer envío de Hacker News, 47291123, enlazó el repositorio y obtuvo 208 puntos y 20 comentarios. Allí ya apareció la discusión que acompañaría al lanzamiento: si esto representa investigación guiada por agentes o una forma de ajuste de hiperparámetros envuelta en un bucle de lenguaje natural.

Filosofía y principios

El diseño documentado se apoya en principios muy concretos:

  • Una única variable de éxito. val_bpb es la fuente de verdad y se compara bajo un presupuesto fijo de cinco minutos; el README sostiene que no depende del tamaño del vocabulario y facilita comparar cambios arquitectónicos.
  • Cambios con alcance estrecho. El agente solo modifica train.py; prepare.py, que contiene preparación, carga de datos, evaluación y constantes, no se toca.
  • Comparabilidad en la misma máquina, no entre máquinas. Cada ejecución consume el mismo tiempo de entrenamiento, pero los resultados quedan optimizados para la plataforma concreta y no son comparables directamente con los de otra GPU.
  • Conservar evidencia, revertir el resto. Cada intento se registra con una confirmación de Git y en results.tsv; un resultado peor o igual devuelve la rama al estado previo.
  • Simplicidad como criterio adicional. program.md pide ponderar la complejidad: una mejora pequeña que añade código frágil puede no merecer conservarse, mientras que simplificar sin empeorar la métrica sí cuenta como avance.

Visualización en neón de la métrica val_bpb descendiendo como una única barra de luz, con métricas alternativas tachadas al fondo.

Esto convierte el repositorio en un ejemplo de optimización empírica acotada, no en una demostración de que el agente produzca conocimiento científico generalizable por sí solo.

Árbol de Git estilizado como una ciudad de neón, con una mano robótica editando train.py mientras prepare.py permanece protegido tras una barrera roja.

Cómo funciona

El flujo principal tiene tres piezas:

ArchivoPapel documentado
prepare.pyDescarga datos, entrena el tokenizador BPE, proporciona carga de datos y evaluación; es de solo lectura para el agente.
train.pyContiene modelo GPT, optimizador Muon + AdamW y bucle de entrenamiento; es el único archivo que el agente puede modificar.
program.mdInstrucciones para el agente; es el archivo que modifica el humano para definir la organización de investigación.

El inicio manual documentado es uv sync, uv run prepare.py y uv run train.py. Requiere Python 3.10 o superior, uv y una GPU NVIDIA; el README declara pruebas en H100. Después se puede iniciar Claude, Codex u otro agente en el repositorio, sin permisos, y pedirle que lea program.md y prepare un experimento.

Ilustración dividida: una mano humana escribe program.md en una tableta digital mientras una entidad de IA lee las instrucciones y manipula una matriz de código.

program.md prescribe un protocolo preciso: crear una rama autoresearch/<etiqueta>, comprobar la caché, inicializar results.tsv, ejecutar primero la línea base y después repetir editar → confirmar → uv run train.py > run.log 2>&1 → extraer val_bpb y VRAM → registrar → conservar o revertir. Una ejecución que supere diez minutos se trata como fallo. Si un cambio falla por falta de memoria o error de código, se anota como crash; el documento pide continuar de forma autónoma hasta que una persona lo interrumpa.

El train.py recuperado confirma la implementación de un GPT en PyTorch para una única GPU, con atención Flash Attention 3 y selección de un repositorio de kernels según la capacidad CUDA. No es una afirmación de portabilidad: el README declara que, en su forma principal, el código requiere una GPU NVIDIA y prefiere no ampliar el núcleo con soporte para CPU o MPS.

Clúster de GPU en neón centrado en una única NVIDIA H100, con paneles holográficos que muestran uso de VRAM y una cuenta regresiva de cinco minutos.

Estado oficial y semioficial

No se recuperó evidencia de que autoresearch haya sido aceptado en un mercado oficial de un proveedor ni de una certificación o respaldo formal de Anthropic, OpenAI, NVIDIA u otra empresa. El README sí nombra Claude y Codex como posibles agentes que pueden ejecutar el protocolo, pero eso describe compatibilidad de uso, no una integración oficial.

Su condición práctica es la de referencia de facto para un patrón: la búsqueda de GitHub recuperó numerosas extensiones que se describen explícitamente como inspiradas por Karpathy y el repositorio documenta puertos notables. Esa difusión no equivale a estandarización formal ni valida la calidad de los resultados generados por cada derivado.

El ecosistema

Repositorios relacionados del autor

  • karpathy/nanochat es el repositorio padre técnico según el README; autoresearch simplifica su entrenamiento. La API de GitHub lo mostraba con 56.896 estrellas y 7.876 bifurcaciones.
  • karpathy/nanoGPT, descrito por su autor como un repositorio simple y rápido para entrenar o ajustar GPT de tamaño medio, tenía 61.807 estrellas y 10.638 bifurcaciones.
  • karpathy/llm.c, entrenamiento de modelos de lenguaje en C/CUDA, tenía 30.711 estrellas y 3.716 bifurcaciones.

Son proyectos del mismo autor, no componentes requeridos para ejecutar autoresearch; la dependencia narrativa y técnica que el README confirma directamente es con nanochat.

Puertos, bifurcaciones y extensiones comunitarias

El README oficial destaca cuatro puertos: miolini/autoresearch-macos para macOS (2.349 estrellas, 336 bifurcaciones); trevin-creator/autoresearch-mlx, un puerto para Apple Silicon/MLX hallado en la búsqueda (1.775, 359); jsegov/autoresearch-win-rtx para Windows (703, 143); y andyluo7/autoresearch para AMD (68, 17).

Mapa de red futurista con el nodo central karpathy/autoresearch conectado a nodos satélite que representan los puertos para macOS, Apple Silicon, Windows y AMD.

La consulta de bifurcaciones también recuperó:

  • sanbuphy/autoresearch-cn, adaptación en chino para entrenar y ajustar un modelo de lenguaje con un agente en una GPU (190 estrellas, 18 bifurcaciones).
  • mishig25/hf-autoresearch, bifurcación para infraestructura de Hugging Face (177, 17).
  • eli-labz/ResearchSwarm, que se describe como enjambre autónomo para aproximadamente cien experimentos nocturnos y como bifurcación de karpathy/autoresearch (359, 1).
  • ncdrone/autoresearch-ANE, variante para Neural Engine de Apple (57, sin bifurcaciones en la respuesta recuperada).

La búsqueda global de GitHub muestra además herramientas que extienden el patrón en lugar de ser bifurcaciones del código base: davebcn87/pi-autoresearch (7.307 estrellas, 431 bifurcaciones) como extensión del bucle para Pi; uditgoenka/autoresearch (5.664, 429) como habilidad para Claude Code; leo-lilinxiao/codex-autoresearch (2.045, 117) como habilidad para Codex; RightNow-AI/autokernel (1.496, 155) para optimizar kernels Triton; y evo-hq/evo (1.358, 102) para convertir una base de código en un bucle de medida y búsqueda con subagentes. Sus descripciones proceden de la búsqueda de GitHub; no se infiere compatibilidad, patrocinio ni calidad más allá de lo que ellas declaran.

La expansión también ha producido catálogos, como webfuse-com/awesome-autoresearch (2.345, 176) y WecoAI/awesome-autoresearch (1.027, 75), lo que sirve como señal de ecosistema, no como una fuente oficial del proyecto.

Números del repo

Medición: 3 de agosto de 2026, API de GitHub.

MétricaValor
Estrellas92.838
Bifurcaciones13.218
Suscriptores reales721
Commits36
Incidencias abiertas indicadas por la API196
Lenguaje principalPython
LicenciaNo indicada por la API
Creación6 de marzo de 2026
Último envío de código26 de marzo de 2026
Última actualización de metadatos3 de agosto de 2026
Publicaciones de GitHubNinguna recuperada

Los contribuidores principales que devolvió la API son karpathy con 28 contribuciones, seguido por nishantpurohit04, dipeshbabu, hughdbrown, marcinbogdanski, dumko2001, haosenwang1018, indianspeedster y kaizen-38, con una contribución cada uno en la lista recuperada. El total de 36 commits se obtuvo del enlace de última página de la paginación de la API.

Hay dos cautelas: watchers_count en la respuesta general replica el número de estrellas, por lo que se informa subscribers_count como el número de suscriptores reales. Además, open_issues_count puede incluir solicitudes de cambios abiertas, por lo que 196 no es necesariamente un conteo exclusivo de incidencias. Aunque updated_at coincide con la fecha de esta medición, el último envío de código que devuelve la API es del 26 de marzo de 2026; una actualización de metadatos no prueba actividad posterior en el código.

Cómo contribuir

No se recuperó un archivo de contribución ni una guía humana de ramas, pruebas o plantilla de solicitud de cambios. La API permite bifurcar el repositorio y admite solicitudes de cambios, y el README invita a crear bifurcaciones o discusiones para otras plataformas; eso describe una vía abierta, no un proceso de mantenimiento garantizado.

Para contribuir al experimento tal como está diseñado, program.md sí define el procedimiento del agente: rama nueva, edición exclusiva de train.py, confirmación de cada intento, registro no versionado en results.tsv y reversión de resultados no mejores. Quien proponga cambios al repositorio debe revisar por separado las discusiones y solicitudes de cambios actuales, ya que no se recuperó una política oficial de aceptación.

Cómo lo recibió la comunidad

La recepción recuperada combina curiosidad técnica, reutilización y críticas metodológicas concretas:

  • En el hilo inicial 47291123, enviado por simonpure (208 puntos, 20 comentarios), mikert89 valoró los entornos donde un modelo aprende por prueba y error con verificación objetiva. En cambio, abeppu preguntó si las aparentes mejoras eran en realidad cambios de hiperparámetros y pidió compararlo con BayesOpt a igual número de ensayos de cinco minutos. gmerc objetó que confundir búsqueda de fuerza bruta con investigación convierte la métrica en un posible caso de la ley de Goodhart. elikoga señaló el riesgo de que el mejor bpb a cinco minutos favorezca modelos demasiado pequeños para ciertos comportamientos emergentes.

Ilustración conceptual de un ojo robótico observando una fórmula matemática cambiante, rodeado de advertencias holográficas sobre BayesOpt y la ley de Goodhart.

  • El análisis de escalado de SkyPilot fue discutido en 47442435, enviado por hopechong (237 puntos, 17 comentarios recuperados; la búsqueda de historias informaba 94 comentarios). zhwu destacó que el agente, sin recibir esa instrucción, usó H100 para filtrar ideas y H200 para validar candidatas. La objeción de augment_me fue que la comparación privilegiaba tiempo de pared: a igualdad de horas de GPU, la ejecución secuencial parecía aproximadamente dos veces más eficiente. herf cuestionó que seleccionar por progreso temprano en cinco minutos pueda perjudicar el resultado asintótico. Estas son opiniones de los participantes, no resultados de una evaluación independiente.
  • La difusión práctica también es visible en 47343935: austinbaggio presentó Autoresearch@home y recibió 79 puntos y 19 comentarios. Es evidencia de derivación posterior, no una prueba de que el repositorio base supere a otros optimizadores.

autoresearch frente a otras propuestas

PropuestaCoincidencia verificableDiferencia verificable
karpathy/nanochatAmbos pertenecen a Karpathy y el README confirma que autoresearch simplifica su entrenamiento.nanochat es el proyecto de entrenamiento padre; autoresearch añade el protocolo de agente, el archivo de instrucciones y la regla conservar/revertir.
davebcn87/pi-autoresearchLa búsqueda lo describe como una extensión autónoma del bucle de experimentos.Está orientado a Pi; no es el entorno de entrenamiento de una sola GPU que documenta el repositorio original.
RightNow-AI/autokernelLa búsqueda lo describe como aplicación del patrón a iteraciones automáticas con un objetivo medible.Optimiza kernels Triton de modelos PyTorch, mientras el original modifica el modelo y bucle de entrenamiento GPT.
evo-hq/evoAmbos usan cambios, una medida y repetición para mejorar código.Evo declara instrumentación de la base de código y búsqueda en árbol con subagentes; autoresearch fija un único agente, un archivo editable y una trayectoria lineal de conservar o revertir.

La comparación central no es entre asistentes conversacionales, sino entre mecanismos de búsqueda. autoresearch aporta restricciones explícitas para que una exploración de lenguaje natural sea auditable en una métrica local; no demuestra por sí mismo que sea más eficiente que BayesOpt, búsqueda aleatoria u otros métodos de optimización. Esa comparación fue precisamente una crítica explícita de la comunidad.

Casos de uso y a quién puede ayudar este repositorio

  • Investigadores y personas de ingeniería de modelos con una GPU NVIDIA pueden convertir una noche de cómputo en una secuencia de pruebas sobre arquitectura, optimizador, tamaño de lote o hiperparámetros, siempre que acepten como objetivo local val_bpb bajo cinco minutos.
  • Equipos que quieren prototipar un arnés de agente verificable pueden estudiar la división entre program.md, la superficie editable train.py, la evaluación bloqueada en prepare.py y el registro results.tsv. Es una plantilla concreta para evitar que el agente cambie a la vez el experimento y el medidor.
  • Usuarios de macOS, Windows, AMD o Apple Silicon pueden partir de los puertos que el README o la búsqueda de bifurcaciones identifican, pero deben tratar sus métricas como específicas de su máquina y revisar el código del derivado antes de adoptarlo.
  • Quienes optimizan otros dominios cuantificables pueden tomar el patrón conservar/revertir como inspiración, como hacen las extensiones para Codex, kernels o bases de código. Necesitan definir antes una métrica resistente a manipulación y comprobaciones independientes: la crítica comunitaria muestra que un único marcador temprano puede incentivar mejoras estrechas o engañosas.

Terminal futurista ejecutando uv run train.py, con paneles holográficos que muestran la creación de una rama Git y el archivo run.log llenándose de datos.

Recursos


Nota: este artículo combina el README, program.md y código fuente recuperados de karpathy/autoresearch, la API de GitHub, las búsquedas de repositorios y Hacker News consultados el 3 de agosto de 2026. Las cifras cambian con el tiempo.

Comentarios