Code-A1 : Évolution antagoniste d'un LLM de code et d'un LLM de test par apprentissage par renforcement
Code-A1: Adversarial Evolving of Code LLM and Test LLM via Reinforcement Learning
March 16, 2026
Auteurs: Aozhe Wang, Yuchen Yan, Nan Zhou, Zhengxi Lu, Weiming Lu, Jun Xiao, Yueting Zhuang, Yongliang Shen
cs.AI
Résumé
L'apprentissage par renforcement pour la génération de code repose sur des récompenses vérifiables via les taux de réussite aux tests unitaires. Cependant, les suites de tests de haute qualité sont rares, les ensembles de données existants offrent une couverture limitée, et les récompenses statiques ne s'adaptent pas à l'amélioration des modèles. Les méthodes récentes d'auto-jeu unifient la génération de code et de tests dans un seul modèle, mais se heurtent à un dilemme inhérent : un accès en boîte blanche mène à une auto-collusion où le modèle produit des tests triviaux pour des récompenses faciles, tandis qu'une restriction en boîte noire génère des tests génériques qui ne détectent pas les bogues spécifiques à l'implémentation. Nous présentons Code-A1, un cadre de coévolution antagoniste qui optimise conjointement un LLM de Code et un LLM de Test avec des objectifs opposés. Le LLM de Code est récompensé pour réussir plus de tests, tandis que le LLM de Test est récompensé pour exposer plus de défauts. Cette séparation architecturale élimine les risques d'auto-collusion et permet en toute sécurité la génération de tests en boîte blanche, où le LLM de Test peut inspecter le code candidat pour concevoir des tests antagonistes ciblés. Nous introduisons en outre un mécanisme de Livre des Erreurs pour la relecture d'expérience et une récompense composite équilibrant la validité des tests avec la difficulté antagoniste. Les expériences sur les modèles Qwen2.5-Coder démontrent que Code-A1 atteint des performances de génération de code égalant ou dépassant les modèles entraînés sur des tests annotés par des humains, tout en améliorant significativement la capacité de génération de tests.
English
Reinforcement learning for code generation relies on verifiable rewards from unit test pass rates. Yet high-quality test suites are scarce, existing datasets offer limited coverage, and static rewards fail to adapt as models improve. Recent self-play methods unify code and test generation in a single model, but face a inherent dilemma: white-box access leads to self-collusion where the model produces trivial tests for easy rewards, yet black-box restriction yields generic tests that miss implementation-specific bugs. We introduce Code-A1, an adversarial co-evolution framework that jointly optimizes a Code LLM and a Test LLM with opposing objectives. The Code LLM is rewarded for passing more tests, while the Test LLM is rewarded for exposing more defects. This architectural separation eliminates self-collusion risks and safely enables white-box test generation, where the Test LLM can inspect candidate code to craft targeted adversarial tests. We further introduce a Mistake Book mechanism for experience replay and a composite reward balancing test validity with adversarial difficulty. Experiments on Qwen2.5-Coder models demonstrate that Code-A1 achieves code generation performance matching or exceeding models trained on human-annotated tests, while significantly improving test generation capability.