论文
ExecRetrieval:测量代码嵌入检索中的功能正确性差距
ExecRetrieval: Measuring the Functional-Correctness Gap in Code-Embedding Retrieval
摘要
基于嵌入的代码检索是 编码智能体 和检索增强代码生成的核心组件,其中检索正确的代码比检索词法相似的代码更重要。现有的代码检索基准不会在搜索池中植入每个查询规范实现的受控、执行验证的单一编辑变体,从而导致嵌入是否可以在功能上区分正确的代码和接近克隆但不正确的代码的问题在检索设置中没有得到解答。解决这个问题需要一个基准,其搜索池本身包含相关的反事实——与每个规范几乎相同的执行验证的错误变体——以便可以直接测试 检索器 的排名顺序的功能区分,而不是主题或身份重叠。我们引入了 ExecRetrieval,939 个 Python 任务,每个任务都与一个经过执行验证的规范实现和最多四个经过执行验证的错误干扰项配对,每个干扰项都是由进行单个目标编辑的机械突变生成的,并通过配对 McNemar 测试和查询级引导间隔在提供者本机调用下评估 23 个密集嵌入配置和 BM25。通过池中的近克隆反事实,顶级托管系统达到 exec@10 = 1.00,但仅 exec@1 = 0.331;在四个领先系统中,91.5-99.4% 的情况下,Rank-1 未命中是配对错误变体,并且在领先系统上 67-78% 的查询中,规范分数至少低于其四个配对干扰项中的一个。完整的数据集、执行预言机、嵌入矩阵、环境快照和成对统计测试在附录 D 中的 URL 上发布。