Padrões de implementação do avaliador

Ao criar métricas de avaliação para um harness de avaliação do AlphaEvolve, estabeleça estes três níveis de teste distintos.

Nível 1: testes de validação da solução

Esses testes verificam a segurança básica da execução de código e a conformidade com a política antes da execução completa.

  • Segurança de execução: verifique se o código é executado. Isso inclui revisar a sintaxe, verificar o tempo de compilação, realizar análises estáticas e verificar a compatibilidade da infraestrutura.

  • Política de execução: determine se o código precisa ser executado mesmo que seja funcional. Isso inclui linting, verificações gerais de qualidade do código, revisões de segurança da informação, validação de risco e conformidade e verificações da cadeia de suprimentos da API.

Considerações:

  • Se a validação falhar, retorne uma pontuação negativa alta, como -10000 ou -100000. O AlphaEvolve ignora esses programas.

  • Inclua o tipo de falha e os registros para depuração. Embora o AlphaEvolve não use esses metadados como um indicador de pesquisa, eles são úteis para a análise a posteriori dos modos de falha.

Nível 2: testes de verificação da solução

Esses testes verificam a correção algorítmica e a aderência às restrições usando testes de unidade e funcionais.

  • Precisão funcional: verifique se o código se comporta corretamente usando testes de unidade e funcionais.

  • Aderência a restrições: verifique a viabilidade da solução ou a satisfação das restrições.

  • Mitigação de hacking de recompensa: aplique pontuações de verificação como penalidades negativas à função de adequação para evitar o hacking de recompensa. Declarar uma pontuação de -10000 ou -100000 serve como uma penalidade eficaz.

Considerações:

  • Retorne o número ou a porcentagem de testes aprovados. Essa abordagem fornece um indicador de gradiente. Um programa que passa em 4 de 5 testes é reconhecido como mais próximo do correto do que um que passa em 0 de 5.

  • Trate a verificação como satisfação de restrição flexível. Mesmo para restrições rígidas do sistema, expressá-las como penalidades flexíveis com base na proximidade do espaço viável oferece ao AlphaEvolve um indicador de pesquisa mais acionável do que uma aprovação ou reprovação binária.

Nível 3: testes de avaliação da solução (testes de desempenho)

Esses testes medem métricas objetivas de desempenho, dependendo do tipo de meta de otimização.

  • Medição direta: acompanhe os objetivos diretamente onde a instrumentação permitir.

  • Estimativas determinísticas: calcule os objetivos analiticamente para estilos clássicos de pesquisa operacional.

  • Validação fora da amostra: teste em relação a conjuntos de dados de validação para casos de uso que envolvem otimização de pipeline de machine learning ou ajuste do harness do agente.

  • Estimativas baseadas em simulação: use simulações de Monte Carlo via cadeias de Markov (MCMC), funções de proxy de otimização bayesiana ou outras abordagens baseadas em modelo.

Considerações:

  • Retorne pontuações granulares e agregadas.

  • Não descarregue o cálculo da pontuação para o LLM. Calcule-o de forma determinística no harness do avaliador. O AlphaEvolve faz uma escalada de montanha em relação a essas pontuações de desempenho agregadas pré-calculadas.

  • O crédito parcial fornece um indicador de gradiente que acelera a convergência da pesquisa. Por exemplo, um programa que passa em 4 de 5 testes precisa receber uma pontuação de 0.8 em vez de None. Retornar None faz com que o AlphaEvolve ignore o programa completamente, eliminando o feedback útil. Uma pontuação de 0.8 indica que o candidato está quase correto e tem potencial viável para otimização.