>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Jupyter

Prompt-Evolution statt RL – Unter der Haube des GEPA-Frameworks

Das Optimieren von Systemanweisungen und Agents wird normalerweise zu endlosem manuellen Text-Feen. Eine Formulierung korrigieren – die Logik verbessern, aber das Ausgabeformat zerstören. Reinforcement Learning wie GRPO für solches Feen einzusetzen, ist zu teuer: Die Algorithmen benötigen Zehntausende von Durchläufen, und das gesamte Feedback reduziert sich auf eine einzelne Bewertung.

Kürzlich habe ich das GEPA-Repository (Genetic-Pareto) untersucht. Das Projekt wird von Forschern der University of California, Berkeley und Stanford entwickelt und bietet einen grundlegend anderen Ansatz zur Optimierung beliebiger Textparameter.

GEPA Logo

Die Kernidee hinter dem Projekt

Klassische Optimierer behandeln das System als Black Box: Sie erhalten einen numerischen Wert am Ausgang und versuchen zu erraten, wohin als nächstes gegangen werden muss. GEPA funktioniert anders. Das Framework übergibt dem neuronalen Netz den gesamten Ausführungslog – Fehler, Profiler-Ausgaben, Stack Traces und Zwischenresultate der Reasoning-Prozesse.

Das Modell analysiert diese Daten genauso wie ein Entwickler beim Debugging. Es erkennt die konkrete Ursache eines Fehlers und schlägt gezielte Korrekturen vor. Dann kommt ein genetischer Algorithmus mit Pareto-Front-Überlegungen ins Spiel: Das System bewahrt Textvarianten auf, die über verschiedene Teilmengen von Aufgaben hinweg am besten abschneiden.

Was das Framework leisten kann

Dieser Ansatz ermöglicht das automatische Optimieren verschiedener Elemente:

  • Prompts für einzelne Modelle oder Chains in DSPy und LangChain
  • Agent-Architektur und deren Skill-Sets
  • Task-Planungsregeln und Konfigurationsdateien
  • Tool-Beschreibungen für das MCP-Protokoll

In den Tests der Autoren verbesserte das GPT-4.1 Mini-Modell die Genauigkeit beim AIME-Mathematik-Benchmark von 46,6% auf 56,6% nach hundert Iterationen. Ingenieure von Databricks nutzten GEPA, um die Betriebskosten ihrer Agents um das 90-Fache zu senken, ohne die Qualität zu verlieren.

So funktioniert der Optimierungsprozess

Das Framework arbeitet in einer Schleife von fünf aufeinanderfolgenden Schritten:

  1. Kandidatenauswahl von der Pareto-Front. Das System wählt eine Variante aus, die bei einer bestimmten Testgruppe das maximale Ergebnis zeigte.
  2. Ausführung auf einem kleinen Datensatz. Dabei werden alle Ausführungslogs und Fehler gesammelt.
  3. Reflexion. Das Reflector-Modell liest textuelle Fehlerlogs und formuliert Diagnosen.
  4. Mutation. Eine neue Version des Prompts oder Codes wird erstellt, wobei vergangene Fehler aller Vorfahren berücksichtigt werden.
  5. Entscheidungsfindung. Der neue Kandidat wird zum gemeinsamen Pool hinzugefügt, wenn er echte Verbesserungen zeigte.

Alle Diagnosen werden in der Terminologie der Autoren als Actionable Side Information bezeichnet. In der Textoptimierung dient dies als Äquivalent zum Gradienten aus dem klassischen maschinellen Lernen.

AIME Prompt Example

So schreibst du Code

Du kannst die Bibliothek von PyPI installieren:

pip install gepa

Das Projekt hat eine einfache API namens optimize_anything. Damit kannst du nicht nur Prompts, sondern beliebige Text-Artefakte optimieren:

import gepa.optimize_anything as oa
from gepa.optimize_anything import GEPAConfig, EngineConfig, optimize_anything


def evaluate(candidate: str) -> float:
    result = run_my_system(candidate)
    oa.log(f"Output: {result.output}")
    oa.log(f"Error: {result.error}")
    return result.score


result = optimize_anything(
    seed_candidate="Начальный текст инструкции или кода",
    evaluator=evaluate,
    objective="Уменьшить количество ошибок форматирования вывода",
    config=GEPAConfig(engine=EngineConfig(max_metric_calls=100)),
)

Logs, die über oa.log() gesendet werden, gehen genau an das Reflector-Modell zur Fehlererkennung. Wenn du bereits DSPy verwendest, ist das Tool out-of-the-box als dspy.GEPA verfügbar.

Wann sich das Optimieren über GEPA wirklich lohnt

Die Methode funktioniert am besten in folgenden Szenarien:

  • Agents mit vielen externen Tools werden ausgeführt
  • Kleine Trainingsdatensätze mit nur 5–10 Beispielen
  • Closed Models ohne Zugriff auf Gewichte über die API
  • Teure oder langsame Aufrufe, einschließlich Code-Kompilierung und Simulationen

Wo RL 5.000–25.000 Durchläufe zur Konvergenz benötigt, braucht dieser Algorithmus normalerweise nur 100–500 Auswertungen.

Das Fazit

Das Framework adressiert das schmerzhafte Thema des manuellen Text-Instruction-Tunings. Es ist schön, dass das Tool bereits in MLflow, Pydantic AI und Google ADK integriert wurde, sodass du keinen Haufen zusätzlichen Code in dein Projekt schleppen musst. Beginne mit dem kurzen Tutorial in der Dokumentation oder führe optimize_anything auf ein paar deiner problematischsten Prompts aus.

Ähnliche Projekte