论文
代码 LLM 中用于生成健全和对抗性测试的两阶段强化学习
Two-Stage Reinforcement Learning for Sound and Adversarial Test Generation in Code LLMs
摘要
强化学习 (RL) 通过可执行反馈,使用 大语言模型 (LLM) 显着提高了代码生成的性能。编码问题的反馈主要来自于具体的测试用例,而高质量的测试用例往往是稀缺的,因为它们应该既健全又具有区分性。因此,我们转而研究使用学习模型自动生成测试用例。我们发现这自然是一个对抗性强化学习问题:模型预计会根据求解器当前的故障模式生成有效的测试用例作为反例。我们提出了测试用例扩展(TCS),这是一个用于有效生成测试的两阶段强化学习框架。这两个阶段都从滚动策略对齐缓冲区中训练测试生成器:第 1 阶段生成与参考解决方案一致的测试,第 2 阶段将缓冲区限制为当前故障模式并学习反例测试。在 TACO 和 LiveCodeBench 中,TCS 根据生成的测试改进了 pass@1 和推理时间答案选择。我们发现学习的测试生成器还可以在其他 LLM 输出中进行有效选择。