ChatPaper.aiChatPaper

Guider les modèles de langage de code avec un contexte global grâce à des moniteurs

Guiding Language Models of Code with Global Context using Monitors

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

Résumé

Les modèles de langage pour le code (LMs) fonctionnent bien lorsque le code environnant à proximité de la génération fournit un contexte suffisant. Ce n'est pas le cas lorsqu'il devient nécessaire d'utiliser des types ou des fonctionnalités définis dans un autre module ou bibliothèque, en particulier ceux qui n'ont pas été vus pendant l'entraînement. Les LMs souffrent d'une conscience limitée de ce contexte global et finissent par halluciner, par exemple en utilisant incorrectement des types définis dans d'autres fichiers. Des travaux récents tentent de surmonter ce problème en récupérant des informations globales pour enrichir le contexte local. Cependant, cela gonfle l'invite ou nécessite des modifications architecturales et un entraînement supplémentaire. Les environnements de développement intégrés (IDEs) assistent les développeurs en mettant le contexte global à portée de main grâce à l'analyse statique. Nous étendons cette assistance, appréciée par les développeurs, aux LMs. Nous proposons une notion de moniteurs qui utilisent l'analyse statique en arrière-plan pour guider le décodage. Contrairement à une récupération a priori, l'analyse statique est invoquée de manière itérative tout au long du processus de décodage, fournissant les suggestions les plus pertinentes à la demande. Nous démontrons l'utilité de notre proposition en surveillant l'utilisation cohérente des types pour les identifiants chaque fois qu'un LM génère du code pour le déréférencement d'objet. Pour évaluer notre approche, nous avons constitué PragmaticCode, un ensemble de données de projets open-source avec leurs environnements de développement. Sur des modèles de différentes échelles de paramètres, nous montrons que le décodage guidé par moniteur améliore systématiquement la capacité d'un LM non seulement à générer des identifiants correspondant à la vérité terrain, mais aussi à améliorer les taux de compilation et l'accord avec la vérité terrain. Nous constatons que les LMs avec moins de paramètres, lorsqu'ils sont guidés par notre moniteur, peuvent surpasser des LMs plus grands. Avec le décodage guidé par moniteur, SantaCoder-1.1B obtient un meilleur taux de compilation et une meilleure correspondance du prochain identifiant que le modèle beaucoup plus grand text-davinci-003. Les ensembles de données et le code seront publiés à l'adresse https://aka.ms/monitors4codegen.
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