新基准ExecRetrieval:代码检索模型在近克隆错误代码面前,首位命中率仅 0.331
EMNLP 2026论文发布 939 个Python任务的检索基准,在检索池中植入经执行验证的单一编辑错误变体,测试嵌入模型能否区分正确代码与近克隆错误代码。
AI解读:代码检索模型广泛用于编程代理和检索增强的代码生成,过去基准只测‘找得到相似代码’,没测‘找得到正确代码’。ExecRetrieval在检索池里为每个正确实现配上最多 4 个只改一行、执行后确实出错的‘双胞胎代码’,用 23 种嵌入配置和BM25测试。结果显示,最强托管系统前十名全中(exec@10=1.00),但首位命中率仅 0.331,且在 67% 到 78% 的查询里,正确代码的得分低于至少一个错误变体。这说明嵌入模型主要靠文本相似度排序,不能可靠识别功能正确性。对使用代码检索工具(如编程助手)的开发者来说,这意味着‘看起来最像’的结果不一定是能跑对的代码,尤其在候选代码高度相似时,需依赖执行验证或人工检查;对基准设计者,该数据集提供了可复现的测试标准。
一种新的代码检索基准ExecRetrieval在 939 个Python任务上测试嵌入模型能否区分正确代码与近克隆但错误的代码,结果显示最强托管系统rank-1命中率仅 0.331,远低于rank-10的 1.00。该论文已被EMNLP 2026主会议接收。
基准设计:植入执行验证的错误变体
ExecRetrieval由Aaryan Kapoor和Md Abdullah Al Hafiz Khan提出,每个任务包含一个经过执行验证的正确实现(canonical implementation)和最多 4 个同样经执行验证的错误干扰项(buggy distractors)。这些错误变体由机械式突变生成,每次只做一次定向编辑,与正确代码近乎相同。
论文指出,现有代码检索基准不包含这种受控的、执行验证过的单一编辑变体,因此无法回答嵌入模型能否在检索排序中从功能上区分正确与错误代码。ExecRetrieval的检索池包含相关反事实,可直接测试检索器的排序能力。
评估结果:高阶命中率高但首位命中率低
研究评估了 23 种稠密嵌入配置及BM25,在提供商原生调用方式下使用配对McNemar检验和查询级bootstrap区间。结果显示,在存在近克隆反事实的检索池中,最强托管系统exec@10 达到 1.00,但exec@1 仅为 0.331。
四个领先系统的rank-1错误中,91.5% 到 99.4% 的概率是配对的错误变体;在 67% 到 78% 的查询中,正确代码的得分低于至少一个配对的错误干扰项。这表明嵌入模型难以从功能上区分正确与错误代码,排序更可能反映主题或身份重叠。
发布与资源
论文为camera-ready版本,共 17 页、6 张图、8 个表格。完整数据集、执行验证器(execution oracle)、嵌入矩阵、环境快照和配对统计检验结果已在论文附录D提供的URL公开发布。