ChatPaper.aiChatPaper

Leitfaden für Sprachmodelle von Code mit globalem Kontext durch die Verwendung von Monitoren

Guiding Language Models of Code with Global Context using Monitors

June 19, 2023
Autoren: Lakshya A Agrawal, Aditya Kanade, Navin Goyal, Shuvendu K. Lahiri, Sriram K. Rajamani
cs.AI

Zusammenfassung

Sprachmodelle für Code (LMs) funktionieren gut, wenn der umgebende Code in der Nähe der Generierung ausreichend Kontext bietet. Dies trifft jedoch nicht zu, wenn es notwendig wird, Typen oder Funktionalitäten zu verwenden, die in einem anderen Modul oder einer Bibliothek definiert sind, insbesondere solchen, die während des Trainings nicht gesehen wurden. LMs leiden unter einem begrenzten Bewusstsein für solchen globalen Kontext und neigen dazu, Halluzinationen zu erzeugen, z. B. indem sie Typen, die in anderen Dateien definiert sind, falsch verwenden. Aktuelle Arbeiten versuchen, dieses Problem zu überwinden, indem sie globale Informationen abrufen, um den lokalen Kontext zu erweitern. Dies führt jedoch zu einer Aufblähung des Prompts oder erfordert Architekturänderungen und zusätzliches Training. Integrierte Entwicklungsumgebungen (IDEs) unterstützen Entwickler, indem sie den globalen Kontext mithilfe von statischer Analyse leicht zugänglich machen. Wir erweitern diese Unterstützung, die Entwickler genießen, auf die LMs. Wir schlagen das Konzept von Monitoren vor, die im Hintergrund statische Analyse verwenden, um die Dekodierung zu steuern. Im Gegensatz zu einem a-priori-Abruf wird die statische Analyse während des gesamten Dekodierungsprozesses iterativ aufgerufen und liefert die relevantesten Vorschläge bedarfsgerecht. Wir demonstrieren den Nutzen unseres Vorschlags, indem wir die typkonsistente Verwendung von Identifikatoren überwachen, sobald ein LM Code für die Objektdereferenzierung generiert. Um unseren Ansatz zu evaluieren, haben wir PragmaticCode kuratiert, einen Datensatz von Open-Source-Projekten mit ihren Entwicklungsumgebungen. An Modellen mit unterschiedlichem Parameterumfang zeigen wir, dass die monitor-gesteuerte Dekodierung die Fähigkeit eines LMs, nicht nur Identifikatoren zu generieren, die mit der Grundwahrheit übereinstimmen, sondern auch die Kompilierungsraten und die Übereinstimmung mit der Grundwahrheit, kontinuierlich verbessert. Wir stellen fest, dass LMs mit weniger Parametern, wenn sie mit unserem Monitor gesteuert werden, größere LMs übertreffen können. Mit monitor-gesteuerter Dekodierung erreicht SantaCoder-1.1B eine bessere Kompilierungsrate und Übereinstimmung des nächsten Identifikators als das viel größere text-davinci-003-Modell. Die Datensätze und der Code werden unter https://aka.ms/monitors4codegen veröffentlicht.
English
Language models of code (LMs) work well when the surrounding code in the vicinity of generation provides sufficient context. This is not true when it becomes necessary to use types or functionality defined in another module or library, especially those not seen during training. LMs suffer from limited awareness of such global context and end up hallucinating, e.g., using types defined in other files incorrectly. Recent work tries to overcome this issue by retrieving global information to augment the local context. However, this bloats the prompt or requires architecture modifications and additional training. Integrated development environments (IDEs) assist developers by bringing the global context at their fingertips using static analysis. We extend this assistance, enjoyed by developers, to the LMs. We propose a notion of monitors that use static analysis in the background to guide the decoding. Unlike a priori retrieval, static analysis is invoked iteratively during the entire decoding process, providing the most relevant suggestions on demand. We demonstrate the usefulness of our proposal by monitoring for type-consistent use of identifiers whenever an LM generates code for object dereference. To evaluate our approach, we curate PragmaticCode, a dataset of open-source projects with their development environments. On models of varying parameter scale, we show that monitor-guided decoding consistently improves the ability of an LM to not only generate identifiers that match the ground truth but also improves compilation rates and agreement with ground truth. We find that LMs with fewer parameters, when guided with our monitor, can outperform larger LMs. With monitor-guided decoding, SantaCoder-1.1B achieves better compilation rate and next-identifier match than the much larger text-davinci-003 model. The datasets and code will be released at https://aka.ms/monitors4codegen .
PDF72December 15, 2024