Prévention du piratage des récompenses

Le piratage des récompenses comporte plusieurs risques. Consultez les informations suivantes pour connaître les risques et les stratégies d'atténuation correspondantes.

Risque 1 :

Piratage de récompenses gourmandes. Si Obj = w1*S1 + w2*S2 + w3*S3, AlphaEvolve peut découvrir S2 pour augmenter et se concentrer entièrement dessus, en ignorant S1 et S3.

Atténuation :

Diminuez le poids du sous-score. Il peut être nécessaire de faire 2 à 3 essais pour calibrer les poids. Des simulations de référence préliminaires de quelques résultats de score peuvent être utiles.

Risque 2 :

Ignorer les pénalités de contrainte. Si les contraintes souples sont des pénalités (Obj = Score - w*Penalty), AlphaEvolve peut découvrir qu'ignorer les contraintes génère des Obj plus élevés.

Atténuation :

Augmentez considérablement le poids de la pénalité. Si le problème persiste, ajoutez des instructions explicites dans la description du problème, par exemple "Les solutions qui ne respectent pas la contrainte X ne sont pas valides, quel que soit le score."

Risque 3 :

Exploitation de la fonction d'évaluation. AlphaEvolve peut trouver des entrées qui amènent l'évaluateur à renvoyer des scores artificiellement élevés (cas extrêmes à virgule flottante, fuite de données de test).

Atténuation :

Évaluation déterministe avec des graines aléatoires fixes. Validez les gagnants sur les données retenues après le test.

Pour éviter le piratage des récompenses, implémentez les techniques générales suivantes :

  • Utilisez les vérifications AST pour les primitives interdites (sys, os, inspect, eval, exec, getattr, setattr) et renvoyez None si elles sont trouvées.

  • Vérifiez que le code en dehors de EVOLVE-BLOCK n'a pas changé (différence de texte ou AST).

  • Exécutez la fonction évoluée deux fois avec la même entrée et vérifiez que la sortie est identique (détecte le piratage de l'aléatoire).

  • Vérifiez l'heure de l'évaluation. Si elle se termine en microsecondes, elle a probablement codé en dur la réponse.

  • Placez la logique de notation dans un fichier distinct invisible pour le LLM.