CoreCodeBench- Decoupling Code Intelligence via Fine-Grained Repository-Level Tasks
如果无法正常显示,请先停止浏览器的去广告插件。
1. CoreCodeBench: Decoupling Code Intelligence
via Fine-Grained Repository-Level Tasks
Hao Guan
计算与智能平台部-M17-EVA
2. 研究背景
• 代码评测的演进:
• 函数级 → 仓库级
• HumanEval、MBPP → SWE-bench
• 核心局限:
• 现有基准依赖粗粒度的通过率,将编程视
为单一整体能力,无法诊断模型究竟在哪
里失败。
• 数据污染:解法已被预训练记忆
• 性能饱和:难度固定、丧失区分度
我们需要:自动化、可扩展、动态难度的多维度评测
3. 核心贡献
• 掩码核心代码块• 级联式逻辑实现合成• 掩码代码,仅给单元测试
• 提供功能描述• 大模型设计错误逻辑• 严格按照测试规约实现
• 根据意图生成实现• 笑模型完成有缺陷的实现• 通过测试即视为正确
三类任务共享完全相同的代码上下文,从而显式解耦代码能力的认知维度
4. 核心贡献
5. CorePipe设计
• 自动从开源仓库中获取函数
• 对开源仓库进行了初步的筛选
• 活跃性、测试覆盖率、复杂性
• 获取函数调用链
• 建立源码实现与单元测试之间的精确映射
6. CorePipe设计:Atomic 原子任务
• 将单个功能逻辑隔离到不同的工程场景中生成原子级
任务
• 利用抽象语法树(AST)模块剔除无关的辅助函数
• 调整这些模块的掩码长度,动态调节任务的难度
• 只有当掩码处理触发测试失败,相关函数才被保留
• 人工检查证实了该方法在捕捉关键逻辑方面100%
准确
7. CorePipe设计:Development
• 评估模型开发能力
• 对识别出的核心代码块进行遮蔽,并使用 LLM 生成
结构化的功能描述。
• 为确保质量,我们引入额外的模型作为批评模型,提
供反馈。
• 应用信息增益(IG)过滤器,剔除无增益样本。
• 消融研究证实了在四种不同的生成器架构下,模型排名
保持一致(Spearman’s ρ = 1.0)。
8. CorePipe设计:BugFix
• 为了评估诊断和纠正逻辑错误的能力,我们通过用有
缺陷的版本替换正确实现来扩展开发任务
• 先引导先进模型设计复杂的逻辑漏洞
• 然后利用较小的模型来实现这些缺陷设计。
• 这种两阶段方法充分利用了大模型的推理深度以确保
逻辑复杂性,同时借助小模型的随机性引入自然的实
现噪声。
9. CorePipe设计:TDD
• 评估在严格遵循验证约束条件下实现逻辑的能力
• 直接使用先前识别出的核心代码块,在隐藏实现的同
时,提供相应的单元测试作为规范。模型必须将生成
的代码与严格的预定义测试相匹配,以确保可靠性。
10. CorePipe设计:Composite 组合任务
• 引入复合任务,要求模型对函数调用树中的子图进行推理而非
仅针对孤立的节点。每个复合任务是一个包含 n 个原子问题的
对应测试函数的调用树的子图。
• 引入空函数节点表示必须同步实现的辅助工具。
• 通过两个超参数明确控制复合任务的复杂度,以缓解性能饱和
问题,确保基准测试对快速演进的模型始终保持挑战性。
• 依赖深度 d,用于调节上下文范围,限制调用链的最大深度;
• 任务数量 ν,定义需要同时修改的函数总数(2 ≤ n ≤ ν)。
11. 数据集概览
12. 实验结果
原子任务评测结果
复合任务评测结果
13. 实验结果
相关系数矩阵
IoU分布
代码长度对通过率的影响
14. 主要贡献
1. 细粒度评测代码能力:将编程能力解耦为多种独立的认知维度(Dev / BugFix / TDD)
2. 自动化 CorePipe 框架:78.55% 有效率,抗污染、难度可动态扩展
3. 能力错位的发现:编程能力并非单一整体,模型缺少工程级规划能力
对未来的启发
1. 模型能力评测应该从“大一统评分”转向能力画像
2. 评测要自动化动态生成以避免污染的情况,评测生成的过程中要保证评测的质量
3. Agent训练应该分能力训练
15. Q&A