[Paper] 弥合用户意图与LLM之间的差距:一种需求对齐方法用于代码生成
发布: (2026年4月18日 GMT+8 00:08)
6 分钟阅读
原文: arXiv
Source: arXiv - 2604.16198v1
概述
本文介绍了 REA‑Coder,一种新颖的“需求对齐”循环,弥合用户需求与大型语言模型(LLM)在生成代码时实际理解之间的差距。通过迭代检测不匹配、澄清意图并重新提示模型,REA‑Coder 在多个流行的代码生成基准上始终能够生成更正确的程序。
关键贡献
- Requirement‑Alignment Loop:一种系统化流程,首先识别用户规范中被误解的部分,然后在生成代码前对提示进行细化。
- Iterative Verification:每次生成后,将生成的代码与对齐后的需求进行检查;若出现不匹配,则触发新一轮对齐。
- Model‑agnostic Design:适用于任何能够生成代码的 LLM(已在四种模型上测试),无需特定模型的微调。
- Empirical Gains:在五个广泛使用的编程基准上,相比强基线平均提升 7.9%–30.3%。
- Open‑source Toolkit:作者发布了 REA‑Coder 流水线,便于开发者将其接入现有基于 LLM 的编码助手。
方法论
- 初始提示与生成 – 将用户的自然语言需求输入 LLM,LLM 返回候选程序。
- 对齐检查 – 轻量级验证器(规则基解析器或次级 LLM)将生成的代码与原始需求进行比较,标记任何意图不匹配(例如缺少边缘情况处理、错误的 API 使用)。
- 需求细化 – 系统自动重写提示中模糊的部分,加入在第 2 步中识别出的澄清细节或约束。
- 重新生成 – 将细化后的提示重新发送给 LLM。
- 迭代循环 – 重复步骤 2‑4,直至代码通过所有对齐检查或达到预设的迭代上限。
该循环轻量化:验证使用静态分析或单元测试执行,提示细化利用同一 LLM,使整个流水线实现全自动化。
结果与发现
| 基准 | 基线(最佳) | REA‑Coder | Δ 提升 |
|---|---|---|---|
| HumanEval | 45.2% | 53.1% | +7.9% |
| MBPP | 62.8% | 81.5% | +30.3% |
| CodeContests | 38.4% | 65.1% | +26.8% |
| APPS | 51.0% | 59.6% | +8.6% |
| LeetCode‑Eval | 44.7% | 53.3% | +8.6% |
- 在四种 LLM(GPT‑3.5、Claude‑2、LLaMA‑2‑13B、CodeGen‑6B)上均实现了持续提升。
- 更少的测试用例失败:验证步骤消除了许多标准生成流水线容易忽视的“越界一”或缺失需求的错误。
- 迭代预算:大多数成功运行在 2–3 次迭代内收敛,使交互使用的延迟保持在可接受范围。
实际影响
- 更好的编码助手:将 REA‑Coder 集成到“帮我写函数”的聊天中,可以将其转变为更可靠的工具,在向开发者展示代码前自行纠错。
- 减少手动调试:通过提前捕获需求不匹配,开发者花在追踪因误解规格而产生的逻辑错误的时间更少。
- 更安全的自动化:在自动生成脚本的 CI 流水线(例如数据管道脚手架)中,对齐循环充当护栏,确保生成的代码真正满足声明的契约。
- 低成本适配:由于 REA‑Coder 可与现成的 LLM 一起使用,团队可以在不进行昂贵微调或模型再训练的情况下提升现有服务。
限制与未来工作
- 验证依赖:对齐检查的质量取决于可靠测试用例或静态分析规则的可用性;在高度模糊或新颖的领域,这可能较弱。
- 延迟开销:每次迭代都会增加一次额外的 LLM 调用;虽然大多数情况收敛迅速,但对延迟敏感的应用可能需要更严格的迭代上限。
- 提示漂移:自动重写提示有时会过度指定,限制模型的创造性解决方案。
- 未来方向:作者建议探索学习型验证模型、自适应迭代预算,并将循环扩展到多模块代码库或 UI 驱动的规范。
作者
- Jia Li
- Ruiqi Bai
- Yangkang Luo
- Yiran Zhang
- Wentao Yang
- Zeyu Sun
- Tiankuo Zhao
- Dongming Jin
- Lei Li
- Zhi Jin
论文信息
- arXiv ID: 2604.16198v1
- 分类: cs.SE
- 发布于: 2026年4月17日
- PDF: 下载 PDF