← 最新论文
🤖 AI

CoSQA+: Pioneering the Multi-Choice Code Search Benchmark with Test-Driven Agents

本文介绍了 CoSQA+,这是一个高质量的多选题代码搜索基准测试,其特点是包含 412,080 个经由一种新型测试驱动智能体系统验证的智能体标注对,该基准测试展示了优于现有数据集的卓越性能,并显著提升了代码搜索模型的表现。

原作者: Jing Gong, Yanghui Wu, Linxi Liang, Yanlin Wang, Jiachi Chen, Mingwei Liu, Zibin Zheng

发布于 2026-02-05
📖 1 分钟阅读☕ 轻松阅读

原作者: Jing Gong, Yanghui Wu, Linxi Liang, Yanlin Wang, Jiachi Chen, Mingwei Liu, Zibin Zheng

原始论文根据 CC0 1.0(http://creativecommons.org/publicdomain/zero/1.0/)发布到公有领域。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在一本庞大且混乱的食谱中寻找特定的菜谱。你输入了一个模糊的请求,比如“做点甜的面粉制品”,结果书里只吐出了一个页面。但如果这个页面并不是唯一正确的答案呢?如果制作甜面粉制品有五种不同的方法,而你想看到所有的方案以便挑选出最好的那一个呢?

这就是这篇论文的作者们试图解决的问题——CoSQA+。他们正在为那些利用自然语言(人类语言)来搜索代码(计算机指令)的计算机构建一个更好的“测试”。

以下是他们工作的简明类比拆解:

1. 问题所在:“唯一正确答案”的陷阱

目前的计算机代码搜索系统大多是在进行一种“多选题”式的训练,即每个问题只有一个正确答案。

  • 现实情况: 在现实世界中,程序员经常会提出模糊的问题(例如,“如何删除坏字符?”)。实现这一目标并不只有一种方法;可能有十种不同的有效代码片段,它们以略微不同的方式解决问题。
  • 缺陷: 现有的数据集强迫计算机只选出一个“胜出者”,从而忽略了其他有效的解决方案。这就像是通过只接受一种特定的句子结构来给学生的作文评分,即使学生用另一种结构写出了同样优秀的段落。

2. 解决方案:CoSQA+(“多项选择”图书馆)

作者创建了一个名为 CoSQA+ 的新数据集。他们没有采用“一问一答”的模式,而是构建了一个一个问题可以对应多个可能正确答案的库。

  • 规模: 他们收集了超过 412,000 对问题和代码片段。
  • 目标: 旨在教会计算机,当人类提出一个问题时,可能会有一个完整的代码选项菜单,而不只是单一的一道菜肴。

3. 挑战:如何评判 40 万个答案?

如果你有 40 多个问题,你不可能雇佣 40 万名人类专家去阅读每一个代码片段并检查它是否有效。那将耗时极长且成本高昂。

  • 旧方法: 人类阅读代码并根据其外观猜测其是否有效。这就像一位老师仅仅通过观察数字来给数学测试评分,而没有实际进行计算。他们可能会错过细微的错误。
  • 新方法(“测试驱动型智能体”): 作者构建了一个 AI 机器人团队(智能体),它们不仅是阅读代码,还会运行代码。
    • 厨师类比: 想象你有一份食谱(代码)。机器人不仅仅是阅读配料表,而是真正走进厨房,烹饪这道菜并品尝味道。
    • 流程:
      1. 筛选器 (The Screener): 一个机器人快速检查代码是明显有效还是明显失效。
      2. 生成器 (The Generator): 如果情况不明,另一个机器人会编写一个“品尝测试”(一个测试程序),以查看代码是否实现了人类的要求。
      3. 执行器 (The Executor): 一个机器人会在一个安全的、隔离的厨房(Docker 容器)中运行代码。
      4. 纠错器 (The Bug Fixer): 如果厨房起火了(出现错误),这个机器人会尝试修复食谱或配料,以便能再次运行。
      5. 仲裁者 (The Arbiter): 最后一个机器人观察烹饪结果,并决定:“这真的解决了问题吗?”
  • 结果: 机器人团队通过实际运行代码来证明其有效性,而不是仅仅靠猜。

4. 结果:机器人 vs. 人类

作者将他们的机器人团队与人类专家以及其他 AI 模型进行了对比测试。

  • 得分: 机器人团队达到了 93.9% 的准确率。
  • 对比: 仅通过阅读代码(不进行运行测试)的人类专家准确率约为 89%。其他 AI 模型的得分甚至更低。
  • 原因: 因为机器人实际上测试了代码。它们不是在猜测,而是通过运行代码来证明代码确实有效。这就像是猜测一辆车看起来很漂亮就能说明它能跑,与实际驾驶它看引擎是否启动之间的区别。

5. 为什么这很重要

  • 更好的训练: 当他们使用这个新的“多项选择”数据集来训练计算机模型时,这些模型在寻找代码方面变得更加出色。它们学会了解决一个问题有很多种方法。
  • 跨语言: 他们的机器人团队不仅适用于 Python(一种流行的编程语言),在 Java、Go 和 PHP 上也表现良好。这表明他们的“运行并测试”方法是一种通用的检查代码的方法,无论使用哪种语言。

总结

这篇论文介绍了 CoSQA+,这是一个大规模的新数据集,它将代码搜索视为一种现实场景,即一个问题拥有许多正确答案。为了在不雇佣大量人类的情况下构建这个数据集,他们创建了一个 AI 机器人团队,这些机器人能够编写自己的测试、运行代码并评判结果。这些机器人证明了自己比仅通过阅读代码的人类专家更准确,从而为未来的代码搜索计算机创造了一个更高质量的“教科书”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →