ChatPaper.aiChatPaper

Guiando Modelos de Linguagem de Código com Contexto Global usando Monitores

Guiding Language Models of Code with Global Context using Monitors

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

Resumo

Modelos de linguagem de código (LMs) funcionam bem quando o código circundante na vizinhança da geração fornece contexto suficiente. Isso não é verdade quando se torna necessário usar tipos ou funcionalidades definidos em outro módulo ou biblioteca, especialmente aqueles não vistos durante o treinamento. Os LMs sofrem com uma consciência limitada desse contexto global e acabam alucinando, por exemplo, usando tipos definidos em outros arquivos de forma incorreta. Trabalhos recentes tentam superar esse problema recuperando informações globais para aumentar o contexto local. No entanto, isso incha o prompt ou requer modificações na arquitetura e treinamento adicional. Ambientes de desenvolvimento integrados (IDEs) auxiliam os desenvolvedores trazendo o contexto global ao alcance das mãos usando análise estática. Estendemos essa assistência, desfrutada pelos desenvolvedores, aos LMs. Propomos uma noção de monitores que usam análise estática em segundo plano para guiar a decodificação. Diferente da recuperação a priori, a análise estática é invocada iterativamente durante todo o processo de decodificação, fornecendo as sugestões mais relevantes sob demanda. Demonstramos a utilidade de nossa proposta monitorando o uso consistente de tipos de identificadores sempre que um LM gera código para desreferenciação de objetos. Para avaliar nossa abordagem, criamos o PragmaticCode, um conjunto de dados de projetos de código aberto com seus ambientes de desenvolvimento. Em modelos de escala variável de parâmetros, mostramos que a decodificação guiada por monitor melhora consistentemente a capacidade de um LM não apenas de gerar identificadores que correspondem à verdade fundamental, mas também melhora as taxas de compilação e a concordância com a verdade fundamental. Descobrimos que LMs com menos parâmetros, quando guiados por nosso monitor, podem superar LMs maiores. Com a decodificação guiada por monitor, o SantaCoder-1.1B alcança uma taxa de compilação e correspondência de próximo identificador melhor do que o modelo muito maior text-davinci-003. Os conjuntos de dados e o código serão liberados em 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