Contexto e configuração de comandos

O AlphaEvolve orienta as operações usando a linha de base de código fornecida e o contexto específico do usuário.

Contexto do usuário

O contexto fornecido pelo usuário é inserido em cada comando de geração. Ele equilibra o espaço de pesquisa, fornecendo ao LLM conhecimento do domínio, formulações matemáticas e restrições do sistema.

  • Orçamento de tokens: até 200.000 tokens têm um bom desempenho. Acima de um limite de 200 mil tokens, a janela de contexto fica carregada, a atenção do LLM diminui e a qualidade da mutação é reduzida. Se o contexto combinado (descrição do problema, código e programas anteriores) exceder 200 mil tokens, será necessário reduzi-lo.

O que incluir

  • Formulação matemática precisa do problema de otimização.

  • Restrições principais e a lógica clara delas.

  • Terminologia e definições específicas do domínio.

  • Abordagens boas conhecidas ou anterioridade para orientar a direção da pesquisa do LLM.

  • Instruções específicas e explícitas detalhando o que NÃO fazer.

O que NÃO incluir

  • Tutoriais gerais de programação.

  • Documentação da biblioteca padrão (o LLM já conhece numpy, sklearn etc.). No entanto, INCLUA a documentação de bibliotecas de nicho ou específicas do domínio que o LLM talvez não conheça bem (APIs de kernel personalizadas, SDKs proprietários ou DSLs especializadas).

  • Dados brutos arbitrários, planilhas ou grandes despejos de dados. Os dados pertencem ao ambiente de teste do avaliador, não ao contexto do comando.

  • Contexto não relacionado que consome tokens sem adicionar um indicador de pesquisa.

Cada parte do contexto incluído precisa oferecer valor claro, ajudando ativamente o LLM a produzir mutações melhores e estruturalmente sólidas.

Feedback da avaliação (insights)

Após cada loop de execução, o avaliador pode retornar um texto de feedback de diagnóstico junto com pontuações numéricas. Esse feedback é anexado automaticamente a estruturas de comandos futuras.

  • Linha de base de qualidade: o feedback forte é específico, prático e conciso. O feedback ruim é genérico (como "a avaliação falhou") ou excessivamente detalhado.

  • Objetivo operacional: esses insights são mostrados ao LLM em gerações subsequentes, permitindo que ele aprenda explicitamente com falhas de execução e evite bugs repetitivos.

Diversificação de comandos integrada

O AlphaEvolve diversifica automaticamente os comandos transmitidos ao conjunto de LLMs de back-end. Essa operação é processada internamente e não requer configuração manual do usuário.

O sistema varia as instruções principais em gerações sucessivas para incentivar mutações diversas e evitar que o LLM caia em padrões de codificação repetitivos. Esse comportamento serve como um dos principais mecanismos que ajudam o AlphaEvolve a explorar um cenário amplo em vez de ficar preso em ótimos locais estreitos.

Legibilidade do código

A complexidade do código atua como uma métrica auxiliar eficaz. Se a legibilidade do código final for um fator para seu caso de uso de produção, considere adicionar o comprimento do código ou a complexidade cognitiva como uma métrica de destino secundária.

O AlphaEvolve pode alcançar até 50% de compactação de arquivos sem degradar o desempenho funcional. No entanto, o LLM vai explorar métricas de simplicidade ingênuas (como remover todos os comentários inline para reduzir a contagem de caracteres brutos). Para evitar isso, implemente métricas que capturem a complexidade estrutural significativa, como a complexidade ciclomática ou a contagem de nós da árvore de sintaxe abstrata (AST, na sigla em inglês), em vez de avaliar comprimentos de strings brutos.