来源:互联网 更新时间:2026-08-21 14:39
一个好的 Reranker 模型,几乎成了决定 RAG 系统研发成败的关键角色。这或许是对它最直白的评价。因为在 RAG 的工作流程中,仅仅依赖向量搜索来做召回,命中率往往无法保证——很多时候,一次粗糙的初筛结果,就决定了最终输出的质量天花板。于是,业界普遍认可的做法是:先用向量搜索做粗筛(第一阶段),再用更高级的 Reranker 模型做精排(第二阶段),形成一个串联的两阶段排序架构。两条腿走路,总比单腿蹦好使。
目前来看,主流的排序模型架构无外乎那么两类,但它们的选型差异,直接决定了系统能在多大程度上挖掘出潜在的答案。
第一类是双编码器。这个很容易理解,典型的代表就是 BERT。在双编码器架构下,查询和文档各自走一个独立的编码器,得到各自的向量表示,最后再经过一个 Pooling 层,统一压缩成一个向量。

你看,在排序阶段,只需要计算查询向量和文档向量的相似度就完事了。是不是够快?没错,向量搜索本质上就是这种排序模型的工程化应用。但有个问题:由于查询和文档是分别编码的,它们之间的 Token 不可能进行任何交互。换句话说,两个陌生人各自在房间里背诵自己的台词,没有眼神交流——最终难免会丢失大量语义细节。不过好在效率超高,一个向量计算就能出结果。
第二类是交叉编码器(Cross Encoder)。它的思路反过来了:把查询和文档拼在一起,让它们进入同一个编码器。这相当于让查询和文档海量的字符,直接进入同一个 Transformer,没有中间环节的编码损耗。结果就是,它能够捕捉查询和文档之间最复杂的交互关系。

不过代价也是巨大的:它对每一个需要排序的文档,都得跟查询拼在一起重新编码一次。这意味着,每对查询-文档都要走一遍完整的 Transformer 前向传播,导致推理速度极慢——即便是对初筛的 Top 10 文档进行重排序,也得慢到秒级。所以,它只能用于最后的精排。
两类模型一直就这样博弈着,既追求精度,又在乎速度,很难两全。
直到 ColBERT 这个特殊的存在,开始被社区反复提及。它的一些特点,让它与以上两类模型拉开了明显的距离。

先说跟 Cross Encoder 的对比。ColBERT 依然是个双编码器结构,它的查询 Token 和文档 Token 在编码时是完全隔离的,互不影响。但这个隔离,反而让文档端的编码能够完全离线完成,等查询过来时只需要实时编码一遍查询,效率远高于 Cross Encoder。
再说跟传统双编码器的对比。大多数双编码器最后会通过 Pooling 层,把一堆向量压缩成一个向量。但 ColBERT 不走这条路,它从 Transformer 的最终输出层直接获取多向量输出——每个 Token 对应一个向量。这样一来,就没有 Pooling 层导致的语义损失。
到这里有人会问:多向量有了,但怎么计算相似度呢?ColBERT 给出的方案叫“延迟交互”,它定义了一个叫 MaxSim 的计算方法。大致思路是:对查询的每个 Token 向量,跟所有文档 Token 向量做相似度运算,然后记下每个查询 Token 与文档的最大得分。最终的文档得分,就是这些最大得分的加和。举个例子,一个 32 Token 的查询,和一个 128 Token 的文档,就得执行 32 × 128 次相似性操作。这显然比传统向量搜索要重,但从架构上,它保全了语义的丰富性。
对比之下,Cross Encoder 可以被称为

从性能和排序质量的横对比来看,延迟交互模型做到了一个很难得的平衡:既捕获了查询和文档之间的复杂交互,又避免了对每个文档编码的开销。在同样数据规模下,ColBERT 的效率可以做到 Cross Encoder 的百倍以上。一个很自然的想法就冒出来了:既然 ColBERT 这么强,能不能直接在 RAG 中用一套 ColBERT,替代掉“向量搜索 + 精排”的两阶段架构?
想法很直接,但工程化的道路上,至少面对两个现实的麻烦。
针对这些问题,开源的 AI 原生数据库 Infinity 给出了另一种思路:在最新版本中提供 Tensor 数据类型,并原生地提供端到端的 ColBERT 方案。

简单来说,ColBERT 编码输出的多个向量,直接用 Tensor 存放。Tensor 间的相似度计算,直接就能得到 MaxSim 打分。
为了提升 MaxSim 的运算效率,Infinity 做了两件事:
对于长文本裁断的问题,Infinity 引入了 Tensor Array 类型。一篇超过 ColBERT 长度限制的文档,会被切成多个段落,分别编码成 Tensor 后,跟原始文档存在同一行。到计算相似度时,查询会跟这些段落分别算,取最大值作为整个文档的打分。

这样一来,采用 Infinity,就可以端到端地引入延迟交互模型,为 RAG 提供更强大的排序能力了。但一个核心问题还没解决:在构建系统时,到底该把 ColBERT 当作 Ranker 用,还是当作 Reranker 用?
为了回答这个问题,用 Infinity 在 MLDR 数据集上跑了两组评测。MLDR 是 MTEB 里专门用来评测 Embedding 模型质量的 benchmark,全称 Multi Long Document Retrieval,包含 20 万条长文本数据。评测中用 BGE-M3 作为 Embedding 模型,用 Jina-ColBERT 生成 Tensor。所有评测脚本也都放在了 Infinity 的仓库里,随时可以复现。
将 20 万 MLDR 数据用 BGE-M3 生成稠密向量和稀疏向量,存到 Infinity 数据库中。数据库一共四列:原始文本、向量、稀疏向量、Tensor,并分别建好对应的索引。评测覆盖了单路召回、双路召回,甚至三路召回。
评测指标采用 nDCG@10。查询共 800 条,平均长度约 10 个 Token。

结论非常清晰:所有召回方案,在用 ColBERT Reranker 后都有明显提升。最值得关注的是性能——ColBERT 的重排序质量完全可以媲美 MTEB 排行榜上顶尖的 Cross Encoder,但速度却是它们的上百倍。这次评测中,用 ColBERT 对 Top 100 做重排序,效果非常好;但把范围扩大到 Top 1000 时,数值变化不大,性能反而降下来了——所以不推荐对更大规模做重排。
反观传统的 Cross Encoder Reranker,连 Top 10 都要慢到秒级,而 Infinity 内部实现的高性能 ColBERT Reranker,针对 Top 100 甚至 Top 1000 做重排,都不会影响用户体验。关键是,整个 ColBERT Reranker 的计算可以完全跑在 CPU 上,部署成本大幅降低。
这次需要对 Tensor 列构建 Tensor Index,并同时进行暴力搜索来对比精度损耗。

结果多少有点意外:即便是没有精度损失的暴力搜索,也没表现出什么提升。甚至基于 Tensor Index 的排序质量,还不如用 ColBERT 做 Reranker。更关键的问题是查询速度:20 万条数据,用 Jina-ColBERT 转成 Tensor 后,数据量膨胀到了 320G(因为每个 Token 的 128 维向量都要存下来),构建了 Tensor Index 后,每个查询也要等 7 秒,结果却没有更好。
一个明确的结论清晰了:
综合来看,目前 RAG 检索效果最好的方案,是“3 路混合搜索(全文搜索 + 密集向量 + 稀疏向量)+ ColBERT Reranker”。有人会提出疑问:为了这个 Reranker 得额外加一列 Tensor 数据,而且数据量一下子就膨胀了两个数量级,值得吗?这里可以算两笔账:第一,Infinity 对 Tensor 提供二进制量化,作为 Reranker 时对效果影响很小,但数据空间直接降到 1/32;第二,即便认为这个开销太高,但站在使用者的角度,用存储换排序质量、用 CPU 换 GPU 成本,整体上非常划算。况且,接下来很快就会有存储开销更低的延迟交互模型推出,而 Infinity 作为数据基础设施,对这些变化保持透明,最终把取舍权交给用户——这才是合理的做法。
基于 Infinity 在 MLDR 数据集上的全面评测,虽然换到别的数据集上具体的数值可能会有差异,但整体结论是不会变的。
由此可见,ColBERT 及其背后的延迟交互模型,在 RAG 场景中已经体现出巨大的应用价值。但事情还没完——最近,延迟交互模型又成功跨界到了多模态场景,这就是 ColPali。

它直接改变了 RAG 面对复杂格式文档时的工作流程。过去,文档里的图表、图片要逐块识别、转文字,再按格式入库,链条很长。而 ColPali 直接用一个多模态模型生成 Embedding,连这些中间步骤都省了。提问的时候,可以直接针对文档中的图表回答问题。

ColPali 的训练思路跟 ColBERT 很相似,都是用查询-文档页面对的形式来训练。不同的是它用 PaliGemma 来生成多模态 Embedding。一个很直观的对比:同样都用 PaliGemma 生成 Embedding,但没有应用延迟交互机制的方案 BiPali,在 nDCG@5 上只拿到 58.8;而加上了 ColPali 的延迟交互后,这个数字跳到了 81.3。这种差距,已经不是一个量级了——是“极好用”与“基本没法用”的区别。

所以,尽管 ColBERT 已经提出四年了,但延迟交互模型在 RAG 中的应用可以说才刚刚拉开序幕。它会大大扩展 RAG 的使用场景,特别是在包含多模态数据的复杂场景中提供高质量的语义召回。而 Infinity 已经为这个走向,做好了端到端的底层准备。
腾讯ima怎么把微信内容一键导入知识库?
黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
腾讯ima怎么创建共享知识库?
CC币价格预测(2026-2035):Canton币今日价格走势+长期价格预测
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
Celestia价格预测2026-2032:TIA币能否引领山寨币上涨行情?历史价格回顾
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
比特币(BTC)核心周期指标复刻历史走势 价格或跌破5.8万美元关键支撑位
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
WorkBuddy微信版怎么获得积分?
5000元起的鼠标哪个最值得入手?
蚂蚁庄园今日答案7月21日(今日已更新) 蚂蚁庄园今天正确答案是什么呢
车载冰箱重置到出厂设置几步?
短剧《史上最强洪荒修为》剧情介绍
kimi提示词专家使用方法新手指南
结婚家电首选:Leader懒人三筒Ultra热泵洗烘一体
腾讯ima知识库怎么分类管理?
短剧《仙人跳获透视,古玩玉器我全拿捏》剧情介绍
Windy卫星云图怎么看?云层变化识别技巧
一加手机如何设置三指长按屏幕局部截图
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc