HyperAIHyperAI
vor 16 Tagen

Graphbasierte, selbstüberwachte Programmreparatur auf Basis diagnostischer Rückmeldungen

Michihiro Yasunaga, Percy Liang
Graphbasierte, selbstüberwachte Programmreparatur auf Basis diagnostischer Rückmeldungen
Abstract

Wir betrachten das Problem des Lernens zur Reparatur von Programmen anhand diagnostischer Rückmeldungen (z. B. Compiler-Fehlermeldungen). Die Programmarbeit ist herausfordernd aus zwei Gründen: Erstens erfordert sie das Schlussfolgern und Verfolgen von Symbolen über den Quellcode und die diagnostischen Rückmeldungen hinweg. Zweitens sind die zur Verfügung stehenden beschrifteten Datensätze für die Programmarbeit relativ klein. In dieser Arbeit stellen wir neuartige Lösungen für diese beiden Herausforderungen vor. Erstens führen wir einen Program-Feedback-Graphen ein, der relevante Symbole im Quellcode und in den diagnostischen Rückmeldungen verknüpft, und wenden anschließend ein Graph Neural Network an, um den Schlussfolgerungsprozess zu modellieren. Zweitens präsentieren wir ein Selbstüberwachungslernparadigma für die Programmarbeit, das unbeschriftete Programme, die online verfügbar sind, nutzt, um eine große Menge zusätzlicher Reparaturbeispiele zu generieren, die wir zur Vortrainierung unserer Modelle verwenden. Wir evaluieren unseren Ansatz an zwei Anwendungen: der Korrektur einführender Programmieraufgaben (DeepFix-Datensatz) und der Korrektur der Ausgaben von Programmsynthese (SPoC-Datensatz). Unser endgültiges System, DrRepair, übertrifft signifikant vorherige Ansätze und erreicht auf dem DeepFix-Datensatz eine vollständige Reparaturquote von 68,2 % (+22,9 % gegenüber dem besten vorherigen Ergebnis) und auf dem SPoC-Datensatz eine Syntheseratenerfolgsquote von 48,4 % (+3,7 % gegenüber dem besten vorherigen Ergebnis).

Graphbasierte, selbstüberwachte Programmreparatur auf Basis diagnostischer Rückmeldungen | Neueste Forschungsarbeiten | HyperAI