AutoAlignementDeCode: Auto-alignement pour la génération de code
SelfCodeAlign: Self-Alignment for Code Generation
October 31, 2024
Auteurs: Yuxiang Wei, Federico Cassano, Jiawei Liu, Yifeng Ding, Naman Jain, Zachary Mueller, Harm de Vries, Leandro von Werra, Arjun Guha, Lingming Zhang
cs.AI
Résumé
L'ajustement des instructions est une approche de fine-tuning supervisée qui améliore significativement la capacité des grands modèles de langage (LLM) à suivre les instructions humaines. Nous proposons SelfCodeAlign, le premier pipeline entièrement transparent et permissif pour l'auto-alignement des LLM de code sans annotations humaines étendues ou distillation. SelfCodeAlign utilise le même modèle de base pour l'inférence tout au long du processus de génération de données. Il extrait d'abord des concepts de codage divers à partir de snippets de départ de haute qualité pour générer de nouvelles tâches. Ensuite, il échantillonne plusieurs réponses par tâche, les associe à des cas de test, et les valide dans un environnement sandbox. Enfin, les exemples réussis sont sélectionnés pour l'ajustement des instructions. Dans nos expériences principales, nous utilisons SelfCodeAlign avec CodeQwen1.5-7B pour générer un ensemble de données de 74k paires instruction-réponse. Le fine-tuning sur cet ensemble de données conduit à un modèle qui atteint un score de 67.1 pass@1 sur HumanEval+, dépassant CodeLlama-70B-Instruct malgré sa taille dix fois plus petite. Sur tous les benchmarks, ce modèle finetuned surpasse de manière constante la version originale entraînée avec OctoPack, la méthode précédente de pointe pour l'ajustement des instructions sans annotations humaines ou distillation. De plus, nous montrons que SelfCodeAlign est efficace sur des LLM de différentes tailles, de 3B à 33B, et que les modèles de base peuvent bénéficier davantage de l'alignement avec leur propre distribution de données. Nous validons en outre l'efficacité de chaque composant de notre pipeline, montrant que SelfCodeAlign surpasse à la fois la distillation directe de GPT-4o et les méthodes de distillation basées sur GPT-3.5, telles que OSS-Instruct et Evol-Instruct. SelfCodeAlign a également conduit à la création de StarCoder2-Instruct, le premier LLM de code entièrement transparent, sous licence permissive et auto-aligné qui atteint des performances de codage de pointe.
English
Instruction tuning is a supervised fine-tuning approach that significantly
improves the ability of large language models (LLMs) to follow human
instructions. We propose SelfCodeAlign, the first fully transparent and
permissive pipeline for self-aligning code LLMs without extensive human
annotations or distillation. SelfCodeAlign employs the same base model for
inference throughout the data generation process. It first extracts diverse
coding concepts from high-quality seed snippets to generate new tasks. It then
samples multiple responses per task, pairs each with test cases, and validates
them in a sandbox environment. Finally, passing examples are selected for
instruction tuning. In our primary experiments, we use SelfCodeAlign with
CodeQwen1.5-7B to generate a dataset of 74k instruction-response pairs.
Finetuning on this dataset leads to a model that achieves a 67.1 pass@1 on
HumanEval+, surpassing CodeLlama-70B-Instruct despite being ten times smaller.
Across all benchmarks, this finetuned model consistently outperforms the
original version trained with OctoPack, the previous state-of-the-art method
for instruction tuning without human annotations or distillation. Additionally,
we show that SelfCodeAlign is effective across LLMs of various sizes, from 3B
to 33B, and that the base models can benefit more from alignment with their own
data distribution. We further validate each component's effectiveness in our
pipeline, showing that SelfCodeAlign outperforms both direct distillation from
GPT-4o and leading GPT-3.5-based distillation methods, such as OSS-Instruct and
Evol-Instruct. SelfCodeAlign has also led to the creation of
StarCoder2-Instruct, the first fully transparent, permissively licensed, and
self-aligned code LLM that achieves state-of-the-art coding performance.Summary
AI-Generated Summary