Appliquez les principes d'architecture suivants lorsque vous déterminez comment noter, normaliser et pénaliser les entrées de code candidates dans votre environnement d'évaluation.
Maximiser directement les objectifs
AlphaEvolve effectue exclusivement des recherches de maximisation, en traitant chaque cible d'optimisation comme une tâche d'ascension de colline. Pour minimiser une métrique telle que la latence ou les taux d'erreur, vous devez annuler la valeur finale calculée : score = -latency_ms # AE maximizes -> minimizes latency.
Maintenir une monotonicité stricte des fonctions
Veillez à n'implémenter que des fonctions de notation monotones. Le score numérique renvoyé doit augmenter de manière constante à mesure que les solutions candidates s'améliorent. L'intégration de scores non monotones dégrade les performances de recherche et introduit des incohérences logiques dans le chemin d'optimisation.
Fournir des métriques détaillées et précises
Les scores détaillés améliorent directement la qualité globale de la recherche. Même lors de l'optimisation d'un seul objectif d'entreprise principal, l'intégration de métriques secondaires ou de proxy aide AlphaEvolve à naviguer plus efficacement dans un espace de recherche complexe. Transmettez les sous-scores individuels au système sous forme d'insights structurés afin que le LLM puisse raisonner explicitement sur les compromis de performances entre les générations.
Récompensez les réussites partielles plutôt que les résultats rares
Récompensez les réussites partielles au lieu de vous fier entièrement aux résultats finaux ou binaires. Privilégiez toujours un signal de notation dense à un signal creux.
Un objectif binaire ou basse résolution (par exemple, le suivi des matchs gagnés dans un problème de jeu basé sur un tournoi) crée d'importants plateaux de performances où plusieurs candidats sont à égalité. Ce comportement empêche AlphaEvolve de distinguer une solution presque correcte d'une mauvaise solution, ce qui bloque les boucles de sélection des parents.
Pour conserver la direction du gradient de recherche :
Ajouter un sous-signal précis : mesurez la progression incrémentielle vers l'objectif final (comme les points individuels marqués lors d'un match) afin qu'AlphaEvolve puisse classer les candidats à égalité et progresser vers des espaces de solutions prometteurs.
Alignez soigneusement l'alignement et les pondérations : assurez-vous que le sous-signal est aligné de manière monotone avec l'objectif réel et pondéré de manière sécurisée en dessous de celui-ci. Si elle n'est pas pondérée correctement, AlphaEvolve optimisera la métrique proxy au détriment de l'objectif réel (ce qui entraînera un piratage de la récompense).
Par exemple, construisez une fonction d'objectif scalaire en utilisant les points comme critère de départage logique : use score = matches_won + w * (points_scored / points_possible).
Configurez la contrainte de pondération sur w < 1 afin qu'une victoire finale supplémentaire l'emporte toujours sur l'accumulation de points au cours d'un match, en traitant le sous-signal strictement comme un départage.
Commencez avec un seul objectif
Envisagez de commencer votre implémentation avec une seule fonction d'objectif. Bien que l'optimisation multi-objectifs avec suivi complet de la frontière de Pareto soit entièrement compatible de manière native avec la base de données, où MAP-Elites suit le meilleur programme par métrique et où le système gère une frontière de Pareto en cours d'exécution sur toutes les métriques, un seul objectif scalaire est beaucoup plus simple à comprendre et à déboguer lors du déploiement initial. Si votre problème nécessite plusieurs objectifs, vous pouvez les combiner en un seul scalaire pondéré ou utiliser des outils de suivi multimétrique dès le départ.
Redimensionner et normaliser avant de combiner
Appliquez un équilibrage strict de l'échelle à vos métriques pour éviter les biais d'optimisation :
Redimensionner sur plusieurs plages : normalisez les métriques sur des plages comparables avant de les combiner. La combinaison de scores bornés (allant de
0à1) et de scores non bornés (allant de0àinfinity) sans remise à l'échelle explicite entraîne la domination de la métrique non bornée sur le paysage de fitness.Privilégiez les structures additives aux combinaisons multiplicatives : les objectifs multiplicatifs peuvent devenir hypersensibles à des variations mineures du dénominateur, ce qui compromet la précision et la stabilité de la recherche. Implémentez plutôt des sommes pondérées additives :
w1*A - w2*L - w3*M. Ce format permet d'ajuster facilement les pondérations pour chaque paramètre de performances.Normalisez par rapport aux valeurs initiales : pour éviter que les différences d'échelle ne faussent votre chemin de recherche, divisez chaque métrique par sa valeur de référence initiale respective afin que toutes les métriques commencent à une valeur de référence de
1.0avant d'appliquer des pondérations et de les combiner.
Amplifier les différences numériques minimes
De petites différences de score numérique peuvent ne pas fournir un signal d'optimisation utile au LLM sous-jacent. Si un candidat fort obtient un score de 1e-7 et un candidat plus faible un score de 1e-8, le LLM peut ne pas les distinguer de manière significative lors de l'examen du contexte. Redimensionnez vos scores finaux sur une plage évidente et lisible par l'humain (par exemple, de 0 à 100) afin que les améliorations incrémentielles du code deviennent numériquement apparentes dans le prompt de génération.