- O sistema Autoresearch tem a estrutura de um loop de otimização com restrições em que um agente LLM modifica repetidamente o
train.py para melhorar o desempenho, realizando um ciclo automático desde a formulação de hipóteses até a avaliação
- Os experimentos são executados em um ambiente sandbox baseado em contêineres, bloqueando acesso à rede e execução arbitrária de código
- Usando o dataset Ukiyo-eVG, o treinamento aproveitou cerca de 11 mil imagens de xilogravuras japonesas e suas anotações, alcançando Mean Rank 34.30 e R@5 de cerca de 53% com um modelo baseado em CLIP
- As principais melhorias vieram do afrouxamento do parâmetro temperature (-113 de Mean Rank) e do ajuste de hiperparâmetros (-30 de Mean Rank), registrando uma melhora de 54% no desempenho com 13 commits em 42 experimentos ao longo de um dia
- O agente LLM é eficaz em espaços de busca claramente definidos, mas, após a etapa de mudanças estruturais, a instabilidade aumenta, revelando limites para uma pesquisa totalmente autônoma
Ideia central
- Autoresearch é uma estrutura de loop de otimização com restrições centrada em um agente LLM, em que o agente modifica o
train.py para melhorar repetidamente as métricas de avaliação
- O agente lê as instruções em
program.md e usa scratchpad.md como bloco de notas de trabalho para registrar o processo experimental
- A busca é composta por várias fases, começando com ajuste de hiperparâmetros, passando por pequenas mudanças estruturais e depois se expandindo para uma exploração livre com o mínimo de restrições
- O loop completo foi projetado como um ciclo de formulação de hipótese → modificação de código → treinamento → avaliação → commit ou rollback → repetição
- Cada experimento é limitado a cerca de 5 minutos para incentivar iteração rápida e evitar overfitting
- O agente pode modificar livremente o
train.py dentro do limite de tempo
-
Sandbox
- Para evitar o risco de execução arbitrária de código, o loop de treinamento roda em um ambiente de contêiner com acesso à rede bloqueado
- O
run.sh gerencia todo o fluxo experimental, e o Claude Code só pode modificar train.py e program.md
- Execução direta de Python, instalação via pip, acesso à rede, git push etc. são todos restringidos
- A implementação relacionada está disponível publicamente no repositório GitHub
Dataset
- Como não foi possível acessar o dataset médico de raios X usado na pesquisa original, foi adotado um novo dataset: o Ukiyo-eVG
- Inclui cerca de 11 mil imagens de xilogravuras japonesas e anotações de frases com bounding boxes
- As bounding boxes foram convertidas em mapas de calor gaussianos e adicionadas à entrada do modelo, aplicando uma abordagem semelhante ao mecanismo de atenção especializada do artigo original do eCLIP
- Os mapas de calor ajudam o modelo a se concentrar em regiões específicas
Configuração experimental com Claude Code
- O Claude Code atualizou o código da pesquisa existente para um ambiente Python moderno e escreveu o carregamento do novo dataset e o scaffolding do loop experimental
- Também configurou divisões de validação cruzada, a lógica de avaliação e as ideias iniciais em
program.md
- A métrica de avaliação usada foi Mean Rank, e o relatório final também incluiu Recall@K
- O texto observa que Mean Rank foi usado por ser intuitivo, mas que Median Rank provavelmente teria sido mais apropriado por ser menos sensível a outliers
- Configuração do modelo: backbone CLIP com ViT-Small (22M) + DistilBERT (66M) + HeatmapProcessor, totalizando cerca de 90M de parâmetros
- Treinamento: 800 steps (cerca de 3 minutos por experimento, em uma RTX 4090)
- Avaliação: medição de Mean Rank e Recall@K em um conjunto de teste de 1.000 imagens
- Desempenho de referência: Val Mean Rank 344.68, img→txt R@1 17.2%, txt→img R@1 16.5%
Resultados experimentais
- Ao longo de um dia, foram realizados 42 experimentos no total, com 13 commits e 29 rollbacks
- O Mean Rank caiu de 344.68 para 157.43, uma redução de 54%
- No treinamento final com o dataset completo, a pontuação de teste foi maior que a de validação
- Isso sugere que os experimentos curtos de 800 steps estavam em estado de underfitting
- Desempenho final no teste: Mean Rank 34.30, img→txt R@5 53.0%, txt→img R@5 51.4%
Principais pontos de melhoria
-
Correção do temperature clamp (-113 de Mean Rank)
- O parâmetro temperature treinável no código estava fixado em 2, e o agente o afrouxou, melhorando bastante o desempenho
- Foi o maior efeito individual de toda a melhoria
-
Optuna++ (-30 de Mean Rank)
- As melhorias seguintes vieram principalmente de ajuste de hiperparâmetros
- O aumento da dimensão de projeção e o reajuste da taxa de aprendizado trouxeram uma melhoria adicional de 30 pontos
- O agente executou de forma mais rápida e sistemática um trabalho tedioso que humanos costumam repetir
-
Região de retornos decrescentes
- A partir da fase 4 (mudanças estruturais), a taxa de sucesso das hipóteses do LLM caiu drasticamente
- Mudanças no mecanismo de atenção ou tentativas de ideias ousadas (moonshot) falharam na maioria dos casos
- Na parte final da busca, houve muitas tentativas aleatórias
-
A importância do sandbox
- O Claude Code às vezes esquecia as permissões e tentava chamadas bash incorretas, ou interrompia o loop enquanto aguardava o treinamento, mostrando comportamento instável
- Ainda há limites para uma execução totalmente autônoma
Observações finais
- Ao longo de todo o processo, os 90% iniciais correram bem, mas os 10% finais exigiram muita intervenção
- O agente LLM consegue conduzir pesquisa em ML de forma eficaz dentro de um espaço de busca claramente definido
- O loop de commit e rollback do Autoresearch é útil como estratégia de exploração estruturada
- No entanto, ao se expandir para território desconhecido, o loop de otimização se torna instável
- É possível que a restrição de permitir apenas uma mudança por experimento tenha sido rígida demais para a exploração de ideias em larga escala
- No futuro, adicionar uma etapa de planejamento ou introduzir subagentes (subagents) é apresentado como possível caminho de melhoria
- Após o fim dos experimentos, a colaboração com Claude Code terminou com um retorno à rotina cotidiana
Agradecimentos
- Dataset Ukiyo-eVG: inclui cerca de 11 mil imagens de xilogravuras japonesas e anotações de frases com bounding boxes
- Autoresearch: baseado na ideia original de Andrej Karpathy
1 comentários
Comentários do Hacker News
Se o link principal estiver lento, sugerem tentar a versão archive.is
Eu frequentemente uso LLMs para explorar pesquisas existentes ou pensar em problemas de outra forma
90% dos resultados não se encaixam no meu domínio, mas os 10% restantes foram bem úteis
Mas ter um agente que realmente tente tudo o que o LLM recomenda custa caro demais ($$$)
A lista de recomendações frequentemente inclui muitas bibliotecas de nicho sem manutenção
Por outro lado, os “consultores especialistas” da empresa também costumam fazer sugestões absurdas parecidas, então eu preferiria que o agente lidasse com eles no meu lugar
Mas isso só faz sentido quando cada teste é rápido. No meu trabalho, um teste leva meio dia, então é difícil deixar rodando durante a noite
Quando vejo gente configurando coisas como servidores MCP ou AGENTS.md, isso me parece prova de que o LLM não funciona como anunciado
Se for bem ajustado para um fluxo de trabalho específico, pode ser excelente, mas tenho dúvidas se isso consegue escalar
Será que isso pode virar um modelo de negócios sustentável sem uma montanha de dinheiro bancando treinamento e infraestrutura?
A frase “o agente se comportou como um algoritmo de otimização de hiperparâmetros” chamou atenção
O ponto central é um único arquivo de prompt de sistema chamado
program.md, numa estrutura que repete “melhorar train.py → executar treino → avaliar → registrar resultados”O resto é apenas um modelo de ML qualquer
Dar código em funcionamento para um LLM e repetir correção de bugs, medição de desempenho e avaliação de cobertura de testes é a abordagem padrão da nossa equipe
Gostei da sensação de obter novas perspectivas ao usar um modelo diferente a cada iteração
Fiquei me perguntando por que “Autoresearch” virou tanto assunto
Sempre achei que o gargalo em AI/ML fosse qualidade de dados ou recursos computacionais, então não sei se isso melhora esse ponto
Houve abordagens como otimização bayesiana ou Gaussian Process, mas no fim a busca aleatória funcionava melhor
A diferença é que um LLM consegue olhar a literatura e fazer raciocínio de senso comum
Não é perfeito, mas pode acabar sendo melhor do que os métodos anteriores
Não é uma ideia totalmente nova, mas parece haver esperança de que seja menos brute-force
Ou seja, o LLM pode aproveitar pesquisas que alguém já fez
O cerne de ML é encontrar um mapeamento de função melhor para a mesma entrada X
Isso não se resolve simplesmente aumentando computação
No fim das contas, funcionou. O LLM encontrou bugs e também fez otimizações
Isso dá para fazer rapidinho até com Claude Code
O verdadeiro valor do Autoresearch parece estar na exploração de arquitetura
Fiquei curioso se alguém já usou isso em modelagem exploratória
Olhando o log de commits (link do GitHub), a maior parte era ajuste de hiperparâmetros
Nesse nível, parece desperdício de custo em tokens ($$$)
Daria para melhorar isso usando adaptadores LoRa para fornecer feedback de custo
No artigo original, usaram dados médicos de raio X, mas como não havia acesso, trocaram por Ukiyo-eVG (11 mil xilogravuras japonesas)
Pareceu uma troca estranha. Há muitos dados médicos de imagem gratuitos também no Cancer Imaging Archive
Eu queria que alguém fizesse esse tipo de experimento, então foi bom ver alguém realmente fazendo
A parte “fiquei tão cansado de esperar o treino terminar que encerrei a conversa” foi engraçada
Obrigado por compartilhar os resultados
Isto parece mais tentativa e erro estruturada do que pesquisa automatizada
No fim, o ponto central é a qualidade da métrica de avaliação. Se ela for fraca, você só otimiza mais rápido na direção errada