Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-12276
Autor(en): Huber, Dominik
Titel: Neural models for automatic program repair vs. human developers
Erscheinungsdatum: 2022
Dokumentart: Abschlussarbeit (Master)
Seiten: viii, 67
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-122935
http://elib.uni-stuttgart.de/handle/11682/12293
http://dx.doi.org/10.18419/opus-12276
Zusammenfassung: On the field of automatic program repair, approaches for code repair increasingly employ neural models of code for a variety of tasks. However, the repair performance of APR approaches is relatively low, and the models behave similarly to black boxes in that it is hard to determine why models make certain predictions. A better understanding of how neural models for program repair arrive at their conclusions could lead to improved training methods, model architectures, and increased trust in model predictions. Many neural models feature attention mechanisms, which are one way of gaining insight into the models' reasoning. This thesis approaches this problem by developing an approach for tracking the attention and behavior of human developers working on code repair tasks. We employ the approach in a 27-participant human study and conduct a comparative analysis of the attention gathered from the humans and that extracted from two APR approaches. Regarding repair performance, we find that human developers drastically outperform current APR approaches, with ca. 70% of fix candidates being correct for the humans and only approximately 1% being correct for the models. We further find that there is a weak to moderate but statistically signi_cant correlation between the attention of the models and the humans (mean Spearman rank correlation between 0:34 and 0:43). The correlation analysis also shows that encoding input programs as an AST and limiting the areas of code visible to the model results in an overall more human-like attention distribution. We highlight di_erences in how much attention is paid to the buggy line, and recommend the introduction of a new hyperparameter to balance attention between the buggy line and the context. Finally, we identify two patterns in developer behavior that may benefit the design of future APR approaches.
Für die automatische Reparatur von Programmcode kommen zunehmend häufiger künstliche neuronale Netze zum Einsatz. Die Leistung dieser Netze ist auf diesem Gebiet jedoch noch relativ niedrig, zumal es sehr schwierig ist, die Ausgaben solcher Netze nachzuvollziehen. Eine höhere Erklärbarkeit der Modelle könnte bessere Trainingsmethoden und Architekturen ermöglichen, sowie das Vertrauen in die Modelle erhöhen. Sog. Attention-Mechanismen stellen eine Möglichkeit dar, die Erklärbarkeit von Modellen zu erhöhen. Um dieses Problem zu lösen, erarbeitet die vorliegende Arbeit einen neuartigen Ansatz, um das Verhalten und die Aufmerksamkeitsverteilung von menschlichen Entwicklern bei der Codereparatur aufzuzeichnen. Auf Basis dieser Daten führen wir eine vergleichende Analyse zwischen 27 menschlichen Teilnehmern und zwei neuronalen Modellen durch, um Unterschiede und Gemeinsamkeiten zwischen menschlicher Aufmerksamkeit und den Attention-Mechanismen herauszuarbeiten. Bezüglich der Reparaturleistung stehen die Entwickler klar vor den aktuellen Ansätzen. Etwa 70% der Versuche von Entwicklern sind korrekt, bei den Modellen sind gerade einmal ca. 1% der Reparaturkandidaten korrekt. Weiterhin beobachten wir eine schwache bis mittelmäßige, jedoch statistisch signifikante, Korrelation zwischen der Aufmerksamkeit von Menschen und Attention von Modellen (mittlere Spearman rank Korrelation zwischen 0:34 und 0:43). Ein Einblick aus der Korrelationsanalyse ist, dass die Darstellung von Programmen als abstrakter Syntaxbaum ggf. dem menschlichen Denken ähnlicher ist, als die Darstellung als Token-Sequenz. Die Ergebnisse zeigen starke Unterschiede in der Aufmerksamkeit, die auf die fehlerhafte Zeile gerichtet ist, auf. Wir empfehlen die Einführung eines neuartigen Hyperparameters, um die Balance zwischen fehlerhafter Zeile und Kontext zu steuern. Zuletzt identifizieren wir zwei Verhaltensmuster von menschlichen Entwicklern, die für die weitere Forschung auf dem Gebiet der automatischen Programmreparatur relevant sein können.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
master_thesis_dominik_huber.pdf2,1 MBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.