HyperAIHyperAI
vor 12 Tagen

GraphCodeBERT: Vortrainierung von Code-Repräsentationen mit Datenfluss

Daya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng, Duyu Tang, Shujie Liu, Long Zhou, Nan Duan, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin Clement, Dawn Drain, Neel Sundaresan, Jian Yin, Daxin Jiang, Ming Zhou
GraphCodeBERT: Vortrainierung von Code-Repräsentationen mit Datenfluss
Abstract

Vortrainierte Modelle für Programmiersprachen haben erhebliche empirische Fortschritte bei einer Vielzahl von codebezogenen Aufgaben erzielt, wie beispielsweise Code-Suche, Code-Vervollständigung und Code-Zusammenfassung. Allerdings betrachten bestehende vortrainierte Modelle einen Code-Ausschnitt als eine Folge von Token, wobei die inhärente Struktur des Codes ignoriert wird, die entscheidende semantische Informationen liefert und das Verständnis von Code erheblich verbessern könnte. Wir stellen GraphCodeBERT vor, ein vortrainiertes Modell für Programmiersprachen, das die inhärente Struktur des Codes berücksichtigt. Im Gegensatz zu Ansätzen, die auf syntaktischer Ebene wie dem abstrakten Syntaxbaum (AST) basieren, nutzen wir im Vortrainingsstadium die Datenflussstruktur, eine semantische Struktur, die die Beziehung „Wo kommt der Wert her?“ zwischen Variablen kodiert. Diese semantische Struktur ist klar strukturiert und vermeidet die unnötig tiefe Hierarchie, die typisch für ASTs ist, wodurch das Modell effizienter wird. GraphCodeBERT basiert auf der Transformer-Architektur. Neben der herkömmlichen Aufgabe der maskierten Sprachmodellierung führen wir zwei strukturbewusste Vortrainierungsaufgaben ein: die Vorhersage von Strukturkanten im Code und die Ausrichtung der Repräsentationen zwischen Quellcode und Code-Struktur. Wir implementieren das Modell effizient mittels einer graphenorientierten maskierten Aufmerksamkeit, die die Code-Struktur integriert. Wir evaluieren das Modell auf vier Aufgaben: Code-Suche, Klon-Erkennung, Code-Übersetzung und Code-Verbesserung. Die Ergebnisse zeigen, dass die Berücksichtigung der Code-Struktur sowie die neuen Vortrainierungsaufgaben die Leistung von GraphCodeBERT signifikant verbessern und führende Ergebnisse auf allen vier Downstream-Aufgaben erzielen. Zudem zeigen wir, dass das Modell im Rahmen der Code-Suche eine Präferenz für strukturbasierte Aufmerksamkeit gegenüber tokenbasierten Aufmerksamkeiten aufweist.

GraphCodeBERT: Vortrainierung von Code-Repräsentationen mit Datenfluss | Neueste Forschungsarbeiten | HyperAI