ExecRetrieval 是一个针对代码嵌入检索功能正确性的新基准。它包含 939 个 Python 任务,每个任务配备一个通过执行验证的标准实现和最多四个仅有单一编辑的执行验证错误实现。这些错误实现由机械变异生成,保持与标准实现几乎相同的代码结构,却在功能上产生错误。基准在检索池中直接放入这些对照,使得检索模型的排序可以被直接用于判断是否能够在功能层面区分正确代码和近似克隆的错误代码。
我们在提供商原生环境下对 23 种密集向量配置和 BM25 进行评估,使用配对 McNemar 检验和查询级自助法区间。实验显示,最佳系统在 exec@10 达到 1.00,但 exec@1 仅为 0.331;在前一名的情况下,排名第一的结果是错误变体的比例在 91.5%~99.4% 之间;在 67%~78% 的查询中,标准实现的得分低于至少一个错误变体。完整数据集、执行 oracle、向量矩阵、环境快照以及配对统计检验均已公开。
点评