---
title: "Code-A1: Adversarial Evolving of Code LLM and Test LLM via Reinforcement Learning"
title_zh: "Code-A1：基于强化学习的代码与测试大模型对抗演化"
arxiv_id: "2603.15611"
paper_type: "method"
source_kind: "raw"
raw_path: "raw/papers/2026/03/2603.15611.md"
generated: "2026-05-11"
model: "LongCat-Flash-Chat"
quality: "ok"
---

# Code-A1：基于强化学习的代码与测试大模型对抗演化

## 一句话定位

提出 Code-A1 框架，通过分离代码生成与测试生成模型并赋予对抗性目标，结合 Mistake Book 经验回放机制，实现动态、自适应的代码强化学习训练。

## 小学生也能听懂

这篇论文像让两个AI小朋友比赛：一个写代码，一个出考题，互相“斗智斗勇”。出题的能看到代码，专挑毛病；写代码的要通过更多考题。它们一边学一边进步，最后写的代码更靠谱，出的题也更难更准。

## 为什么值得记录

- 解决了传统静态测试集无法适应模型能力提升的问题，避免了过时或过于严苛的测试导致的奖励失真。
- 克服了自博弈（self-play）方法中因单模型统一生成代码与测试而导致的白盒自勾结（self-collusion）风险，即模型生成简单测试以获取高回报。
- 通过对抗性共同演化机制，实现了代码鲁棒性与测试严格性的同步提升，显著增强了测试生成的判别能力。
- 在 Qwen2.5-Coder 系列模型上验证，Code-A1 在代码生成性能上达到或超越基于人工标注测试的基线，同时测试生成能力显著优于参数规模更大的模型。

## 核心方法

- 采用双模型架构：Code LLM 负责生成代码，Test LLM 负责生成测试，二者目标对立（Code LLM 追求通过更多测试，Test LLM 追求暴露更多缺陷），从结构上杜绝自勾结。
- Test LLM 在生成测试时具备白盒访问权限，可检查候选代码以生成针对性强的对抗性测试，克服了黑盒测试泛化性差、难以发现实现特定缺陷的局限。
- 引入 Mistake Book 机制作为经验回放缓冲区，记录每个问题历史上失败的测试，用于稳定奖励计算、提供课程学习信号并防止灾难性遗忘。
- 为 Test LLM 设计复合奖励函数，平衡测试有效性（validity）与对抗难度（adversarial difficulty），通过超参数 α 调节二者权重，避免生成无效或过于简单的测试。
- 使用 Group Relative Policy Optimization (GRPO) 进行策略优化，并对 Test LLM 采用 TopVar 算法进行非对称采样，仅选择奖励方差最高的测试组进行更新，以平衡训练计算开销。

## 关键结果

- 在 HumanEval^+、MBPP^+ 和 BigCodeBench 代码生成基准测试中，Code-A1 在所有模型规模（1.5B, 3B, 7B）上均优于 Golden Tests（基于人工测试）和 Self-Play 基线，平均准确率（Avg）最高。
- 在 UnLeakedTestBench 测试生成评估中，Code-A1 的 Mul 指标（pass@k × mut@k）显著优于其他方法，例如 3B 模型的 Mul 得分（15.29）超过了 7B 基础模型（14.72），体现了对抗演化在发现缺陷模式上的高效性。
- 消融实验表明，移除预测答案、候选代码访问或 Mistake Book 均会导致性能下降，证实了白盒访问、多目标优化和经验回放的关键作用；α=0.5 时取得最优平衡。

## 局限与风险

- 训练过程依赖 Ground Truth 代码来验证生成测试的有效性，限制了其在缺乏参考实现的领域中的应用。
- 当前框架要求测试为断言格式（assert func(*args) == answer），难以支持状态交互、I/O 测试或基于属性的测试等更复杂的测试场景。
- 实验仅在 Python 函数级代码生成任务上验证，其对抗演化机制在其他编程语言、更长上下文或非代码推理任务（如数学定理证明）上的泛化性有待进一步研究。

## 适合沉淀的概念

`adversarial-co-evolution`, `code-llm`, `test-llm`, `mistake-book`, `reinforcement-learning-for-code`, `white-box-test-generation`, `self-collusion`, `composite-reward-design`, `group-relative-policy-optimization-grpo`, `experience-replay`

## 阅读注意

- 重点关注第 3 节 Methods，特别是对抗性推演（Adversarial Rollout）四步骤和 Mistake Book 的结构与更新规则，这是理解其核心机制的关键。
- 注意第 4.2 节 Main Results 中 Code-A1 与 Self-Play 的对比，分析白盒访问如何带来性能优势。
- 查看附录 D 的训练流水线图（Figure 6），有助于直观理解整个训练流程的协同过程。
- 附录 C 与 CURE 的对比揭示了参数效率优势，值得留意。
- 附录 F 的局限性部分指出了未来可能的研究方向。

## 质量说明

- 采用来源：`raw`，`raw/papers/2026/03/2603.15611.md`
- 生成模型：`LongCat-Flash-Chat`
- 源材料判断：源材料完整，包含摘要、引言、方法、实验、分析、结论及详细附录，信息充分，足以支撑研究卡片的生成。
