找回来之后怎么答 — 提示是请求,不是约束
这一章讲三件事: 检索到的原文用什么形状交给模型; 交进去之后,写在提示里的要求有多少会被照做;以及照做不了的那些,该用什么手段真正管住。 它在全书链条里的位置: 前七章都在讲「怎么把对的东西找出来」, 从这一章起讲「找出来之后怎么用」 —— 这是六站流水线的最后一站。
1. 顶层全景
检索回来的几段原文
│
▼
┌─────────────────── ─────────────────────────────┐
│ 拼成一段文字交给模型: │
│ 你是一个助手。 │
│ 请根据下面的资料回答问题。 │
│ 资料:<原文段落,原样贴进来> │
│ 问题:<用户的问题> │
│ 回答: │
└────────────────────────────────────────────────┘
│
▼
模型顺着这段文字往下写
│
├─ 你在里面写的「请怎样怎样」——它可能照做,也可能不照做
└─ 而不照做的输出,看上去照样像个正经答案
图说:上面这个框里的东西,就是这一章的全部对象。 它是一段普通的文字,不是一份配置,也不是一份合同。
一句话链条: 原文原样塞进提示 → 这种做法有名字、也有边界 → 塞进去之后你只能「写要求」→ 而要求不等于约束 → 真要管住输出,得靠提示之外的手段。
2. 最朴素的那种做法有名字:stuff
书在这里给了一句干净的定义:把检索到的文档原样塞进提示, 文档短的时候管用,否则会撑爆模型的输入上限1。
这种做法的名字就叫 stuff(英文原意是「塞」)。
你在把这些步骤包好的那套库里,会看到它是一个可选项 ——
所以这个名字要记住,你出门会在配置里撞见它。
它的边界在哪儿
第 03 章说过,模型一次能看的文字有个上限。塞进去的资料越多,离这个上限越近。
取回 3 段、每段 300 字符 → 900 字符 够用
取回 20 段、每段 800 字符 → 16000 字符 多半塞不下
取回 100 段 → 必然塞不下
图说:`stuff` 没有任何应对办法——它就是「全塞」。
塞不下的时候要换别的做法(先各段分别总结再合并、或者逐段追问逐段修正),
**而这本书只演示了 `stuff` 这一种。**
3. 主走查:两句话的资料,一个问题,一次逐字复述
这一节是本章的主走查。这一章每一个机制,在这条线上都占一步。
书有一个配方,把语料写死在代码里,只有两句话2:
句 A:Retrieval-Augmented Generation (RAG) is a technique that improves
AI responses by combining document retrieval with language generation.
(RAG 是把找资料和写文字结合起来、以改进 AI 回答的一种技术。)
句 B:It reduces hallucinations by grounding answers in retrieved documents
instead of relying only on the model's memory.
(它把答案落在找回来的资料上、而不只靠模型自己的记忆,从而减少胡编。)
图说:注意句 B 的第一个词是 **It**。这两句话在原文里是挨着的,
所以「It」指谁一目了然。**待会儿它们会被拆开。**
问题是:How does RAG reduce hallucinations?(RAG 怎么减少胡编?)
六步,每步的实际内容
| 步 | 这一步做了什么 | 具体的字串 |
|---|---|---|
| ① | 把两句话各自变成一串数 | 2 条,各 384 个数(第 04 章那个模型) |
| ② | 按相似度取前 2 条 | B 在前、A 在后 —— 和原文顺序相反 |
| ③ | 把这两条原样拼成一段(stuff) | It reduces hallucinations … memory Retrieval-Augmented Generation (RAG) is a technique … generation |
| ④ | 在前面加上要求 | 其中一行写着 Do not just repeat words — provide a clear explanation.(不要只是重复词句 —— 要给出清晰的解释) |
| ⑤ | 交给模型 | 用的是第 01 章说过的那个 2.5 亿参数的小模型 |
| ⑥ | 模型给出答案 | 句 A + 句 B,一字不差,而且顺序又倒回了原文的样子 |
第 ⑥ 步书印出来的原文是3:
Answer: Retrieval-Augmented Generation (RAG) is a technique that improves
AI responses by combining document retrieval with language generation.
It reduces hallucinations by grounding answers in retrieved documents
instead of relying only on the model's memory.
图说:把这段和上面的句 A、句 B 对一遍——**一个字都没变。**
而第 ④ 步的提示里,明明白白写着「不要只是重复词句」。
这条走查同时说明了三件事
第一,答案其实是对的。 两句话都被检索到了,而句 B 正面回答了问题。 这一次没有出错。
第二,它不是「解释」,是复述。 提示要的是解释,拿到的是原文。 要求落空了,而输出看上去完全正常 —— 这是第 5 节的全部内容。
第三,顺序被换过了。 第 ② 步里 B 排在 A 前面,而 B 是以「It」开头的。 这是第 4 节的内容。