Prévention du piratage des récompenses

Le piratage de récompense comporte un certain nombre de risques. Consultez les risques et les stratégies d'atténuation correspondantes ci-dessous.

Risque 1 :

Piratage de récompense gourmand. Si Obj = w1*S1 + w2*S2 + w3*S3, AlphaEvolve peut découvrir que S2 augmente et se concentrer entièrement sur ce signal, en ignorant S1 et S3.

Atténuation :

Diminuez la pondération du sous-score. Deux ou trois essais peuvent être nécessaires pour calibrer les pondérations. Les simulations de référence préliminaires de quelques résultats de notation sont utiles.

Risque 2 :

Ignorer la pénalité 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 un Obj plus élevé.

Atténuation :

Augmentez considérablement la pondération de la pénalité. Si le comportement 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 limites de 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 d'exclusion après le test.

Pour éviter le piratage des récompenses, mettez en œuvre les techniques générales suivantes :

  • Utilisez des 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 été modifié (différence de texte ou AST).

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

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

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