速评:这篇论文上周上 arXiv,我读了两遍,越读越觉得它根本不是来教你怎么修 hallucination 的——它是来告诉你,修这个动作本身就在折价,你只是有权挑一种折法。
论文做的东西不复杂:RAG 场景里,模型拿检索来的文档回答问题,还是会产生没依据的陈述。作者用 RAGTruth 基准,把标注的错误答案拆成一个个独立的事实声明,逐一跟检索来源比对,然后试了三种修复——删除、替换、重写——再让三个不同模型家族的评判者对 916 个修复后的答案打分。三个评判者对策略效果的排序完全一致,这点倒是不多见,跨模型还能排出同一个序,说明策略差异比模型差异更扎眼。
但真正让我停下来的是那两个数字。删除策略把无依据内容降得最狠,代价是答案平均只保留了原文的 64.3%;重写策略保留最多,80.1%,可降无依据的效果也最弱。翻译成人话:你想让 AI 少说假话,就得接受它话变少;你想让它话多且完整,就得多担一点它还在编的风险。工程上哪有什么修复,全是在两个不痛快里挑一个。
这瓜有意思的地方在这:大多数人——包括我自己平时写 prompt 的手感——第一反应都是选重写。删掉一段话等于承认之前那段是错的、是废的,心理上过不去,产品上更过不去,因为回答变短了用户会觉得 AI 变笨了。重写呢,看着像把错话"救"回来了,改头换面再接再厉,队形还齐整。但数据已经把面子撕了:删除降无依据效果最好,重写最差。重写的本质是用模型自己的话二次生成,第二遍生成的东西照样可能没依据,甚至更隐蔽,因为它比原句看起来更顺。
不过上面这些还在意料之中。真正让我打了个问号的是另一个数:标注为干净的答案里,有 83.5% 也被编辑了。
这个数字藏在表格角落,但比前面所有结论都值得细想。检测器的误报率高到这个程度——十个干净的答案里有八个多被拉去修了一遍——那前面那些降低效果的对比,有多少是白费力气?我算了一下,916 个修复后的答案里有相当一部分本来就是对的,被误判成有问题,再被三个评判者二次审判。等于一批没病的病人被拉去做了手术,然后统计手术成功率。检测这一环的校准做得怎么样,直接决定这套修复管线的性价比,但论文没有在这一层深挖——作者自己可能也知道,RAGTruth 的人工标注本身就是"干净"的标尺,而标尺自己先含糊了。
还有一个让我犹豫要不要写进来的念头:三位评判者来自三个不同模型家族,排序一致是挺强的结论。但如果这一致的对象只是"删除比重写更猛"这种方向上的一致性,那对实战的帮助也没那么大——真正难的是在"该删多少、删哪句"这个粒度上的拿捏,论文给不了这个粒度。它像是一张地图告诉你"往东走能出城",但不替你决定该走哪条路。
作者在论文里给了一个很收着的定性,说三种策略是"接地保留上的不同取舍点",不是简单的质量排序,选哪种得看你有多需要实用性的答案——这可能是全文最诚实的一句。自动指标确实给不了"实用性"的证据,因为实用性是个功能问题,不是质量指标。你做个客服机器人,缺胳膊少腿的答案会让用户更火;你做个法务摘要工具,漏一个条文比多一句无用的话严重得多。所以"哪个修复策略最好"这个问题本身就是问错了对象:先问你的场景折得起哪一头。
顺嘴说一句,论文投的是 BNAIC/BeNeLearn,A 类——不是那种刷屏的顶会,但作者把这个当完整工作在投,不是抛个半成品 ballon 出来蹭热点。就这个态度而言,论文的节操是够的,只是它解决的问题更接近"把选择摆上台面"这一层,还没到"替你选好"的那一层。
我已经能预感到会有一批 RAG 框架的博客未来几周拿这篇论文当论据,说"删除策略最优,建议接入"。这里我提前立个 flag:要是有人真把删除策略当默认策略接进产品,不出一个月就会有人回来骂答案太短、信息量不够,然后偷偷关掉这个功能。删除只是给了你一个最确定的损失曲线,它诚实,但很多产品场景撑不起这份诚实。
所以这篇论文最该被记住的不是 64.3% 和 80.1% 的对比,是那个没人想直视的 83.5%。它说的是:我们现在连"这句话到底有没有病"都还没判明白,就开始研究怎么治病了。方向没错,但这病床前,还排着比治疗更前置的功课。