Pas de ressources, pas de benchmarks, pas de problème ? Évaluation et amélioration des LLMs pour la génération de code dans les langues sans ressources
No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages
June 15, 2026
Auteurs: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Résumé
Les grands modèles de langage (LLMs) ont considérablement fait progresser l'automatisation des tâches de génie logiciel. Un exemple emblématique est la génération de code, où un LLM produit du code dans un langage de programmation spécifié à partir d'une description en langage naturel. La plupart des recherches dans ce domaine se sont concentrées sur les langues à hautes ressources, comme Python ou Java, qui bénéficient de données d'entraînement abondantes. Un nombre plus restreint de travaux a exploré les langues à faibles ressources, sous-représentées dans les corpus d'entraînement. En revanche, les langues sans ressources, pour lesquelles les LLMs n'ont pratiquement vu aucune donnée d'entraînement, restent largement inétudiées. Ces langues émergent souvent dans l'industrie, où les organisations développent des langages propriétaires ou spécifiques à un domaine, non pris en charge par des outils commerciaux tels que GitHub Copilot. Cela entraîne la nécessité pour les entreprises de déployer leurs propres systèmes de recommandation de code internes. Afin d'étudier des solutions possibles dans ce contexte, nous construisons et publions trois bancs d'essai de génération de code pour les langues sans ressources, basés sur deux langages de programmation récemment proposés pour lesquels très peu de données d'entraînement sont disponibles. À l'aide de ces bancs d'essai, nous expérimentons plusieurs solutions pour enseigner aux LLMs les langues sans ressources, notamment des techniques basées sur les invites ainsi que du pré-entraînement et de l'ajustement fin exploitant les rares données disponibles. Bien que le pré-entraînement supplémentaire offre les plus grands gains de performance pour les langues sans ressources, l'appliquer directement à des modèles ajustés par instructions nuit à leur capacité à suivre les instructions. Pour y remédier, nous partons d'un modèle de base, le pré-entraînons davantage sur la langue cible, puis injectons des capacités de suivi d'instructions via un transfert par différence de poids à partir d'un modèle d'instructions. Une telle approche améliore significativement les capacités de génération de code dans les contextes sans ressources, permettant aux entreprises de déployer à moindre coût un modèle spécialisé dans les instructions sans avoir à supporter le coût computationnel de l'ajustement fin par instructions.
English
Large Language Models (LLMs) have significantly advanced the automation of software engineering tasks. One prominent example is code generation, where an LLM produces code in a specified programming language based on a natural language description. Most research in this area has focused on high-resource languages, such as Python or Java, which benefit from abundant training data. A smaller body of work has explored low-resource languages, which are underrepresented in training corpora. In contrast, no-resource languages for which LLMs have seen virtually no training data remain largely unstudied. These languages often emerge in industry, where organizations develop proprietary or domain-specific languages unsupported by commercial tools like GitHub Copilot. This results in the need for companies to deploy their own in-house code recommenders. To investigate possible solutions in this context, we build and release three code generation benchmarks for no-resource languages, based on two recently proposed programming languages for which very little training data is available. Using these benchmarks, we experiment several solutions to teach LLMs about no-resource languages, including prompt-based techniques as well as pre-training and fine-tuning exploiting the little data available. While further pre-training gives the largest performance gains for no-resource languages, applying it directly to instruction-tuned models harms their ability to follow instructions. To address this, we start from a base model, further pre-training it on the target language, and then inject instruction-following capabilities via weight diff transfer from an instruction model. Such an approach significantly improves code generation capabilities in no-resource settings, allowing companies to cheaply deploy a specialized instruct model without dealing with the computational cost of instruction fine-tuning.