Post

LiveCodeBench & LiveCodeBench Pro

LiveCodeBench -> LiveCodeBench Pro, reviewing one of the most classic benchmark. (PS:The cover is generated by AI -- I found LLM -> html -> graph is better than VGen Model..)

LiveCodeBench & LiveCodeBench Pro

LCB

Background

已有的 Code Bench 主要面临两个问题:数据污染,评估维度单一。

Method

Live评估

  • 从三大编程竞赛平台(LeetCode, AtCoder, CodeForces)收集最新的竞赛题目来构建测试集。
  • 根据模型的时间截止日期(Cutoff Date)进行评估。

    Holistic

  • 代码生成 (Code Generation): 根据自然语言描述生成代码(标准任务)。
  • 自我修复 (Self-Repair): 给定错误的代码和报错信息(或失败的测试用例),让模型修复代码。
  • 代码执行 (Code Execution): 给定代码预测 Sample 结果。
  • 测试输出预测 (Test Output Prediction): 纯自然语言预测 Sample 结果。

demo

Data

  • 每道题 17 个 Sample - 很好奇 SPJ 之类的,个人认为可以使用对拍,不止这么多数据。
  • 难度分级:易/中/难

    Contribution

    最核心的就是难以作弊,排除了过拟合的问题。其真实的代码能力不就是一个逻辑链么,反正就是大家都在做的…分析题目,给出逻辑推理的过程,运用合理的算法(也许需要微调),然后最后做出来。然后发现的能力维度区别,应该是模型训练的时候数据带来的影响。

大模拟,数据超大,SPJ?

现在这个Bench的能力早已饱和,我们来看 LCBP。

LCBP

Background

近期研究宣称,大型语言模型在竞技编程领域已超越人类顶尖选手。为了验证这个,专门收集了难题来测LLM,包括IOI。(人类在IOI是可以拿满分的)

Method

发现LCB也有数据污染。为此构造更加严苛的数据集。剔除了 LeetCode。保持了 Live 的特性。

专家标注

由奥赛金牌得主团队对每个问题进行详细标注,不仅标注了算法标签(如动态规划、图论),还引入了认知侧重分类(Cognitive-focus Taxonomy)。(感觉跟洛谷这样的现有社区是一样的,不过不知道用这些数据侵不侵权。) 为啥线段树不算数据结构?

  • 知识密集型 (Knowledge-heavy): 依赖已知模板或算法(如线段树)。
  • 逻辑密集型 (Logic-heavy): 依赖按部就班的数学推导(如组合数学)。
  • 观察密集型 (Observation-heavy): 依赖“灵光一现”的洞察力或思维跳跃(如贪心算法、构造题)。

    更换评估指标

    贝叶斯 Elo 评分 (Bayesian Elo Rating):使其能直接与人类选手(如 Codeforces 积分)进行对比 。

    结论

  • 模型与人类差距仍大。
  • 知识、逻辑表现较好,观察型不行。
  • 推理模型可以提升逻辑。
  • 错误大多集中在算法本身,如图。(与近似分数的人类做对比)而且样例没过的有很多,因为是Pass@1.´
  • 工具使用会显著提高 Elo分数,但本身就带有欺骗性,如Pass@k。OpenAI的2700可能要削弱400分才行。

个人认为,Coding 可以进行 pass@k 自我修复一些问题。有人做这样的bench吗?

This post is licensed under CC BY 4.0 by the author.