1 |
Aligning language models to code : exploring efficient, temporal, and preference alignment for code generationWeyssow, Martin 09 1900 (has links)
Pre-trained and large language models (PLMs, LLMs) have had a transformative impact on the artificial intelligence (AI) for software engineering (SE) research field.
Through large-scale pre-training on terabytes of natural and programming language data, these models excel in generative coding tasks such as program repair and code generation.
Existing approaches to align the model's behaviour with specific tasks propose using parameter-free methods like prompting or fine-tuning to improve their effectiveness.
Nevertheless, it remains unclear how to align code PLMs and LLMs to more complex scenarios that extend beyond task effectiveness.
We focus on model alignment in three overlooked scenarios for code generation, each addressing a specific objective: optimizing fine-tuning costs, aligning models with new data while retaining previous knowledge, and aligning with user coding preferences or non-functional requirements.
We explore these scenarios in three articles, which constitute the main contributions of this thesis.
In the first article, we conduct an empirical study on parameter-efficient fine-tuning techniques (PEFTs) for code LLMs in resource-constraint settings.
Our study reveals the superiority of PEFTs over few-shot learning, showing that PEFTs like LoRA and QLoRA allow fine-tuning LLMs with up to 33 billion parameters on a single 24GB GPU without compromising task effectiveness.
In the second article, we examine the behaviour of code PLMs in a continual fine-tuning setting, where the model acquires new knowledge from sequential domain-specific datasets.
Each dataset introduces new data about third-party libraries not seen during pre-training or previous fine-tuning.
We demonstrate that sequential fine-tuning leads to catastrophic forgetting and implement replay- and regularization-based continual learning approaches, showcasing their superiority in balancing task effectiveness and knowledge retention.
In our third article, we introduce CodeUltraFeedback and CODAL-Bench, a novel dataset and benchmark for aligning code LLMs to user coding preferences or non-functional requirements.
Our experiments reveal that tuning LLMs with reinforcement learning techniques like direct preference optimization (DPO) using CodeUltraFeedback results in better-aligned LLMs to coding preferences and substantial improvement in the functional correctness of LLM-generated code. / Les modèles de langue pré-entraînés et de grande taille (PLMs, LLMs) ont eu un impact
transformateur sur le domaine de la recherche en intelligence artificielle (IA) pour l’ingénierie
logicielle (SE). Grâce à un pré-entraînement à grande échelle sur des téraoctets de données
en langage naturel et de programmation, ces modèles excellent dans les tâches de codage
génératif telles que la réparation de programmes et la génération de code. Les approches
existantes pour aligner le comportement du modèle avec des tâches spécifiques proposent
l’utilisation de méthodes non paramétriques telles que le prompting ou le fine-tuning pour
améliorer leur efficacité. Néanmoins, il reste incertain comment aligner les PLMs et LLMs de
code sur des scénarios plus complexes qui nécessitent plus que garantir l’efficacité du modèle
sur des tâches cibles. Nous nous concentrons sur l’alignement des modèles dans trois scénarios
négligés pour la génération de code, chacun abordant un objectif spécifique: optimiser les
coûts de fine-tuning, aligner les modèles avec de nouvelles données dans le temps tout en
conservant les connaissances antérieures, et aligner les modèles sur les préférences de codage
des utilisateurs ou exigences non fonctionnelles. Nous explorons ces scénarios dans trois
articles, qui constituent les principales contributions de cette thèse.
Dans le premier article, nous réalisons une étude empirique sur les techniques de finetuning efficaces en paramètres (PEFTs) pour les LLMs de code dans des environnements
à ressources limitées. Notre étude révèle la supériorité des PEFTs par rapport au few-shot
learning, montrant que des PEFTs comme LoRA et QLoRA permettent de fine-tuner des
LLMs jusqu’à 33 milliards de paramètres sur un seul GPU de 24Go sans compromettre
l’efficacité sur les tâches. Dans le deuxième article, nous examinons le comportement des
PLMs de code dans un contexte de fine-tuning continu, où le modèle acquiert de nouvelles
connaissances à partir de jeux de données séquentiels. Chaque jeu de données introduit
de nouvelles informations sur des bibliothèques tierces non vues lors de la phase de préentraînement ou dans les jeux de données de fine-tuning précédents. Nous démontrons que le
fine-tuning séquentiel conduit à de l’oubli catastrophique et mettons en œuvre des approches
d’apprentissage continu basées sur le replay et la régularisation, et montrons leur supériorité
pour balancer l’efficacité du modèle et la rétention des connaissances. Dans notre troisième
article, nous introduisons CodeUltraFeedback et CODAL-Bench, un nouveau jeu de données
et un banc d’essai pour aligner les LLMs de code sur les préférences de codage des utilisateurs
ou exigences non fonctionnelles. Nos expériences révèlent que le tuning des LLMs avec des
techniques d’apprentissage par renforcement comme l’optimisation directe des préférences
(DPO) utilisant CodeUltraFeedback résulte en des LLMs mieux alignés sur les préférences de
codage et une amélioration substantielle de l’exactitude fonctionnelle des codes générés. Read more
|
Page generated in 0.0833 seconds