Lorsque vous concevez des métriques d'évaluation pour un banc d'essai AlphaEvolve, établissez les trois niveaux de test distincts suivants.
Niveau 1 : Tests de validation de la solution
Ces tests vérifient la sécurité de base de l'exécution de code et la conformité aux règles avant l'exécution complète.
Sécurité de l'exécution : vérifiez si le code s'exécute. Cela inclut l'examen de la syntaxe, la vérification du temps de compilation, l'exécution d'une analyse statique et la vérification de la compatibilité de l'infrastructure.
Règle d'exécution : déterminez si le code doit être exécuté même s'il est fonctionnel. Cela inclut le linting, les contrôles généraux de la qualité du code, les examens de sécurité des informations, la validation des risques et de la conformité, ainsi que les contrôles de la chaîne d'approvisionnement des API.
Remarques :
Si la validation échoue, renvoyez un score négatif élevé, tel que
-10000ou-100000. AlphaEvolve ignore ces programmes.Incluez le type d'échec et les journaux pour le débogage. Bien qu'AlphaEvolve n'utilise pas ces métadonnées comme signal de recherche, elles sont utiles pour l'analyse post-facto des modes de défaillance.
Niveau 2 : Tests de validation de la solution
Ces tests vérifient l'exactitude algorithmique et le respect des contraintes à l'aide de tests unitaires et fonctionnels.
Précision fonctionnelle : vérifiez si le code se comporte correctement à l'aide de tests unitaires et fonctionnels.
Respect des contraintes : vérifiez la faisabilité de la solution ou le respect des contraintes.
Atténuation du piratage des récompenses : appliquez des scores de vérification en tant que pénalités négatives à la fonction de fitness pour empêcher le piratage des récompenses. L'attribution d'un score de
-10000ou-100000sert de pénalité efficace.
Remarques :
Renvoie le nombre ou le pourcentage de tests réussis. Cette approche fournit un signal de gradient : un programme qui réussit quatre tests sur cinq est reconnu comme plus proche de la solution correcte qu'un programme qui n'en réussit aucun.
Traitez la vérification comme une satisfaction de contrainte souple. Même pour les contraintes système strictes, les exprimer sous forme de pénalités souples basées sur la proximité de l'espace possible donne à AlphaEvolve un signal de recherche plus exploitable qu'une réussite ou un échec binaire.
Niveau 3 : Tests d'évaluation de la solution (tests de performances)
Ces tests mesurent les métriques de performances objectives en fonction du type de cible d'optimisation.
Mesure directe : suivez les objectifs directement lorsque l'instrumentation le permet.
Estimations déterministes : calculez les objectifs de manière analytique pour les styles de recherche opérationnelle classiques.
Validation hors échantillon : testez les ensembles de données de validation pour les cas d'utilisation impliquant l'optimisation du pipeline de machine learning ou le réglage du harnais d'agent.
Estimations basées sur la simulation : utilisez des simulations de Monte-Carlo par chaînes de Markov (MCMC), des fonctions de proxy de type optimisation bayésienne ou d'autres approches basées sur un modèle.
Remarques :
Renvoyer des scores précis et agrégés.
Ne déléguez pas le calcul du score au LLM. Calculez-le de manière déterministe dans votre environnement d'évaluation. AlphaEvolve effectue une recherche locale par rapport à ces scores de performances agrégés précalculés.
Le crédit partiel fournit un signal de gradient qui accélère la convergence de la recherche. Par exemple, un programme qui réussit quatre tests sur cinq doit recevoir un score de
0.8plutôt que deNone. Le renvoi deNoneamène AlphaEvolve à ignorer complètement le programme, ce qui élimine les commentaires utiles. Un score de0.8indique que le candidat est proche de la bonne réponse et qu'il présente un potentiel d'optimisation viable.