论文
多轮 LLM 编程对话中的回归累积
Regression Accumulation in Multi-Turn LLM Programming Conversations
摘要
在LLM辅助软件开发中,编码常常是迭代的。我们研究多轮 LLM 编程对话中的回归累积,其中稍后的代码建议可能会破坏先前轮中引入的要求。因此,可靠性不仅取决于满足当前请求,还取决于保留先前满足的行为。我们从 HumanEval+ 和 MBPP+ 构建了 542 个任务,并将每个任务扩展为 8 轮需求演化链。我们在 26,016 个回合实例 (542 x 6 x 8) 上评估了 6 个 LLM。每次,我们都会测试当前代码是否仍然通过早期的基准测试。我们还分析了失败群体中的 384 个失败案例,并通过独立的四注释器标记构建了多轮回归错误的分类。我们的结果表明,回归累积出现在所有六个模型中:40% 到 73% 的任务在整个对话中丢失了之前正确的行为。跨模型的最终回合质量低于初始回合质量,尤其是当后续回合添加输入验证或更广泛的输入类型时。手动分析表明,交叉转弯冲突(后来的代码与早期需求发生冲突)是主要的失败类别。我们进一步发现,验证门(根据之前的测试检查新代码并触发回滚和重试)是持续改进所有模型的唯一策略,将 DeepSeek-V3 上的最终回合质量从 75.8% 提高到 87.9%,将 Llama-3.1-8B 上的最终回合质量从 31.6% 提高到 47.3%。这些发现表明,强大的单轮性能可能会高估多轮编码对话的可靠性。未来的评估和工具设计应该测试后来的代码建议是否保留了早期的需求,并且应该包括验证门机制。