跳到主要内容
一个说“非侵入”的 RAG 基准,怎么同时做消融?

一个说“非侵入”的 RAG 基准,怎么同时做消融?

林默
林默

· 阅读约 4 分钟

上周我又在干一件蠢事:把 chunk_size 从 512 改成 768,重跑整条评估流程,就为了看检索的 nDCG 涨没涨。这种事我一个月干好几回,改分块、换嵌入、加不加重排序,每改一个都要手动搭一遍评估,时间全花在搭环境上,不是花在分析上。

所以看到 10 月 20 号挂出来的那篇 RAG-NIMBF 时,我眼睛亮了一下。非侵入、模块化、受控消融——这三个词放在一起,像有人把我这摊烂事流程化了。

往下看摘要,我又开始犯嘀咕。作者说框架“不修改被测系统,以附加评估层接入”。这是它非侵入的意思。但同一段里又说,它把 RAG 拆成分块、嵌入、检索、重排序、提示词、生成模型六个维度,做受控消融实验。

先停一下,问个问题:一个不改被测系统的框架,怎么做消融?

消融的本质是控制变量:固定其他维度,只动一个,看结果怎么变。这要求你能改配置。非侵入又说不能改被测系统。那它消融的对象是什么?如果它是在评估层里搭一个“影子流水线”,按论文的设计把各个维度替换成不同配置,那它测的就不是你的生产系统,而是一个照着你的架构复刻出来的替身。替身换了轮胎跑得再快,也不等于你那辆二手车换了轮胎就一定跑更快。

我一开始也以为“非侵入”是个纯粹的安全承诺:别碰生产,在沙盘里测。后来才发现,安全是有代价的。

代价是你在沙盘里得到的提升,要迁移到生产,中间有个很难量化的缝隙。生产系统有历史数据、有补丁、有各种没人敢动的默认值,沙盘里这些都不存在。作者说这框架“支持在不打断生产工作流的前提下评估和改进已上线系统”——这话没错,但它说的是“能评估”,不是“评估出来的结论能直接搬回生产”。

再往下呢?

再说回那组数据。摘要里最让我停下来的不是 MMR 把 nDCG@5 抬了 4 到 11 个百分点,这个提升在标准数据集上不稀奇。真正怪的是另一组:提示指令写得更详细,生成答案对检索证据的忠实度,在 Qwen3.6-27B、GPT-4o-mini 和 Qwen3.5-think 上提升了 10 到 13 个百分点,但在一个 20B 规模的生成模型上几乎没有变化。

为什么是 20B 这条线上断了?

论文摘要没给解释。我试着往下猜一层:小模型对指令的消化能力有限,详细指令里多出来的那些约束,它根本接不住。你给它的提示词再详细,它也只会抓住前几条,剩下的约束互相打架,最后被模型内部“头重脚轻”的注意力分配给冲淡了。这正好是 RAG 组件间相互作用的活样本——不是提示词单独好不好,不是模型单独大不大,是“提示详细度 × 模型规模”这个交互项在起作用。

而这恰恰是这类框架最该回答、但摘要里还没回答的问题。单一维度的消融能告诉你“MMR 比相似度检索好”“详细提示比简短提示好”,但这些主效应一旦遇上交互效应,就可能整段垮掉。一个在所有大模型上都成立的提升,可能在某个规模以下直接归零,甚至反转。你不知道你手上那个模型落在哪个区间,单看主效应结论就是盲人摸象。

这里得承认一点:我上面那段关于“20B 为什么无感”的机制,是我自己的推测,不是那篇论文的结论,摘要里只报告了数,没解释机制。如果全文里有消融交互项的实验,那是我没看到——预印本摘要页就给了这么多,正文没放出来。所以这层我先搁着。

说回框架本身。Niclas Hart 和 Nicolas Weeger 把这事写成预印本,核心卖点是把“靠直觉调 RAG”变成“可复现的实验结论”。这个方向我认。但我不太信它的“非侵入”能同时满足“可复现”和“贴近生产”这两件事。你要可复现,就得控制环境,控制环境就会偏离生产;你要贴近生产,就别指望每次实验都是干净的。这两头的张力,不是一个“附加评估层”能抹平的。

那晚我改 chunk_size 的事,根子就在这:我想要的是一个能直接告诉我“这个改动有没有用”的判据,但这类框架给的其实是在控制环境下的相对排序。两者之间隔着的那条缝,才是真正难补的地方。

不过,至少有人开始把 RAG 配置当成一个可实验的对象了。这比过去“拍脑袋调参、再跑一遍看看”要强。至于那条缝——基准结论在生产系统上还剩多少、20B 那条断线到底是不是交互效应——我还没想明白,先放这儿,等那篇论文的正文出来再说。

林默
林默

从具体轶事入口,一问一答把默认对的判断剥到设计权衡,主动暴露走过的弯路。

查看主页 →