Goldene Beispiele für bessere Code-Reparatur mit KI
In-Context Learning (ICL) mit großen Sprachmodellen (LLMs) hat sich als wirksame Methode erwiesen, um Modelle durch Beispiele in einer Aufgabe zu führen, ohne sie neu zu trainieren. Typische Ansätze wie One-Shot, Few-Shot oder Chain-of-Thought nutzen vorgegebene Eingabe-Ausgabe-Paare, um das Verhalten des Modells zu steuern. Doch die Auswahl der Beispiele bleibt oft willkürlich und ineffizient – nicht alle Beispiele tragen gleich viel zur Verbesserung der Leistung bei. Google DeepMind adressiert dieses Problem mit dem Ansatz AuPair: Golden Example Pairs for Code Repair, einem systematischen Framework zur Identifikation hochwirksamer Beispielpaare für die Fehlerbehebung in Code. Der Kern von AuPair liegt in einer zweistufigen Strategie. Zunächst wird ein großes Pool an möglichen Beispielpaaren generiert, bestehend aus fehlerhafter Codezeile und korrekter Reparatur. Diese Kandidaten werden dann anhand ihrer Wirksamkeit bewertet. Dazu wird ein Validierungsdatensatz mit defektem Code erstellt. Für jedes Problem wird jedes Beispielpaar als 1-Shot-Beispiel verwendet, um eine Reparatur vorzuschlagen. Die resultierenden Lösungen werden anhand von Unit-Tests bewertet, wodurch eine Qualitätsmatrix M entsteht, in der M[i,j] angibt, wie gut Beispielpaar i bei der Lösung von Problem j hilft. Anschließend wird ein gieriger Algorithmus angewendet: Zunächst wird das Beispielpaar mit der höchsten durchschnittlichen Bewertung ausgewählt und in die Liste der „Golden Pairs“ (AuPairs) aufgenommen. Danach wird dessen Beitrag von allen verbleibenden Paaren abgezogen, um Redundanz zu vermeiden und Komplementarität sicherzustellen. Dieser Prozess wiederholt sich, bis die Verbesserung unter eine Schwelle fällt. Das Ergebnis ist eine geordnete Liste von nur wenigen, hochwirksamen Beispielen, die jeweils unterschiedliche Reparaturmuster vermitteln. Die Evaluierung zeigt überzeugende Ergebnisse: Auf sieben verschiedenen Code-Datasets und fünf LLMs erreicht AuPair deutlich bessere Leistung als herkömmliche Methoden wie Self-Reflection oder Best-of-N Sampling. Mit nur 12 AuPairs erreicht man die Performance von 32 zufällig ausgewählten Beispielen – eine 2- bis 3-fache Steigerung der Rechen-Effizienz. Interessanterweise funktionieren AuPairs, die auf CodeForces-Daten trainiert wurden, auch gut auf anderen Plattformen wie HackerEarth oder AtCoder, was auf die Übertragbarkeit der Methode hindeutet. Trotz der Erfolge hat AuPair einige Einschränkungen. Es erfordert erhebliche Rechenkosten, da viele LLM-Aufrufe für die Generierung und Bewertung von Beispielpaaren notwendig sind. Zudem hängt die Methode stark von gut definierten Bewertungskriterien ab – wie Unit-Tests –, die in vielen Anwendungsbereichen fehlen. Außerdem basiert die Annahme, dass komplementäre Beispiele besser sind, auf der Annahme, dass sie unterschiedliche Muster vermitteln, was nicht in allen Domänen zwingend gilt. Zudem wurden die Tests auf strukturierte Wettbewerbsprobleme beschränkt, nicht auf komplexe, realweltrelevante Codebasen. Industrieexperten sehen in AuPair einen wichtigen Schritt hin zu intelligenten, datenbasierten Ansätzen für ICL. Unternehmen wie Microsoft und Anthropic arbeiten bereits an ähnlichen Techniken zur Optimierung von Prompt-Engineering. Die Methode zeigt, dass die Qualität der Beispiele entscheidend ist – nicht nur die Menge. Für Anwendungen wie Text-to-SQL oder Dokumentenverarbeitung könnte ein ähnlicher Ansatz helfen, effektive, generalisierbare Beispielsets zu erstellen. Obwohl der Aufwand hoch ist, lohnt sich die Investition, da die goldenen Beispiele langfristig stabil, effizient und übertragbar sind. AuPair eröffnet damit neue Wege für eine systematische, datengestützte Verbesserung von In-Context Learning.