Implementierungsmuster für Bewerter

Wenn Sie Bewertungsmetriken für ein AlphaEvolve-Evaluierungs-Framework entwerfen, legen Sie die folgenden drei unterschiedlichen Testebenen fest.

Ebene 1: Tests zur Lösungsvalidierung

Mit diesen Tests wird vor der vollständigen Ausführung die grundlegende Sicherheit der Codeausführung und die Richtlinienkonformität überprüft.

  • Sicherheit der Ausführung: Prüfen Sie, ob der Code ausgeführt wird. Dazu gehören die Überprüfung der Syntax, die Prüfung der Kompilierungszeit, die Durchführung einer statischen Analyse und die Überprüfung der Infrastrukturkompatibilität.

  • Ausführungsrichtlinie: Legen Sie fest, ob der Code auch dann ausgeführt werden soll, wenn er funktionsfähig ist. Dazu gehören Linting, allgemeine Prüfungen der Codequalität, InfoSec-Überprüfungen, Validierung von Risiken und Compliance sowie Überprüfungen der API-Lieferkette.

Überlegungen:

  • Wenn die Validierung fehlschlägt, geben Sie einen hohen negativen Wert zurück, z. B. -10000 oder -100000. AlphaEvolve ignoriert diese Programme.

  • Fügen Sie den Fehlertyp und Logs für das Debugging hinzu. AlphaEvolve verwendet diese Metadaten zwar nicht als Suchsignal, sie sind aber nützlich für die nachträgliche Analyse von Fehlermodi.

Ebene 2: Tests zur Lösungsüberprüfung

Mit diesen Tests werden die algorithmische Korrektheit und die Einhaltung von Einschränkungen mithilfe von Unit- und Funktionstests überprüft.

  • Funktionale Genauigkeit: Prüfen Sie mit Unit- und Funktionstests, ob sich der Code korrekt verhält.

  • Einhaltung von Einschränkungen: Prüfen Sie die Machbarkeit der Lösung oder die Einhaltung von Einschränkungen.

  • Minderung von Reward Hacking: Wenden Sie Überprüfungsergebnisse als negative Strafen auf die Fitnessfunktion an, um Reward Hacking zu verhindern. Ein Ergebnis von -10000 oder -100000 ist eine wirksame Strafe.

Überlegungen:

  • Geben Sie die Anzahl oder den Prozentsatz der bestandenen Tests zurück. Dieser Ansatz liefert ein Gradientensignal. Ein Programm, das 4 von 5 Tests besteht, wird als näher an der richtigen Lösung erkannt als ein Programm, das 0 von 5 Tests besteht.

  • Behandeln Sie die Überprüfung als Erfüllung einer weichen Einschränkung. Auch bei harten Systemeinschränkungen liefert die Darstellung als weiche Strafen basierend auf der Nähe zum möglichen Bereich für AlphaEvolve ein besser verwertbares Suchsignal als ein binäres „Bestanden“ oder „Nicht bestanden“.

Ebene 3: Tests zur Lösungsbewertung (Leistungstests)

Mit diesen Tests werden objektive Leistungsmesswerte je nach Art des Optimierungsziels gemessen.

  • Direkte Messung: Erfassen Sie Ziele direkt, wenn die Instrumentierung dies zulässt.

  • Deterministische Schätzungen: Berechnen Sie Ziele analytisch für klassische Ansätze der Operations Research.

  • Out-of-Sample-Validierung: Testen Sie mit Validierungs-Datasets für Anwendungsfälle, die die Optimierung von Machine-Learning-Pipelines oder die Abstimmung von Agent-Frameworks umfassen.

  • Simulationsbasierte Schätzungen: Verwenden Sie Markov-Chain-Monte-Carlo-Simulationen (MCMC), Proxy-Funktionen vom Typ Bayesian Optimization oder andere modellbasierte Ansätze.

Überlegungen:

  • Geben Sie sowohl detaillierte als auch aggregierte Ergebnisse zurück.

  • Lagern Sie die Berechnung der Ergebnisse nicht an das LLM aus, sondern berechnen Sie sie deterministisch in Ihrem Evaluierungs-Framework. AlphaEvolve führt Hill Climbing anhand dieser vorab berechneten aggregierten Leistungsergebnisse durch.

  • Teilweise Gutschrift liefert ein Gradientensignal, das die Konvergenz der Suche beschleunigt. Ein Programm, das 4 von 5 Tests besteht, sollte beispielsweise ein Ergebnis von 0.8 und nicht None erhalten. Wenn None zurückgegeben wird, ignoriert AlphaEvolve das Programm vollständig, wodurch nützliches Feedback verloren geht. Ein Ergebnis von 0.8 signalisiert, dass der Kandidat fast richtig ist und ein hohes Optimierungspotenzial hat.