voyage-code-4:专为编程智能体打造的代码检索模型
作者:
·
voyage-code-4:专为编程智能体打造的代码检索模型
TL;DR——我们推出了下一代代码嵌入模型voyage-code-4,它专门针对编程智能体(coding agent)的性能提升和成本优化而设计。在一个专门衡量编程智能体代码检索效果的新基准测试中,它的表现比Cohere Embed v4和Gemini Embedding 2平均高出28.25%和31.03%;在评测voyage-code-3时所使用的28个代码检索数据集上,它的领先幅度也分别达到19.21%和16.01%。该模型现已上线,价格为每100万token 0.12美元,比voyage-code-3便宜三分之一。
自2024年12月发布以来,voyage-code-3一直是我们最受欢迎的嵌入模型之一,主要被各类代码助手采用。但在这段时间里,客户的使用方式发生了变化:如今,我们承载的大量代码检索请求来自编程智能体。这些智能体会在多步操作中不断探索、回溯、反复查询,而它们的起点往往是一个相当模糊的目标,比如“找出所有我们没处理好空数组的地方”。
我们构建voyage-code-4,正是为了应对编程智能体所面临的复杂检索需求。很高兴向大家介绍我们的下一代代码嵌入模型,它有如下特点:
-
在“智能体代码检索”(agentic code retrieval)基准测试中,表现比Cohere Embed v4和Gemini Embedding 2平均高出28.25%和31.03%。该基准基于修复真实问题(issue)的Pull Request构建。
-
在评测voyage-code-3时所用的28个代码检索数据集上,表现比Cohere Embed v4和Gemini Embedding 2分别高出19.21%和16.01%。
-
支持2048、1024、512和256维的嵌入向量,这得益于Matryoshka学习(一种分层表示学习技术);同时提供多种量化选项——包括32位浮点、有符号/无符号8位整数以及二值精度——在尽可能减少质量损失的前提下压缩模型体积。
-
定价为每100万token 0.12美元,比voyage-code-3便宜三分之一。
为什么智能体需要语义检索
编码智能体需要高检索精度,同时要尽量降低延迟和成本,因为单次任务中智能体可能发出几十次检索查询,每次都会消耗提示 token、输出 token 和实际时间。如今大多数智能体依赖全文搜索(即 grep),当智能体已经知道要找的标识符时,这种方式很有效。但如果查询描述的是症状而非语法(例如一份 bug 报告),全文搜索往往得不到任何有用结果,智能体只能花费更多请求和 token 在代码库中继续查找。由 voyage-code-4 提供的语义检索能与全文搜索形成互补,显著减少 token 的浪费。
从已合并的 pull request 中挖掘出的新训练语料
代码嵌入模型通常使用源代码文件与文档字符串、注释或合成问题的配对数据进行训练。这类语料库能让模型理解“代码在做什么”,因此当查询中直接点名了想要查找的函数时,传统模型通常表现良好。但它们无法教会模型“代码哪里出了问题”——而这正是智能体从 bug 报告出发时所需要的上下文。为解决这一问题,我们从自然语言查询到代码的对应关系中专门构建了一套全新的训练语料库。该语料库涵盖数百种编程语言中的数十万个查询,涉及数万个仓库和数百种编程语言,规模远大于 voyage-code-3 所使用的代码语料库。
套娃学习与量化
与 voyage-code-3 一样,voyage-code-4 也支持通过套娃学习(MRL)获得 2048、1024、512 和 256 维的嵌入向量,同时支持 float32、int8 和二值量化。关于 MRL 和量化的更多信息,请参阅 voyage-code-3 博客。
评估细节
数据集。 我们采用两套评测集。第一套是智能体代码检索(agentic code retrieval),由 19 个基于 issue 修复型 pull request 构建的基准组成。每条查询是一个 issue 描述,相关的文档则是被合并修复所触及的文件。这套评测看的是:在只看到问题表象的情况下,模型能否定位到需要修改的代码——这正是智能体在做任何编辑之前要执行的那一步。这些基准取自训练之外的代码仓库,与训练语料没有重叠。我们正在将这些基准加入 RTEB 评测体系。第二套是评测 voyage-code-3 时用到的 28 个代码检索数据集,涵盖五个类别,报告它们是为了让结果能与上一代直接对比。每个数据集由一个语料库(例如仓库中的源文件)和若干查询(例如 issue 描述、自然语言问题等)组成。
模型。 我们让 voyage-code-4 与 voyage-code-3、Cohere Embed v4、Gemini Embedding 2、OpenAI v3 large 同台比较。
指标。 针对每条查询,我们基于余弦相似度取 top 10 文档,并报告归一化折损累计增益(NDCG@10)——这是衡量检索质量的标准指标,也是召回率的一个变体。
结果
所有评估结果均可在此电子表格中查看。
智能体代码检索。 下图柱状图比较了 voyage-code-4 与其他模型在智能体代码检索基准上的平均检索质量。总体来看,voyage-code-4 是表现最好的模型,比 voyage-code-3、Cohere Embed v4、Gemini Embedding 2 和 OpenAI v3 large 分别高出 27.54%、28.25%、31.03% 和 48.58%。

传统代码搜索。 下图柱状图展示了用于评测 voyage-code-3 的 28 个数据集上的平均检索质量。voyage-code-4 比 voyage-code-3、Cohere Embed v4、Gemini Embedding 2 和 OpenAI v3 large 平均高出 13.98%、19.21%、16.01% 和 40.06%。

立即体验 voyage-code-4
voyage-code-4 今天正式上线,可通过 Voyage API 以及 MongoDB Atlas 的 Embedding 与 Reranking API 使用。前 2 亿 token 完全免费,更多详情请查看我们的文档。
欢迎在 X(Twitter)和 LinkedIn 上关注我们,第一时间获取最新发布动态。
贡献者