Entraîner des modèles de langage à générer du code de qualité avec un retour d'analyse de programme
Training Language Models to Generate Quality Code with Program Analysis Feedback
May 28, 2025
Auteurs: Feng Yao, Zilong Wang, Liyuan Liu, Junxia Cui, Li Zhong, Xiaohan Fu, Haohui Mai, Vish Krishnan, Jianfeng Gao, Jingbo Shang
cs.AI
Résumé
La génération de code avec des modèles de langage à grande échelle (LLMs), souvent appelée *vibe coding*, est de plus en plus adoptée en production, mais elle ne parvient pas à garantir la qualité du code, notamment en matière de sécurité (par exemple, les vulnérabilités d'injection SQL) et de maintenabilité (par exemple, l'absence d'annotations de type). Les méthodes existantes, telles que le fine-tuning supervisé et le post-traitement basé sur des règles, reposent sur des annotations laborieuses ou des heuristiques fragiles, limitant ainsi leur évolutivité et leur efficacité. Nous proposons REAL, un cadre d'apprentissage par renforcement qui incite les LLMs à générer du code de qualité production en utilisant des retours guidés par l'analyse de programmes. Plus précisément, REAL intègre deux signaux automatisés : (1) l'analyse de programmes détectant des défauts de sécurité ou de maintenabilité, et (2) les tests unitaires assurant la correction fonctionnelle. Contrairement aux travaux précédents, notre cadre est indépendant des prompts et ne nécessite pas de références, permettant une supervision évolutive sans intervention manuelle. Les expériences menées sur plusieurs jeux de données et échelles de modèles montrent que REAL surpasse les méthodes de pointe dans l'évaluation simultanée de la fonctionnalité et de la qualité du code. Notre travail comble le fossé entre le prototypage rapide et le code prêt pour la production, permettant aux LLMs de concilier vitesse et qualité.
English
Code generation with large language models (LLMs), often termed vibe coding,
is increasingly adopted in production but fails to ensure code quality,
particularly in security (e.g., SQL injection vulnerabilities) and
maintainability (e.g., missing type annotations). Existing methods, such as
supervised fine-tuning and rule-based post-processing, rely on labor-intensive
annotations or brittle heuristics, limiting their scalability and
effectiveness. We propose REAL, a reinforcement learning framework that
incentivizes LLMs to generate production-quality code using program
analysis-guided feedback. Specifically, REAL integrates two automated signals:
(1) program analysis detecting security or maintainability defects and (2) unit
tests ensuring functional correctness. Unlike prior work, our framework is
prompt-agnostic and reference-free, enabling scalable supervision without
manual intervention. Experiments across multiple datasets and model scales
demonstrate that REAL outperforms state-of-the-art methods in simultaneous
assessments of functionality and code quality. Our work bridges the gap between
rapid prototyping and production-ready code, enabling LLMs to deliver both
speed and quality.