יש כמה סיכונים שקשורים לפריצה לתגמולים. בטבלה הבאה מפורטים הסיכונים והאסטרטגיות המתאימות לצמצום הסיכונים.
סיכון 1:
פריצה חמדנית לתגמולים. אם Obj = w1*S1 + w2*S2 + w3*S3, יכול להיות ש-AlphaEvolve יגלה את S2 כדי להגדיל ולהתמקד בו לחלוטין, תוך התעלמות מ-S1 ומ-S3.
השבתה זמנית של אותות אכיפה:
להקטין את המשקל של ציון המשנה. יכול להיות שיידרשו 2-3 הרצות ניסיון כדי לכייל את המשקלים. סימולציות בסיסיות ראשוניות של כמה תוצאות ניקוד יכולות לעזור.
סיכון 2:
התעלמות מהקנס על הפרת האילוץ. אם אילוצים גמישים הם קנסות
(Obj = Score - w*Penalty), יכול להיות ש-AlphaEvolve יגלה שהתעלמות מהאילוצים
מניבה Obj גבוה יותר.
השבתה זמנית של אותות אכיפה:
מגדילים את משקל הקנס באופן משמעותי. אם הבעיה נמשכת, הוסיפו הוראות מפורשות בתיאור הבעיה, כמו "פתרונות שמפרים את אילוץ X לא חוקיים, בלי קשר לניקוד".
סיכון 3:
ניצול פונקציית הערכה. יכול להיות ש-AlphaEvolve ימצא קלטים שיגרמו למעריך להחזיר ציונים גבוהים באופן מלאכותי (מקרי קצה של נקודה צפה, זליגת נתוני בדיקה).
השבתה זמנית של אותות אכיפה:
הערכה דטרמיניסטית עם ערכי seed אקראיים קבועים. אחרי הניסוי, מאמתים את המנצחים על סמך נתונים שלא נכללו בניסוי.
כדי למנוע פריצה לתגמולים, כדאי להטמיע את השיטות הכלליות הבאות:
משתמשים בבדיקות AST כדי לאתר פרימיטיבים אסורים (sys, os, inspect, eval, exec, getattr, setattr) ומחזירים את הערך
Noneאם הם נמצאים.מוודאים שהקוד מחוץ ל-
EVOLVE-BLOCKלא השתנה (הבדלי טקסט או AST).מריצים את הפונקציה המפותחת פעמיים עם אותו קלט ומוודאים שהפלט זהה (כדי לזהות פריצה לאקראיות).
בודקים את זמן ההערכה. אם הוא מסיים תוך מיקרו-שניות, כנראה שהתשובה מקודדת באופן קשיח.
לשים את לוגיקת הניקוד בקובץ נפרד שלא גלוי למודל ה-LLM.