新 Parilem 已上线:五种语言,来源公开透明,没有广告。 我们为何存在

人工智能如何找到正确的文档?

模型写出正确答案之前,必须先找到正确的页面。在一百个真实问题上测量,结果出乎意料:统计词语的老方法胜过了寻找含义的新方法。

计算机科学 · 信息检索 — 图片:Parilem

你在一家公司保存着数千张支持工单的档案库里提问:“要让 RSync 传输正常工作,需要开放哪些端口?”你面前的 AI 并不知道答案。它也不可能知道——这个事实没有出现在任何训练数据里,而是藏在公司自己的记录中。

它只能做一件事:先找到正确的页面,再阅读并作答。而整件事的成败恰恰在这里决定。答案的质量与其说取决于模型有多聪明,不如说取决于交到它手里的是哪些页面。

先检索,后回答

这种方法叫作检索增强生成。模型并不直接回答问题。系统先在档案库中检索,挑出几段文字,连同问题一起交给模型。模型在这些文字的基础上组织答案。

“几段文字”这个限制比听起来更严格。实际上送到模型面前的只有三到七段。如果正确的页面不在这份清单上,再高的智能也救不了这个答案。检索的质量决定了后面一切的上限。

两类问题,两类检索

人们提问的方式有两种。有些问题带着确切的东西:工单号、错误信息、项目名、文件名。另一些问题则是在描述:“这件事该怎么做?”

回答这两类问题的,是两个不同的检索家族。

第一类是关键词检索。它检查问题中的词是否出现在页面上,并权衡三件事:这个词在该页面出现的频率、它在整个档案库中有多罕见,以及页面有多长。这种方法叫 BM25,诞生于上世纪九十年代。

第二类是语义检索。它把每段文字变成一组坐标,坐标相近意味着含义相近。问题和页面即使没有一个共同的词,也能找到彼此。

为什么罕见词 更有分量

“系统”这个词几乎每一页都有,它无法告诉你要找的是哪一页。但如果“ML5664”只出现在一条记录里,那么包含它的页面几乎可以肯定就是你要找的那一页。关键词检索直接衡量这种差别:一个词越罕见,它匹配上时的证据就越有力。

关键词检索有一个明显的弱点。你写的是“故障”,记录里写的是“异常”。你们说的是同一件事,但没有一个词对得上,于是这个页面永远不会出现。语义检索弥补了这个缺口。

老方法胜过了新方法

原本的预期很简单:基于神经网络的语义检索会轻松击败一种三十年前的统计方法。然而,在一百个真实问题上的测量结果恰恰相反。

关键词检索在前七个结果中找回了目标页面的 74%,语义检索只找回了 65%。

原因在于档案库的性质。这些记录里满是编码:工单号、生产批次标识、错误字符串、文件名。语义检索恰恰会把这些东西弄模糊,因为在坐标空间里,一个数字最近的邻居是另一个数字。

语义检索正是在词语本身最重要的地方变弱。工单号没有“含义”,它只有它自己。

找到和排序是两件不同的事

既然两者各自擅长不同类型的问题,把它们结合起来就是顺理成章的做法。但它们不能直接相加:关键词检索给出的分数和语义检索给出的相近度不在同一个尺度上,相加毫无意义。

解决办法是完全不看分数,只取每份清单中的排名顺序。在两份清单上都排得靠前的页面会上升;只在其中一份清单上排得非常靠前的页面也不会被丢掉,而是保留下来。

结合之后,覆盖率提高到 81%。但有一件事没有改变:顺序。正确的页面进了清单,却排在第五或第六位。由于只有前几段文字能送到模型面前,光在清单上还不够,它必须排在前面。

第二遍阅读

于是再加一步:用一个模型从头阅读候选页面,并重新排序。

差别很细微,却是决定性的。第一轮检索比较的是问题和页面各自单独生成的摘要。第二个模型则把问题和页面放在一起阅读,只回答一个问题:这个页面真的回答了这个问题吗?

代价也很明显:每一对“问题–页面”都需要单独读一遍,不可能在整个档案库上运行。所以它只处理第一轮检索带回的六十个候选页面。

结果显示,这两步做的是不同的工作:结合负责把正确的页面放进清单,重排序负责把它送到最前面。

方法 找到的页面 耗时
仅语义检索65%0.43 秒
仅关键词检索74%0.72 秒
两者结合81%1.24 秒
结合 + 重排序95%1.43 秒

在一百个问题中,有九十六个问题的目标页面出现在前七个结果里,而且通常排在靠前的位置。

为什么精确率会下降?

同一项测量还有另一面,乍看之下显得很糟。系统返回三个页面时,其中 36% 是对的;返回七个时,只有 18% 是对的。

这不是失败,而是指标本身的缺陷。参考清单通常每个问题只列出一到两个正确页面。如果你返回七个,而最多只有两个可能是对的,上限就已经是 29%。这个数字衡量参考清单的程度,不亚于衡量系统本身。

把这一点略去不提本来很容易。但弄清一个指标实际说明了什么,比让它说出超出本意的话更有价值。

相关不等于你有权阅读

这项工作最有启发性的发现,并没有出现在任何指标里。

一个页面可能与问题完美匹配,却仍然是那个人绝不应该看到的页面。检索层对权限一无所知,它只知道相似度。除非按照一个人实际能够访问的项目来过滤结果,否则一个无心的问题可能带回一段来自他从未获准访问的项目的文字。

AI 助手要么继承一个组织的权限结构,要么将其击穿。没有第三种可能。

这就是把问题当作科研课题和把它当作实际运行的系统之间的区别。指标永远发现不了它,第一个真实用户会发现。

这些结论能推广到多远?

这里测量的是找到了哪些页面。模型最终写出的答案是否正确、清晰、有用,并没有测量,那是另一个问题。

这些数字也只属于这个档案库。换成另一个组织的记录,关键词检索和语义检索之间的差距完全可能反过来。但有两条一般性的经验看起来可以迁移:词语和含义是互补而非替代的关系;找到某样东西,和把它放到正确的位置,是两件不同的事。

本文依据什么?

本文基于 Nadjib Atamnia 在埃夫里–巴黎萨克雷大学(Université d'Évry Paris-Saclay)完成的硕士论文(2025–2026)。研究对象是 Murata Integrated Passive Solutions 信息技术部门开发的助手 RAGmine;测量基于团队自己编写的一百个问题。

  1. Robertson, Zaragoza, The Probabilistic Relevance Framework: BM25 and Beyond, 2009.
  2. Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS, 2020.
  3. Cormack, Clarke, Büttcher, Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods, SIGIR, 2009.
  4. Nogueira, Cho, Passage Re-ranking with BERT, 2019.
  5. Thakur et al., BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models, NeurIPS, 2021.
Nadjib Atamnia

Nadjib Atamnia

作者 3 篇文章

从事自主系统研究;持续学习与多智能体模拟项目的合著者。

查看其全部文章

你可能还想读

同一领域的精选文章。

网络仿真 7 分钟

一整个网络如何装进一台计算机?

交换机、线缆和服务器可以不用真实硬件,在一台计算机里搭建起来。我们来看 Mininet 是怎么做到的、在虚拟网络上能试验什么,以及一台笔记本电脑展示不了什么。