- Um framework autônomo de pesquisa, autocontido, que condensa o núcleo de treinamento de LLM do nanochat em uma única GPU e um único arquivo com cerca de 630 linhas, permitindo que agentes de IA repitam autonomamente experimentos de treinamento de LLM durante a noite
- Humanos modificam o
prompt, e o agente de IA modifica o código de treinamento → treina com um orçamento fixo de 5 minutos → compara os resultados → repete o loop de manter ou descartar
- O agente opera em um loop autônomo em uma feature branch do git e acumula commits no script de treinamento sempre que alcança validation loss mais baixo em arquitetura de rede neural, otimizador, hiperparâmetros etc.
- O objetivo é projetar um agente que produza o progresso de pesquisa mais rápido possível sem intervenção humana
Visão geral do projeto
- Estrutura em que um agente de IA modifica e experimenta autonomamente o código de treinamento com base em uma implementação simplificada de GPU única do nanochat
- O agente repete o loop de modificar o código → treinar por 5 minutos → verificar os resultados → manter/descartar, enquanto o usuário confere pela manhã os logs do experimento e o modelo melhorado
- O fluxo consiste em conectar ao repositório o agente desejado, como Claude ou Codex, fazê-lo ler
program.md e então iniciar os experimentos
Estrutura principal de arquivos (apenas 3 importam)
prepare.py - inclui constantes fixas, preparação de dados (download dos dados de treinamento, treinamento do tokenizador BPE) e utilitários de runtime (dataloader, avaliação); não é alvo de modificação
train.py - arquivo único modificado pelo agente; inclui o modelo GPT completo, o otimizador (Muon + AdamW) e o loop de treinamento; todos os elementos podem ser alterados, como arquitetura, hiperparâmetros, otimizador e batch size
program.md - arquivo de instruções básicas para o agente; é editado por humanos e funciona como uma skill leve que define a direção da pesquisa autônoma do agente
Princípios de projeto
- Modificação em um único arquivo: o agente altera apenas
train.py, mantendo o escopo das mudanças administrável e facilitando a revisão de diff
- Orçamento fixo de tempo: independentemente da plataforma, a execução dura sempre exatamente 5 minutos → cerca de 12 execuções por hora, aproximadamente 100 experimentos durante o sono
- Isso permite comparação direta entre experimentos, independentemente de mudanças em tamanho do modelo, batch size, arquitetura etc.
- Desvantagem: não é possível comparar com resultados de execução de outras pessoas em plataformas diferentes
- Autocontenção: sem dependências externas além de PyTorch e alguns poucos pacotes; sem treinamento distribuído; sem configuração complexa
Requisitos e execução
- Requisitos: uma única GPU NVIDIA (testado em H100), Python 3.10+, gerenciador de pacotes
uv
- Atualmente é exclusivo para GPU NVIDIA; suporte a outras plataformas como CPU/MPS não está incluído no momento para evitar aumento do código
- Se for necessário suporte mais amplo a plataformas, recomenda-se consultar o repositório nanochat principal; já existe um fork para macOS (
miolini/autoresearch-macos)
- Ao executar o agente, rode Claude/Codex etc. dentro do repositório com todas as permissões desativadas e use um prompt para que ele leia
program.md e comece os experimentos
Intenção de design do program.md padrão
- O
program.md padrão é mantido intencionalmente como uma baseline mínima
- Pode ser usado de forma a iterar e melhorar ao longo do tempo, buscando um "código de organização de pesquisa" que alcance o progresso de pesquisa mais rápido
- A estrutura também permite, com clareza, expandir com agentes adicionais ou instruções mais específicas
2 comentários
Por favor, também façam para AMD ROCm.
Tweet de apresentação do Karpathy
> Preparei isso para quem quiser testar durante o fim de semana.
> É uma obra misturando código, ficção científica e um pouco de loucura :)
Professor, por que o senhor faz esse tipo de coisa no fim de semana?