HyperAIHyperAI
vor 2 Monaten

CodeT5: Identifier-bewusste einheitliche vortrainierte Encoder-Decoder-Modelle für Code-Verstehen und -Generierung

Wang, Yue ; Wang, Weishi ; Joty, Shafiq ; Hoi, Steven C. H.
CodeT5: Identifier-bewusste einheitliche vortrainierte Encoder-Decoder-Modelle für Code-Verstehen und -Generierung
Abstract

Vorabtrainierte Modelle für natürliche Sprachen (NS) wie BERT und GPT haben kürzlich gezeigt, dass sie sich gut auf Programmiersprachen (PS) übertragen lassen und eine breite Palette von codebezogenen Aufgaben erheblich verbessern. Trotz ihrer Erfolge basieren die meisten aktuellen Methoden entweder auf einem nur-Encoder- (oder nur-Decoder-) Vorabtraining, das für Generierungsaufgaben (bzw. Verständnisaufgaben) suboptimal ist, oder verarbeiten den Codeschnipsel auf die gleiche Weise wie NS, wobei sie die speziellen Merkmale von PS wie Token-Typen vernachlässigen. Wir stellen CodeT5 vor, ein vereintes vorabtrainiertes Encoder-Decoder-Transformer-Modell, das die im Code durch Entwickler zugewiesenen Bezeichner besser nutzt. Unser Modell verwendet einen einheitlichen Rahmen, um sowohl codebezogene Verständnisaufgaben als auch Generierungsaufgaben nahtlos zu unterstützen und ermöglicht das Mehrfach-Aufgaben-Lernen. Darüber hinaus schlagen wir eine neuartige Bezeichnerbewusste Vorabtrainingsaufgabe vor, die dem Modell ermöglicht, zu erkennen, welche Codetoken Bezeichner sind, und diese wiederherzustellen, wenn sie maskiert sind. Des Weiteren schlagen wir vor, die vom Benutzer geschriebenen Codekommentare mit einer bimodalen Dualgenerierungsaufgabe zu nutzen, um eine bessere Ausrichtung zwischen NS und PS zu erreichen. Umfassende Experimente zeigen, dass CodeT5 bei Verständnisaufgaben wie der Erkennung von Codefehlern und Klonerkennung sowie bei Generierungsaufgaben in verschiedenen Richtungen einschließlich PS-NS, NS-PS und PS-PS erheblich bessere Ergebnisse erzielt als frühere Methoden. Eine weitere Analyse ergibt, dass unser Modell semantische Informationen aus dem Code besser erfassen kann. Unser Quellcode und unsere vorabtrainierten Modelle sind unter https://github.com/salesforce/CodeT5 veröffentlicht.

CodeT5: Identifier-bewusste einheitliche vortrainierte Encoder-Decoder-Modelle für Code-Verstehen und -Generierung | Neueste Forschungsarbeiten | HyperAI