ELABORATION: A Comprehensive Benchmark on Human-LLM Competitive Programming¶
会议: ACL 2025 (Long Paper)
arXiv: 2505.16667
代码: GitHub
领域: 代码生成 / 人机协作 / LLM评估
关键词: Human-LLM Collaboration, Competitive Programming, Human Feedback Taxonomy, Code Generation, Debugging Benchmark
一句话总结¶
提出ELABORATION——首个全面评估人类-LLM协作竞赛编程的基准,包含覆盖编程全流程(理解→规划→编码→调试)的人类反馈分类体系和8320题精标注数据集,实验表明LLM在困难题上仅3.4% Pass@1,但人类反馈(特别是在编码阶段)可平均提升9.3%。
背景与动机¶
LLM在竞赛编程上的表现远未达到实用水平——即使是O1-Mini在未见过的困难题上也仅有30.8% Pass@1。现有研究开始探索人类-LLM协作paradigm,但各研究的人类反馈类型零散不统一:有的只提供解题策略,有的只做调试,缺乏覆盖全编程流程的系统性评估框架。
核心问题¶
如何系统化评估人类反馈在竞赛编程各阶段的有效性?不同水平程序员的反馈效果如何?人类和LLM在bug识别上各有什么优劣势?
方法详解¶
整体框架¶
ELABORATION包含三部分: 1. 人类反馈分类体系:将编程过程分为四阶段,每阶段定义反馈类型 2. Elaborationset数据集:8320题,附带精标注的问题澄清、算法知识、Ground Truth 3. 评估协议:支持LLM模拟器和真人参与者两种模式
关键设计¶
- 四阶段人类反馈分类体系
- 问题理解:澄清需求、规格、边界条件(如"需处理空数组")
- 方案规划:推荐算法、提供伪代码(如"用Dijkstra解最短路")
- 代码生成:建议数据结构、编码细节(如"用二叉堆优先队列")
-
代码调试:识别语法/语义错误直到通过所有测试用例
-
Elaborationset数据集
- 8320题来自Codeforces和AtCoder(2011.10~2024.11)
- 按日期划分seen/unseen数据,支持contamination-free评估
- 每题标注:问题澄清(8-12条)、算法知识摘要(2-4条)、Ground Truth方案(~5个)
-
300题真人实验记录(5名CS研究生 × GPT-4-Turbo)
-
两级模拟器
- Student Programmer:O1-Mini基于内部知识给反馈(中级水平)
- Teacher Programmer:O1-Mini + 完整数据集标注辅助(专家水平)
实验关键数据¶
| 设置 | 平均Pass@1(未见题) |
|---|---|
| LLM独自 | 23.3% |
| + Student反馈 | 26.4% (+3.1%) |
| + Teacher反馈 | 32.6% (+9.3%) |
核心发现: - LLM在困难未见题上仅3.4% Pass@1,even O1-Mini也只有30.8% - 数据污染影响显著:未见题比已见题平均降9.3% - 编码阶段反馈最有效,但token开销也最大;规划阶段可能更具cost-effectiveness - 理解阶段反馈最不有效(LLM理解题意准确率>90%) - 真人调试 vs 自动调试:人类bug识别precision 81% vs 23%、recall 71% vs 40%,Pass@1提升24% vs 5% - 互补性:LLM擅长修复语法错误,人类擅长发现语义错误(逻辑缺陷、不完整实现等) - 给予准确bug信息后,LLM修复成功率:自动反馈75%,人类反馈87%
消融实验要点¶
- 模型规模与表现正相关;但即使34B模型在困难题上也表现很差
- Teacher反馈在所有难度级别和模型规模上均优于Student反馈
- LLM生成的bug中,语义错误(350个)远多于语法错误(33个)
- 最难修复的错误类型:控制流错误和次优解(时间/内存超限)
亮点¶
- 全流程反馈分类体系:首次系统化定义四阶段人类反馈,而非仅限于调试
- contamination-free评估:按日期划分数据,揭示LLM大量"记忆"训练数据
- 真人实验验证:5名CS研究生的真实调试记录提供了模拟器无法替代的洞察
- 发现编码阶段反馈最有效:颠覆了"调试最重要"的直觉,指导人类应在更早阶段介入
- bug分类及修复分析:详细的语法/语义错误分类和GPT-4-Turbo修复能力分析
局限性 / 可改进方向¶
- 结果对prompt敏感,prompt优化本身是待解决问题
- 仅针对竞赛编程,未验证对软件工程等其他编程场景的泛化性
- O1-Mini作为模拟器可能与真人行为存在差异
- 未探索更高效的人类反馈整合方法(如主动学习、selective feedback)
与相关工作的对比¶
- vs APPS/CODE-CONTESTS:仅评估LLM独立编程能力,不涉及人类协作
- vs OpenCoderInterpreter:仅关注代码执行反馈,不覆盖理解/规划阶段
- vs Shi et al. (2024)/Zheng et al. (2024):仅聚焦调试阶段;ELABORATION覆盖全流程
启发与关联¶
- 人类反馈在code generation中的最佳介入点是"编码阶段"而非调试阶段,暗示"预防优于治疗"
- LLM的bug识别能力很弱但修复能力很强,"告诉它哪里错了"比"让它自己找"有效得多
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个全流程人机协作竞赛编程基准,分类体系设计合理
- 实验充分度: ⭐⭐⭐⭐⭐ 13个LLM + 两级模拟器 + 真人实验 + 详细bug分析
- 写作质量: ⭐⭐⭐⭐ 结构清晰,case study丰富
- 对我的价值: ⭐⭐⭐ 人机协作的框架设计思路有参考价值