ChatPaper.aiChatPaper

Guiando Modelos de Lenguaje de Código con Contexto Global mediante 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

Resumen

Los modelos de lenguaje de código (LMs, por sus siglas en inglés) funcionan bien cuando el código circundante en la proximidad de la generación proporciona suficiente contexto. Esto no es cierto cuando se hace necesario utilizar tipos o funcionalidades definidos en otro módulo o biblioteca, especialmente aquellos no vistos durante el entrenamiento. Los LMs sufren de una conciencia limitada de dicho contexto global y terminan alucinando, por ejemplo, utilizando tipos definidos en otros archivos de manera incorrecta. Trabajos recientes intentan superar este problema recuperando información global para aumentar el contexto local. Sin embargo, esto infla la indicación o requiere modificaciones en la arquitectura y entrenamiento adicional. Los entornos de desarrollo integrados (IDEs, por sus siglas en inglés) asisten a los desarrolladores al poner el contexto global al alcance de sus manos mediante análisis estático. Extendemos esta asistencia, disfrutada por los desarrolladores, a los LMs. Proponemos una noción de monitores que utilizan análisis estático en segundo plano para guiar la decodificación. A diferencia de la recuperación a priori, el análisis estático se invoca de manera iterativa durante todo el proceso de decodificación, proporcionando las sugerencias más relevantes bajo demanda. Demostramos la utilidad de nuestra propuesta monitoreando el uso consistente de tipos en identificadores cada vez que un LM genera código para la desreferenciación de objetos. Para evaluar nuestro enfoque, hemos creado PragmaticCode, un conjunto de datos de proyectos de código abierto con sus entornos de desarrollo. En modelos de diferentes escalas de parámetros, mostramos que la decodificación guiada por monitores mejora consistentemente la capacidad de un LM no solo para generar identificadores que coinciden con la verdad de referencia, sino también para mejorar las tasas de compilación y la concordancia con la verdad de referencia. Encontramos que los LMs con menos parámetros, cuando son guiados por nuestro monitor, pueden superar a LMs más grandes. Con la decodificación guiada por monitores, SantaCoder-1.1B logra una mejor tasa de compilación y coincidencia del siguiente identificador que el modelo mucho más grande text-davinci-003. Los conjuntos de datos y el código serán publicados en 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