借书先生
临安城里有个说书人,姓闻名达,人称闻先生。
闻先生记性极好。他年轻时读过的书,隔了十年还能一字不差地背出来。街坊邻里有什么拿不准的事,都爱来问他。他张口就答,引经据典,从来不说"我不知道"三个字。
可是闻先生有一桩毛病,旁人渐渐也发觉了——他说的话,有时对,有时错,而且错的时候也说得跟对的一模一样。
比方有人问他:"本朝第三任知府姓什么?"闻先生脱口而出:"姓赵,赵德安。"说得斩钉截铁。可翻开府志一查,第三任知府分明姓钱。闻先生并不是故意骗人,他是真心实意觉得自己记得,只不过他肚子里装的那些书太多太杂,年深日久,有些地方串了、混了、接错了缝,他自己浑然不觉。
有人因此吃过亏,便不大信他了。
城东有个书铺老板,姓柳,是个精明人。他看出了闻先生的长处和短处,想了个法子。
柳老板对闻先生说:"闻兄,你肚子里的学问是不差的,只是年头太久,难免记岔。我这书铺里有三万卷书,你以后但凡要答人家的话,先到我铺子里来翻一翻。不用把整本书读完——你只消把题目告诉我,我替你找出最相关的三五页来,你看了再答,岂不两全?"
闻先生觉得有理,便答应了。
从此以后,但凡有人来问事,闻先生不再张口就答。他先把问题记下来,走到柳老板铺子里,柳老板从三万卷书中挑出几页最相关的递给他。闻先生看了那几页,再结合自己肚子里的底子,重新组织一番,然后才开口回答。
效果立竿见影。
从前他答十句,总有两三句是编的,自己还不知道。现在他答十句,十句都有出处。有人追问细节,他还能说:"此言出自《某某志》第几卷。"旁人一查,果然不差。
可这法子也不是没有毛病。
有一回,一个外地来的商人问闻先生:"从临安到泉州走水路,沿途有哪些险滩?"
柳老板翻遍了铺子,找出来的几页全是讲运河的,没有一页讲海路。闻先生看了那几页运河的记载,硬是把运河上的险滩说成了海路上的——说得有板有眼,条理分明,可全是错的。
商人走后,柳老板叹了口气,说:"这回是我的错。我铺子里关于海路的书本就少,找出来的几页又恰好全不对路。你是照着我给你的东西说的,我给错了,你自然就说错了。"
闻先生也叹气:"我这个人,看见白纸黑字写着的东西,就忍不住信。你递给我什么,我就拿什么当依据。我自己肚子里其实隐约记得海路和运河不是一回事,可一看你给的书页,反倒把自己本来记得的东西压下去了。"
后来,柳老板又想了几个改进的办法。
第一,他把书铺重新整理了一遍,不再按书名排列,而是把每一页的内容都拆散了,按照"说的是什么事"重新归拢,做了一套极细的索引。这样一来,有人问海路的事,他就不会误把运河的书页翻出来了。
第二,他定了一条规矩:找出来的几页,先让闻先生自己判断一下"这几页跟要答的问题到底相不相干"。如果闻先生觉得不相干,就扔掉不用,宁可说"我不知道",也不硬答。
第三,每隔一段时间,柳老板就去外面收新书回来,充实铺子。世事在变,老书里没有的东西,新书里可能就有了。
三管齐下之后,闻先生答话的本事又上了一个台阶。旁人都说,闻先生现在判若两人——从前是"什么都敢说",现在是"说出来的都靠得住"。
又过了几年,城里冒出来好些模仿者。他们也学闻先生的路子,找个书铺合作,先翻书再答话。可效果参差不齐,有的甚至比不翻书还糟。
有人来问柳老板:"都是一样的法子,为何效果差这么远?"
柳老板说:"这里头门道多了。第一,书铺里的书好不好、全不全,这是根基;第二,找书的本事高不高,能不能又快又准地把最相关的那几页挑出来,这是关键;第三,说书人拿到书页之后怎么用——是照抄,是消化了再说,还是明明书页里没有的东西也硬往上凑——这是功夫。三样东西,缺一样都不行。"
闻先生在旁边听了,补了一句:
"还有一样最要紧的——你得知道什么时候该去翻书,什么时候不用翻。 若是人家问你吃了没有,你也跑去翻三万卷书,那就是笑话了。"
闻先生的毛病——记性好但会记岔——正是大语言模型参数化知识(Parametric Knowledge)的缩影。海量文本被压缩进了参数里,但这些知识是"烤进去的",会过时、会混淆、分不清对错。柳老板的书铺就是外部知识库,"先翻书再答话"这套流程叫做检索增强生成(Retrieval-Augmented Generation, RAG),Lewis et al. (2020) 首次系统提出了这个框架。
柳老板从三万卷书里挑几页最相关的递过去,这个"挑"的过程是检索(Retrieval)。文档被切成块,每块编码为向量存入数据库,问题也编码为向量,用余弦相似度找最近邻:
运河的书页被当成海路的依据,这是 RAG 最关键的失败模式——检索到的内容不对,模型反而被错误的"证据"带偏,结果比不检索还糟。闻先生说"看见白纸黑字写着的东西,就忍不住信",学术上叫 context faithfulness bias,模型对上下文有很强的顺从倾向,即使与自身知识矛盾也倾向采信。
柳老板后来的三个改进分别指向 RAG 工程的三个核心方向:按语义重新分块和建索引(chunking 策略);让闻先生自己先判断书页相不相干(Re-ranking,重排序);定期收新书充实知识库——这也是 RAG 相比纯参数化模型最大的优势,不用重新训练就能掌握最新信息。
那些效果参差不齐的模仿者,问题出在柳老板说的三个环节上:知识库质量、检索精度、生成策略。RAGAS 等评估框架正是沿这三个维度打分。
闻先生最后说"你得知道什么时候该去翻书",这是自适应检索(Adaptive Retrieval)的问题。不是所有问题都需要检索,有时候模型自己就知道答案,多此一举反而引入延迟和噪声。Self-RAG(Asai et al., 2023)让模型学会自行判断需不需要检索——被认为是 RAG 走向成熟的一个重要方向。