Verbetering van codegeneratie voor talen met weinig bronnen: Geen zilveren kogel
Enhancing Code Generation for Low-Resource Languages: No Silver Bullet
January 31, 2025
Auteurs: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Samenvatting
De opkomst van Grote Taalmodellen (LLM's) heeft het vakgebied van geautomatiseerde codegeneratie aanzienlijk vooruit geholpen. LLM's vertrouwen op grote en diverse datasets om de syntaxis, semantiek en gebruikspatronen van programmeertalen te leren. Voor talen met beperkte bronnen (d.w.z. niche programmeertalen gekenmerkt door de schaarste aan trainingsgegevens) belemmert de beperkte beschikbaarheid van dergelijke gegevens het vermogen van de modellen om effectief te generaliseren, resulterend in een mindere prestatie van codegeneratie in vergelijking met talen met veel bronnen. Om deze reden is er een zoektocht naar technieken die in staat zijn om deze prestatiekloof te dichten. We presenteren een empirische studie die de effectiviteit onderzoekt van verschillende benaderingen om de prestaties van LLM's op talen met beperkte bronnen te verbeteren, namelijk: (i) een klassieke fine-tuning, die echter beperkt is in omvang door de schaarste aan trainingsgegevens; (ii) drie varianten van in-context leren, met prompts die zijn ontworpen om het LLM van aanvullende informatie te voorzien over de taal met beperkte bronnen (bijv. voorbeelden met weinig opnames die kenmerken van de doeltaal laten zien); en (iii) een pre-trainingsdoelstelling die het model leert hoe te vertalen tussen talen met veel en weinig bronnen. De context van onze studie zijn twee talen met beperkte bronnen (R en Racket) en zes LLM's met verschillende architecturen en groottes. Onze bevindingen tonen aan dat fine-tuning meestal de beste keuze is voor kleinere LLM's, mogelijk omdat zelfs een kleine dataset voldoende is om hun beperkte aantal parameters te trainen. Met de toename van de omvang van de modellen wordt in-context leren steeds effectiever, wat een veilige en goedkope gok vertegenwoordigt (d.w.z. het helpt altijd, maar met verschillende mate). Daarentegen kunnen zeer grote LLM's hun prestaties op talen met beperkte bronnen verslechteren wanneer fine-tuning wordt uitgevoerd, mogelijk door het gebrek aan voldoende gegevens die nodig zijn om hun gewichten effectief bij te werken.
English
The advent of Large Language Models (LLMs) has significantly advanced the
field of automated code generation. LLMs rely on large and diverse datasets to
learn syntax, semantics, and usage patterns of programming languages. For
low-resource languages (i.e., niche programming languages characterized by the
scarcity of training data), the limited availability of such data hampers the
models' ability to generalize effectively, resulting in poorer code generation
performance as compared to high-resource languages. For this reason, there is a
quest for techniques able to close this performance gap. We present an
empirical study investigating the effectiveness of several approaches for
boosting LLMs' performance on low-resource languages, namely: (i) a classic
fine-tuning, which is however capped in size by the scarcity of training data;
(ii) three variants of in-context learning, with prompts crafted to provide the
LLM with additional information about the low-resource language (e.g., few-shot
examples showcasing features of the targeted language); and (iii) a
pre-training objective teaching the model how to translate between high- and
low-resource languages. The context of our study are two low-resource languages
(R and Racket) and six LLMs having different architectures and sizes. Our
findings reveal that a fine-tuning is usually the best choice for smaller LLMs,
possibly due to the fact that even a small dataset is sufficient to train their
limited number of parameters. With the increase in size of the models,
in-context learning becomes more and more effective, representing a safe and
cheap bet (i.e., it always helps, but with different magnitudes). Differently,
very large LLMs may deteriorate their performance on low-resource languages
when fine-tuning is performed, possibly due to the lack of enough data needed
to effectively update their weights.Summary
AI-Generated Summary