先量化幻觉:裸问你的业务,它编造 5/8
三组对照——裸问、允许拒答、给对资料,一次看清 RAG 要解决什么
ap0.2 那次幻觉实验有点"不给面子":我问它一个不存在的诺奖得主,它诚实地纠正了我。
那是因为公开知识它见过。这一节换个战场——问它你公司的规定:退货几天?会员多少钱?满多少免运费?这些它不可能知道。
实测结果:8 个问题,它全答了,5 个是编的。而且编得极其自信:"市区订单满 58 元 免运费"(真实是 59)、"积分保留 30 天"(真实是 90)。
你的用户会当真。
你雇了一个业务能力极强的新人,第一天上班就有客户打电话问"你们的退货政策是几天?"
他不知道——但他在同行干过,于是脱口而出"七天"(行业惯例)。这次蒙对了。下次客户问"会员到期积分保留多久",他答"30 天",而你们的规定是 90 天。
这不是他不老实,是你没给他员工手册。RAG 就是把手册塞给他。
实验设计:一份"只有我们知道"的制度
我造了一份虚构店铺的规则(退货/会员/配送/积分/投诉五份),问 8 个答案只在这份文档里的问题。三组对照:
- A 裸问:什么都不给,直接问;
- B 裸问 + 允许说不知道:明确写"不掌握就说没查到,严禁猜测";
- C 给对资料:把正确的那份文档塞进提示词(RAG 的理想上界)。
结果:三组数字
组 给出具体答案 答对 编造(答了但错)
A 裸问 8/8 3/8 5/8
B 裸问+允许说不知道 0/8 0/8 0/8
C 给对资料(RAG上界) — 8/8 —
A 组的编造长什么样(原样节选):
「市区订单多少钱免运费?」→ 我们店铺的免运费政策是:市区订单满 58元 即可享受免运费配送。 「会员到期后积分还保留多久?」→ 我们店铺的规定是:会员到期后,积分会保留 30天。 「郊区不满免运门槛收多少运费?」→ 一般是 8元至15元 不等。
看这个语气:"我们店铺的规定是"——它以第一人称、笃定地说出了从没存在过的数字。真实答案分别是 59 元、90 天、12 元。
那答对的 3 个呢?纯属巧合——它蒙的行业惯例("100 分抵 1 元""24 小时响应""1-3 个工作日退款")恰好和我编的制度撞上了。蒙对不是能力,是运气。
三个必须记住的结论
① 幻觉的高发区不是"公开知识",是"你的业务"。 ap0.2 里它对诺奖问题很诚实,这里对你家规定张口就来——区别在于它知道自己不知道诺奖,却不知道自己不知道你家的规矩(它以为行业惯例就是你家规矩)。你的产品要回答的,恰恰全是后一类问题。
② 一句"不知道就说不知道"能压掉全部编造——代价是全部功能。 B 组编造率 0/8,漂亮。但它 8 个问题全部拒答,产品价值也归零。这是一个必须理解的权衡:拒答机制是安全阀,不是解决方案。
③ 给对资料 = 8/8。这是你后面 6 节要逼近的天花板。 C 组证明了模型的理解和总结能力完全够用——瓶颈从来不在"它笨",而在“它手上没有你的资料”。
所以 RAG 到底在解决什么
一句话:在回答之前,先把相关的资料找出来塞给它(Retrieval-Augmented Generation,检索增强生成)。
但注意 C 组的作弊之处:我直接把"正确的那一份"喂给了它。真实产品里没人告诉你哪份是对的——"从一百份文档里找出该给的那一份",才是 RAG 真正的难题,也是接下来 6 节的全部内容:
| 节 | 解决什么 |
|---|---|
| 4.2 切分 | 文档太长塞不下,怎么切成块 |
| 4.3 嵌入与检索 | 怎么把"意思相近"变成可计算的 |
| 4.4 检索评测 | 检索准不准,得先能测 |
| 4.5 重排与混合 | 检索结果不够准怎么补救 |
| 4.6 引用溯源 | 答案必须能指回原文 |
| 4.7 知识更新 | 文档改了,索引怎么跟上 |
🔧 动手做:量出你自己业务的幻觉率(12 分钟)
- 跑本节代码
hallucination_baseline.py,看三组数字。 - 换成你的业务:把
KB换成你毕业方向真实的规则/文档(3-5 份),编 8 个答案只在文档里的问题。 - 跑 A 组,逐条读它的回答——注意它编造时的语气有多自信。这是你产品上线后用户会看到的东西。
- 记下三个数:A 组编造率、B 组拒答率、C 组准确率。这是你的 RAG 基线,后面每一节的改进都要和它比。
- 想一想:如果你的产品今天就上线(没有 RAG),这 5/8 的编造会造成什么后果?(退错货?算错运费?客诉?)
✅ 做到这里你应该有:你自己业务上的三个基线数字,以及一份"编造样例"的截图——它是你说服自己(或说服老板)做 RAG 的最好材料。
为什么:这一节延续本课的固定套路:先量化,再解决。有了"编造 5/8"这个数,后面每一步 RAG 优化都能回答"我把它降到了多少";没有它,你只能说"感觉好多了"。
A 组答对的 3 个,是它蒙的行业惯例恰好撞上了我编的制度。换一家公司,这 3 个也会错。更危险的是:你在测试时可能恰好只测了这 3 个,于是得出"幻觉没那么严重"的结论。防御方法:评测问题要专门挑"你家和行业惯例不一样的地方"——那些才是幻觉真正会咬人的地方,也是你的业务最独特的地方。
我的业务是【描述】,有这些内部规则文档:【列出主题】。请帮我设计 10 个「答案只可能在文档里、模型不可能知道」的评测问题,要求:1) 至少 5 个是「我们家规定和行业惯例不一样」的点;2) 每个标注标准答案里的关键事实(数字/期限/条件);3) 说明如果模型编造,会给用户造成什么实际损失。
三个数字记住:裸问编造 5/8、允许拒答后 0 编造但 0 可用、给对资料 8/8;幻觉的高发区是你的业务而非公开知识;RAG 的难点不是"给资料",是"从一堆资料里找对那一份"。
下一节开始建 RAG 的第一环:文档怎么切——切太大塞不下、切太小丢上下文,这里有一堆能实测的取舍。
🔎 来源与核验· 1 条,点开核对
