Bewertungsansätze

Wenden Sie die folgenden Architekturprinzipien an, wenn Sie festlegen, wie Kandidatencode-Einträge in Ihrem Evaluierungstool bewertet, normalisiert und mit Strafpunkten belegt werden sollen.

Ziele direkt maximieren

AlphaEvolve führt ausschließlich Maximierungssuchen durch und behandelt jedes Optimierungsziel als Hill-Climbing-Aufgabe. Wenn Sie einen Messwert wie Latenz oder Fehlerraten minimieren möchten, müssen Sie den endgültigen berechneten Wert negieren: score = -latency_ms # AE maximizes -> minimizes latency.

Strikte Monotonie der Funktion beibehalten

Implementieren Sie nur monotone Scoring-Funktionen. Die zurückgegebene numerische Punktzahl muss mit der Verbesserung der Kandidatenlösungen stetig steigen. Die Einbeziehung nicht monotoner Werte verschlechtert die Suchleistung und führt zu logischen Inkonsistenzen im Optimierungspfad.

Detaillierte, granulare Messwerte bereitstellen

Detaillierte Bewertungen verbessern die allgemeine Suchqualität direkt. Auch wenn nur ein einziges primäres Geschäftsziel optimiert wird, kann AlphaEvolve durch die Einbeziehung sekundärer oder Proxy-Messwerte einen komplexen Suchraum effektiver durchlaufen. Geben Sie einzelne Unterbewertungen als strukturierte Statistiken an das System zurück, damit das LLM explizit über Leistungs-Trade-offs zwischen den Generationen nachdenken kann.

Teilerfolge gegenüber spärlichen Ergebnissen belohnen

Belohnen Sie Teilerfolge, anstatt sich ausschließlich auf End- oder Binärergebnisse zu verlassen. Bevorzugen Sie immer ein dichtes Scoring-Signal gegenüber einem spärlichen.

Ein binäres oder niedrig aufgelöstes Ziel (z. B. die Anzahl der gewonnenen Spiele in einem turnierbasierten Spiel) führt zu massiven Leistungsplateaus, bei denen mehrere Kandidaten gleichauf liegen. Dieses Verhalten verhindert, dass AlphaEvolve eine Beinahe-Lösung von einer schlechten Lösung unterscheiden kann, was die Auswahl von übergeordneten Elementen verzögert.

So behalten Sie die Richtung des Suchgradienten bei:

  • Feingliedriges Untersignal hinzufügen: Messen Sie den inkrementellen Fortschritt in Richtung des ultimativen Ziels, z. B. einzelne Punkte, die in einem Spiel erzielt werden, damit AlphaEvolve ansonsten gleichwertige Kandidaten einstufen und in Richtung vielversprechender Lösungsräume optimieren kann.

  • Richten Sie die Ausrichtung und die Gewichte sorgfältig aus: Das untergeordnete Signal muss monoton mit dem tatsächlichen Zielvorhaben übereinstimmen und sicher darunter gewichtet werden. Wenn sie nicht richtig gewichtet wird, optimiert AlphaEvolve die Proxy-Messgröße auf Kosten des tatsächlichen Ziels, was zu einem Reward-Hack führt.

Erstellen Sie beispielsweise eine skalare Zielfunktion, bei der Punkte als logischer Tiebreaker verwendet werden: use score = matches_won + w * (points_scored / points_possible).

Konfigurieren Sie die Gewichtungsbeschränkung auf w < 1, damit ein zusätzlicher Terminal-Sieg immer höher gewichtet wird als die Punktesammlung im Spiel. Das untergeordnete Signal wird dann nur als Tiebreaker verwendet.

Mit einem einzelnen Ziel beginnen

Beginnen Sie mit einer einzelnen Zielfunktion. Die Optimierung mehrerer Zielvorhaben mit umfassender Pareto-Grenzverfolgung wird zwar nativ in der Datenbank unterstützt, wo MAP-Elites das beste Programm pro Messwert verfolgt und das System eine laufende Pareto-Grenze für alle Messwerte beibehält. Ein einzelnes skalare Zielvorhaben ist jedoch bei der ersten Bereitstellung wesentlich einfacher zu analysieren und zu debuggen. Wenn für Ihr Problem mehrere Zielsetzungen erforderlich sind, können Sie sie entweder in einem einzigen gewichteten Skalar kombinieren oder von Anfang an Tools zur Messung mehrerer Messwerte verwenden.

Vor dem Kombinieren neu skalieren und normalisieren

Wenden Sie eine strenge Skalenabstimmung auf Ihre Messwerte an, um Optimierungsbias zu vermeiden:

  • Messwerte über Bereiche hinweg neu skalieren: Normalisieren Sie Messwerte auf vergleichbare Bereiche, bevor Sie sie kombinieren. Wenn Sie begrenzte Werte (zwischen 0 und 1) und unbegrenzte Werte (zwischen 0 und infinity) ohne explizite Neuskalierung kombinieren, dominiert der unbegrenzte Messwert die Fitnesslandschaft.

  • Additive Strukturen sind multiplikativen Kombinationen vorzuziehen: Multiplikative Zielvorhaben können sehr empfindlich auf geringfügige Änderungen im Nenner reagieren, was die Genauigkeit und Stabilität der Suche beeinträchtigt. Implementieren Sie stattdessen additive gewichtete Summen: w1*A - w2*L - w3*M. Dieses Format ermöglicht einfache Gewichtungsanpassungen für jeden Leistungsparameter.

  • Relative Werte normalisieren: Damit Skalierungsunterschiede Ihren Suchpfad nicht verzerren, teilen Sie jeden Messwert durch den entsprechenden anfänglichen Referenzwert, sodass alle Messwerte mit einem Referenzwert von 1.0 beginnen, bevor Sie Gewichte anwenden und sie kombinieren.

Minimale numerische Unterschiede hervorheben

Geringe Unterschiede beim numerischen Wert liefern möglicherweise kein nützliches Optimierungssignal für das zugrunde liegende LLM. Wenn ein starker Kandidat 1e-7 und ein schwächerer Kandidat 1e-8 erhält, kann das LLM bei der Überprüfung des Kontexts möglicherweise nicht sinnvoll zwischen ihnen unterscheiden. Skalieren Sie die endgültigen Werte auf einen offensichtlichen, für Menschen lesbaren Bereich (z. B. 0 bis 100), damit inkrementelle Codeverbesserungen im Generierungs-Prompt numerisch sichtbar werden.