ChatPaper.aiChatPaper

Guidare i Modelli Linguistici per il Codice con Contesto Globale utilizzando Monitori

Guiding Language Models of Code with Global Context using Monitors

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

Abstract

I modelli linguistici di codice (LMs) funzionano bene quando il codice circostante in prossimità della generazione fornisce un contesto sufficiente. Questo non è vero quando diventa necessario utilizzare tipi o funzionalità definiti in un altro modulo o libreria, specialmente quelli non visti durante l'addestramento. Gli LMs soffrono di una consapevolezza limitata di tale contesto globale e finiscono per allucinare, ad esempio, utilizzando in modo errato tipi definiti in altri file. Recenti lavori cercano di superare questo problema recuperando informazioni globali per arricchire il contesto locale. Tuttavia, questo gonfia il prompt o richiede modifiche all'architettura e ulteriore addestramento. Gli ambienti di sviluppo integrati (IDEs) assistono gli sviluppatori portando il contesto globale a portata di mano utilizzando l'analisi statica. Estendiamo questa assistenza, di cui godono gli sviluppatori, anche agli LMs. Proponiamo una nozione di monitor che utilizzano l'analisi statica in background per guidare la decodifica. A differenza del recupero a priori, l'analisi statica viene invocata iterativamente durante l'intero processo di decodifica, fornendo i suggerimenti più rilevanti su richiesta. Dimostriamo l'utilità della nostra proposta monitorando l'uso coerente dei tipi degli identificatori ogni volta che un LM genera codice per la dereferenziazione di oggetti. Per valutare il nostro approccio, abbiamo curato PragmaticCode, un dataset di progetti open-source con i loro ambienti di sviluppo. Su modelli di varia scala di parametri, mostriamo che la decodifica guidata dal monitor migliora costantemente la capacità di un LM non solo di generare identificatori che corrispondono alla verità di base, ma anche di migliorare i tassi di compilazione e la concordanza con la verità di base. Troviamo che LMs con meno parametri, quando guidati dal nostro monitor, possono superare LMs più grandi. Con la decodifica guidata dal monitor, SantaCoder-1.1B raggiunge un tasso di compilazione migliore e una corrispondenza del prossimo identificatore rispetto al modello molto più grande text-davinci-003. I dataset e il codice saranno rilasciati su 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 .
PDF73March 21, 2026