跳转至

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模拟器和真人参与者两种模式

关键设计

  1. 四阶段人类反馈分类体系
  2. 问题理解:澄清需求、规格、边界条件(如"需处理空数组")
  3. 方案规划:推荐算法、提供伪代码(如"用Dijkstra解最短路")
  4. 代码生成:建议数据结构、编码细节(如"用二叉堆优先队列")
  5. 代码调试:识别语法/语义错误直到通过所有测试用例

  6. Elaborationset数据集

  7. 8320题来自Codeforces和AtCoder(2011.10~2024.11)
  8. 按日期划分seen/unseen数据,支持contamination-free评估
  9. 每题标注:问题澄清(8-12条)、算法知识摘要(2-4条)、Ground Truth方案(~5个)
  10. 300题真人实验记录(5名CS研究生 × GPT-4-Turbo)

  11. 两级模拟器

  12. Student Programmer:O1-Mini基于内部知识给反馈(中级水平)
  13. 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丰富
  • 对我的价值: ⭐⭐⭐ 人机协作的框架设计思路有参考价值