HyperAIHyperAI

Command Palette

Search for a command to run...

Break-It-Fix-It: Unüberwachtes Lernen zur Programmreparatur

Michihiro Yasunaga Percy Liang

Zusammenfassung

Wir betrachten Reparieraufgaben: gegeben sei ein Kritiker (z.B. ein Compiler), der die Qualität einer Eingabe bewertet. Das Ziel ist es, einen Reparaturmechanismus zu trainieren, der ein schlechtes Beispiel (z.B. Code mit Syntaxfehlern) in ein gutes Beispiel (z.B. Code ohne Syntaxfehler) umwandelt. Bestehende Arbeiten erzeugen Trainingsdaten, die aus (schlecht, gut) Paaren bestehen, indem sie gute Beispiele durch Heuristiken (z.B. das Entfernen von Token) verzerren. Allerdings generalisieren Reparaturmechanismen, die auf diesen synthetisch generierten Daten trainiert wurden, nicht gut auf die tatsächliche Verteilung von schlechten Eingaben. Um diese Lücke zu schließen, schlagen wir einen neuen Trainingsansatz vor, den wir Break-It-Fix-It (BIFI) nennen. Dieser Ansatz basiert auf zwei zentralen Ideen: (i) Wir verwenden den Kritiker, um die Ausgabe eines Reparaturmechanismus auf echten schlechten Eingaben zu überprüfen und fügen gute (reparierte) Ausgaben den Trainingsdaten hinzu; und (ii) Wir trainieren einen Brecher, um realistischen schlechten Code aus guten Code zu generieren. Auf dieser Grundlage aktualisieren wir den Brecher und den Reparaturmechanismus iterativ und nutzen sie gemeinsam zur Erzeugung weiterer gepaarter Daten. Wir evaluieren BIFI anhand zweier Code-Reparatur-Datensätze: GitHub-Python, einem neuen Datensatz, den wir einführen und bei dem das Ziel darin besteht, Python-Code mit AST-Parse-Fehlern zu reparieren; und DeepFix, bei dem das Ziel darin besteht, C-Code mit Compilerfehlern zu reparieren. BIFI übertrifft bestehende Methoden und erreicht eine Reparaturgenauigkeit von 90,5 % auf GitHub-Python (+28,5 %) und 71,7 % auf DeepFix (+5,6 %). Besonders erwähnenswert ist dabei, dass BIFI keine etikettierten Daten benötigt; wir hoffen, dass es ein starker Ausgangspunkt für das unüberwachte Lernen verschiedener Reparaturaufgaben sein wird.


KI mit KI entwickeln

Von der Idee bis zum Launch – beschleunigen Sie Ihre KI-Entwicklung mit kostenlosem KI-Co-Coding, sofort einsatzbereiter Umgebung und bestem GPU-Preis.

KI-gestütztes kollaboratives Programmieren
Sofort einsatzbereite GPUs
Die besten Preise

HyperAI Newsletters

Abonnieren Sie unsere neuesten Updates
Wir werden die neuesten Updates der Woche in Ihren Posteingang liefern um neun Uhr jeden Montagmorgen
Unterstützt von MailChimp