- El sistema Autoresearch tiene una estructura de bucle de optimización con restricciones en la que un agente LLM modifica repetidamente
train.py para mejorar el rendimiento, realizando un ciclo automático desde la formulación de hipótesis hasta la evaluación
- Los experimentos se ejecutan en un entorno sandbox basado en contenedores, lo que bloquea el acceso a la red y la ejecución de código arbitrario
- Usando el dataset Ukiyo-eVG, se aprovecharon para el entrenamiento unas 11,000 imágenes de grabados japoneses en madera junto con información de anotaciones, y se logró un rendimiento de Mean Rank 34.30 y R@5 de aproximadamente 53% con un modelo basado en CLIP
- Las mejoras principales provinieron de relajar el parámetro temperature (-113 Mean Rank) y del ajuste de hiperparámetros (-30 Mean Rank), registrando una mejora de rendimiento del 54% mediante 13 commits en 42 experimentos en un día
- El agente LLM resulta efectivo en espacios de exploración claramente definidos, pero después de la etapa de cambios estructurales la inestabilidad aumenta, mostrando límites para una investigación completamente autónoma
Idea principal
- Autoresearch es una estructura de bucle de optimización con restricciones centrada en un agente LLM, donde el agente modifica
train.py para mejorar repetidamente las métricas de evaluación
- El agente lee las instrucciones de
program.md y usa scratchpad.md como memoria de trabajo para registrar el proceso experimental
- La exploración se compone de varias fases, comenzando con ajuste de hiperparámetros, luego pequeños cambios estructurales y, más adelante, expandiéndose a una exploración libre con restricciones mínimas
- Todo el bucle está diseñado como un ciclo de formular hipótesis → modificar código → entrenar → evaluar → hacer commit o revertir → repetir
- Cada experimento está limitado a completarse en unos 5 minutos para fomentar iteraciones rápidas y evitar el sobreajuste
- El agente puede modificar libremente
train.py dentro del límite de tiempo
-
Sandboxing
- Para evitar el riesgo de ejecución de código arbitrario, el bucle de entrenamiento se ejecuta en un entorno de contenedores y se bloquea el acceso a la red
run.sh administra todo el flujo experimental, y Claude Code solo puede modificar train.py y program.md
- La ejecución directa de Python, la instalación con pip, el acceso a la red y
git push, entre otros, están todos restringidos
- La implementación relacionada está publicada en un repositorio de GitHub
Dataset
- Como no fue posible acceder al dataset médico de rayos X usado en la investigación original, se utilizó en su lugar el dataset Ukiyo-eVG
- Incluye unas 11,000 imágenes de grabados japoneses en madera y anotaciones de texto y bounding boxes
- Las bounding boxes se convierten en mapas de calor gaussianos y se agregan a la entrada del modelo, aplicando un método similar al mecanismo de atención experta del artículo original de eCLIP
- Los mapas de calor ayudan al modelo a enfocarse en regiones específicas
Configuración experimental con Claude Code
- Claude Code actualizó el código de la investigación existente a un entorno moderno de Python y escribió la carga del nuevo dataset y el scaffolding del bucle experimental
- También configuró las particiones de validación cruzada, la lógica de evaluación y las ideas iniciales en
program.md
- Se utilizó Mean Rank como métrica de evaluación, y en el informe final también se incluyó Recall@K
- Mean Rank se usó para una evaluación intuitiva, aunque se menciona que Median Rank habría sido más apropiado al ser menos sensible a valores atípicos
- Configuración del modelo: el backbone de CLIP consiste en ViT-Small (22M) + DistilBERT (66M) + HeatmapProcessor, para un total de aproximadamente 90M parámetros
- Entrenamiento: 800 pasos (aprox. 3 minutos por experimento, en una RTX 4090)
- Evaluación: medición de Mean Rank y Recall@K en un conjunto de prueba de 1,000 imágenes
- Rendimiento base: Val Mean Rank 344.68, img→txt R@1 17.2%, txt→img R@1 16.5%
Resultados experimentales
- En un día se realizaron 42 experimentos en total, de los cuales 13 terminaron en commit y 29 en reversión
- Mean Rank bajó de 344.68 a 157.43, una reducción del 54%
- Al entrenar finalmente con todo el dataset, la puntuación de prueba resultó más alta que la de validación
- Esto sugiere que los experimentos cortos de 800 pasos estaban en una situación de underfitting
- Rendimiento final en prueba: Mean Rank 34.30, img→txt R@5 53.0%, txt→img R@5 51.4%
Puntos clave de mejora
-
Corrección del temperature clamp (-113 Mean Rank)
- El parámetro temperature entrenable en el código estaba fijado en 2, y el agente lo relajó, mejorando sustancialmente el rendimiento
- Fue el mayor efecto individual de toda la mejora
-
Optuna++ (-30 Mean Rank)
- Las mejoras posteriores provinieron principalmente del ajuste de hiperparámetros
- Aumentar la dimensión de proyección y reajustar la tasa de aprendizaje aportó una mejora adicional de 30 puntos
- El agente realizó más rápido y de forma más sistemática tareas repetitivas y tediosas que normalmente haría una persona
-
Zona de rendimientos decrecientes
- A partir de la fase 4 (cambios estructurales), la tasa de éxito de las hipótesis del LLM cayó con fuerza
- La mayoría de los intentos de cambiar el mecanismo de atención o probar ideas audaces (moonshot) fracasaron
- En la parte final de la exploración hubo muchos intentos aleatorios
-
La importancia del sandbox
- Claude Code a veces olvidaba sus permisos e intentaba llamadas bash incorrectas, o interrumpía el bucle mientras esperaba el entrenamiento, mostrando comportamientos inestables
- Todavía hay límites para una ejecución completamente autónoma
Observaciones finales
- Durante todo el proceso, el 90% inicial avanzó sin problemas, mientras que el 10% final requirió mucha intervención
- Los agentes LLM pueden realizar investigación de ML de manera efectiva dentro de un espacio de exploración claramente definido
- El bucle de commit y reversión de Autoresearch resulta útil como estrategia de exploración estructurada
- Sin embargo, al expandirse hacia territorios desconocidos, el bucle de optimización se vuelve inestable
- Es posible que la restricción de permitir solo un cambio por experimento haya sido demasiado estricta para la exploración de ideas a gran escala
- Como posibles mejoras futuras, se plantean agregar una etapa de planificación o introducir subagentes (subagents)
- Tras finalizar los experimentos, la colaboración con Claude Code concluyó con el regreso a la rutina diaria
Agradecimientos
- Dataset Ukiyo-eVG: incluye unas 11K imágenes de grabados japoneses en madera y anotaciones de texto y bounding boxes
- Autoresearch: basado en la idea original de Andrej Karpathy
1 comentarios
Comentarios en Hacker News
Si el enlace principal va lento, sugieren probar la versión de archive.is
A menudo uso LLM para explorar investigaciones existentes o pensar problemas de otra manera El 90% de los resultados no aplica a mi dominio, pero el 10% restante sí me ha servido bastante Pero tener un agente que realmente pruebe todo lo que recomienda sale demasiado caro ($$$) En la lista de recomendaciones suelen aparecer muchas librerías de nicho sin mantenimiento Por otro lado, los “consultores expertos” de la empresa también suelen hacer propuestas igual de absurdas, así que casi preferiría que un agente tratara con ellos en mi lugar
Me llamó la atención la expresión “el agente actuó como un algoritmo de optimización de hiperparámetros” La clave es un solo archivo de prompt de sistema llamado
program.md, con una estructura que repite “mejorar train.py → ejecutar entrenamiento → evaluar → registrar resultados” Lo demás no es más que un modelo de ML cualquieraDarle al LLM código en funcionamiento y hacer que repita corrección de bugs, medición de rendimiento y evaluación de cobertura de pruebas es el enfoque estándar de nuestro equipo Me gustó la idea de usar un modelo distinto en cada iteración, porque da la sensación de obtener nuevas perspectivas
Me preguntaba por qué “Autoresearch” se volvió tan comentado Siempre pensé que los cuellos de botella en AI/ML eran la calidad de los datos o los recursos de cómputo, y no sé si esto mejora eso
En la práctica sí funcionó. El LLM encontró bugs y también optimizó
Al ver el registro de commits (enlace de GitHub), la mayoría eran ajustes de hiperparámetros Para eso, siento que el costo en tokens ($$$) no vale la pena
En el paper original usaron datos médicos de rayos X, pero como no tenían acceso, dicen que los reemplazaron por Ukiyo-eVG (11 mil grabados japoneses en madera) Me pareció un cambio raro. También hay muchos datos gratuitos de imágenes médicas en Cancer Imaging Archive
Esperaba que alguien hiciera un experimento así, y me alegró que de verdad lo hicieran Me dio risa la parte de “me cansé de esperar a que terminara el entrenamiento y cerré la conversación” Gracias por compartir los resultados
Esto se parece menos a investigación automatizada y más a prueba y error estructurada Al final, lo importante es la calidad de la métrica de evaluación. Si eso es débil, solo optimizas más rápido en la dirección equivocada