AlphaEvolve Agentes de codificação evolutivos
Type: Learn
Languages: Python (stdlib, evolutionary-loop toy)
Prerequisites: Phase 15 · 01 (long-horizon framing), Phase 15 · 02 (self-taught reasoning)
Time: ~60 minutes
O problema
Os modelos de linguagem grandes podem escrever código. Algoritmos evolutivos podem pesquisar código. Ambos foram testados separadamente por décadas; ambos atingiram limites. O teto LLM é confabulação: o modelo escreve código plausível que não faz o que afirma. O teto evolutivo é custo de pesquisa: mutações aleatórias sobre sintaxe raramente produzem programas compiláveis, muito menos melhores.
O LLM propõe edições direcionadas a um banco de dados de programas; um avaliador automático marca cada variante; as variantes de pontuação alta se tornam pais para as gerações futuras. O LLM lida com a etapa cara de escrever código plausível; o avaliador pega as confabulações. O ciclo dura de horas a semanas.
Resultados relatados: multiplicação de matriz complexa 4x4 de 48-escala-multiplicação (limite de 1969 de Straßsen foi 49), um heurística de agendamento Borg na produção do Google, um 32,5% de flashattention kernel speedup, melhorias de throughput de treinamento Gemini.
A arquitetura funciona porque o avaliador é verificável pela máquina. Não funciona onde o avaliador não está. Essa assimetria é a lição.
O conceito
O ciclo
- Comece com um programa de sementes .
P_0Isso é correto, mas suboptimo. - Manter um banco de dados de programas variantes, cada um marcado pelo avaliador.
- Amostra de um ou mais pais da base de dados (em estilo MAP-elite ou baseado em ilhas).
- Promover o LLM (Gemini Flash para muitos candidatos, Gemini Pro para os mais difíceis) para produzir uma variante modificada do pai.
- Compile, execute e avalia a variante no avaliador de tempo.
- Insira na base de dados selecionada por seu ponto e vector de características.
- Repito. - Não.
O modelo é um modelo de trabalho que é um modelo de trabalho de trabalho, que é a de proporcionar uma mudança direcionada que pode melhorar a pontuação.
O que torna o avaliador não negociável
As vitórias do AlphaEvolve vêm de domínios onde o avaliador é rápido, determinista e difícil de jogar:
- Matrix multiplication algorithmO teste unitário multiplica matrizes e verifica a igualdade de forma bit-identical.
- Borg scheduling heuristicO simulador de nível de produção que reproduz a carga histórica do cluster e mede o cálculo desperdiçado.
- FlashAttention kernel: um teste de correcção mais um indicador de relógio de parede em hardware real.
- Gemini training throughput: GPU-segundos por passo.
Em cada caso, o avaliador capta a classe de erros de LLM que de outra forma dominariam: alegações de corretão confabuladas, alegações de desempenho que desaparecem no hardware e falhas de bordo.
O hacking de recompensas é a outra face dessa declaração
A evolução otimiza para qualquer medida que o avaliador mede. Se o avaliador é imperfeito, o loop encontrará a imperfeição. Em um domínio não verificado o loop otimiza para a característica de superfície, não o comportamento pretendido. DeepMind sinaliza isso explicitamente no artigo: os sucessos do AlphaEvolve transferem apenas para domínios onde o rigor do avaliador corresponde à ambição da pesquisa.
Exemplos concretos de hacking de recompensas em ciclos de busca de código:
- Objetivos de otimização que recompensam "tempo para completar" recompensaram a apresentação de soluções vazias.
- Os resultados de referência que recompensam a correcção sob o teste recompensaram os testes de memória e o excesso de correspondência.
- Um proxy de "qualidade de código" recompensou a remoção de comentários e a reescritura de nomes de variáveis, sem mudança semântica.
A solução no AlphaEvolve: enviar um avaliador que o LLM nunca viu, com insumos gerados no momento da avaliação.
Por que a busca LLM + bate sozinha
O LLM pode produzir modificações compilaveis e semânticamente plausíveis. Uma mutação aleatória GA em um arquivo Python de 2000 linhas quase sempre produz erros de sintaxe. O LLM também concentra a pesquisa em bairros plausíveis (mudança de uma função, não bytes aleatórios), o que reduz drasticamente as chamadas de avaliador desperdiçadas.
O avaliador, por sua vez, capta as confabulações do LLM. Os LLM afirmarão com confiança que uma função "é O(n log n) no limite" quando é realmente O ((n^2); um benchmark de relógio de parede resolve a questão.
Onde o AlphaEvolve se encaixa na pilha de fronteira
| System | Generator | Evaluator | Domain | Example win |
|---|---|---|---|---|
| AlphaEvolve | Gemini | correctness + benchmark | algorithms, kernels, schedulers | 48-mul 4x4 matmul |
| FunSearch (DeepMind, 2023) | PaLM / Codey | correctness | combinatorial math | cap-set lower bounds |
| AI Scientist v2 (Sakana, L5) | GPT/Claude | LLM critique + experiment | ML research | ICLR workshop paper |
| Darwin Godel Machine (L4) | agent scaffolding | SWE-bench / Polyglot | agent code | 20% → 50% SWE-bench |
Todas as quatro são variações da mesma receita: gerador mais avaliador, loop. As diferenças são o que o avaliador classifica e quão rigoroso é.
Usá-lo
code/main.pyO "LLM" é um proxy stdlib que propõe pequenas mutações sintáticas para um programa que calcula uma função alvo.
- Vigiar:
- Como a melhor pontuação melhora ao longo das gerações.
- Como uma rede de elite MAP mantém diversas soluções vivas para que o ciclo não converja em um mínimo local.
- Como a remoção do teste prolongado (avaliador de treinamento só) permite que o loop se encaixe espetacularmente.
Envia-o
outputs/skill-evaluator-rigor-audit.mdÉ a condição prévia para considerar um ciclo de estilo AlphaEvolve num novo domínio: o seu avaliador realmente detecta os falhas que lhe importam?
Exercícios
- Corra .
code/main.py- Observe a melhor trajetória de pontuação.--no-holdout) e re-exercício.
- Leia a Seção 3 do artigo AlphaEvolve sobre a grade MAP-elites.
- O resultado de 48-multiplicação 4x4 melhorou no limite de 49-mul de Strassen após 56 anos.
- Propõe um domínio onde o AlphaEvolve falha, identifique exatamente onde o avaliador rompe e porquê.
- Para um domínio que conheça, escreva a assinatura do avaliador que você usaria. Incluir (a) condições de correção, (b) métrica de desempenho, (c) regra de geração de entrada prolongada, (d) pelo menos um check anti-reward hacking.
Termos-chave
| Term | What people say | What it actually means |
|---|---|---|
| AlphaEvolve | "DeepMind's evolutionary coding agent" | Gemini + program database + machine-checkable evaluator |
| MAP-elites | "Diversity-preserving archive" | Grid keyed by feature vectors; each cell holds the best variant with that descriptor |
| Island model | "Parallel evolution subpopulations" | Independent populations that migrate periodically; prevents premature convergence |
| Machine-checkable evaluator | "Deterministic oracle" | A unit test, simulator, or benchmark the LLM cannot fake — a prerequisite for this loop |
| Reward hacking | "Optimizing the measure, not the goal" | Loop finds a way to maximize score without doing the intended task |
| Seed program | "The starting point" | An initial correct-but-suboptimal program the loop evolves from |
| Held-out evaluator | "Evaluation data the LLM never saw" | Inputs generated at evaluation time to prevent memorization |
Mais leitura
- Novikov et al. (2025). AlphaEvolve: A coding agent for scientific and algorithmic discovery- O papel completo.
- DeepMind blog on AlphaEvolve O fornecedor com resultados.
- AlphaEvolve results repositoryAlgoritmos descobertos, incluindo o matmul 4x4 de 48-mul.
- Romera-Paredes et al. (2023). Mathematical discoveries from program search with LLMs (FunSearch) o sistema anterior.
- Anthropic — Responsible Scaling Policy v3.0 (Feb 2026) define a autonomia do avaliador como uma direcção-chave da investigação.
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.