ChatPaper.aiChatPaper

Het begeleiden van taalmodellen voor code met globale context door middel van monitors

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

Samenvatting

Taalmodellen voor code (LMs) presteren goed wanneer de omringende code in de nabijheid van de generatie voldoende context biedt. Dit geldt niet wanneer het nodig wordt om types of functionaliteit te gebruiken die gedefinieerd zijn in een andere module of bibliotheek, vooral die welke niet gezien zijn tijdens de training. LMs hebben beperkt besef van dergelijke globale context en gaan hallucineren, bijvoorbeeld door types die in andere bestanden zijn gedefinieerd verkeerd te gebruiken. Recent werk probeert dit probleem te overwinnen door globale informatie op te halen om de lokale context aan te vullen. Dit maakt echter de prompt onnodig groot of vereist aanpassingen aan de architectuur en aanvullende training. Geïntegreerde ontwikkelomgevingen (IDEs) helpen ontwikkelaars door de globale context binnen handbereik te brengen met behulp van statische analyse. Wij breiden deze ondersteuning, die ontwikkelaars genieten, uit naar de LMs. Wij stellen een notie van monitors voor die op de achtergrond statische analyse gebruiken om het decoderen te begeleiden. In tegenstelling tot a priori ophalen, wordt statische analyse iteratief aangeroepen tijdens het gehele decodeerproces, waardoor de meest relevante suggesties op aanvraag worden geboden. Wij demonstreren het nut van ons voorstel door te monitoren op type-consistente gebruik van identificatoren wanneer een LM code genereert voor object dereferentie. Om onze aanpak te evalueren, hebben wij PragmaticCode samengesteld, een dataset van open-source projecten met hun ontwikkelomgevingen. Op modellen van verschillende parameterschaal tonen wij aan dat monitor-gestuurd decoderen consistent de mogelijkheid van een LM verbetert om niet alleen identificatoren te genereren die overeenkomen met de grondwaarheid, maar ook de compilatiesnelheden en overeenstemming met de grondwaarheid verbetert. Wij constateren dat LMs met minder parameters, wanneer begeleid door onze monitor, grotere LMs kunnen overtreffen. Met monitor-gestuurd decoderen behaalt SantaCoder-1.1B een betere compilatiesnelheid en volgende-identificator overeenkomst dan het veel grotere text-davinci-003 model. De datasets en code zullen worden vrijgegeven op 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 .
PDF73December 15, 2024