跳到主要内容

K5.1 上下文拼装:把资料摆到模型面前

摆盘也是门手艺​

检索出来的几段资料,不能就那么原封不动地甩给模型。怎么摆——用什么顺序、什么格式、配上什么指令——直接决定模型看不看得懂、听不听话。

这一步叫 上下文拼装,是 RAG 三步里「增强」这个字的落地(回扣 K0.2)。它做的事说来简单,却步步是坑:

  1. 把检索到的块编号列好——[1] …… [2] ……,方便模型引用、也方便你核对;
  2. 配上明确的指令——「只根据以下资料回答」「资料里没有的,就说没有」;
  3. 把用户的问题放在末尾——让模型读完资料,带着问题作答。

拼好的这一大段文本(指令 + 资料 + 问题),就是真正送进模型的提示词。

亲手走一遍全流程​

下面这个实验,把中篇学过的每一步串起来跑一遍。重点盯第 ④ 步「拼装提示词」——看资料是怎么被摆成模型能用的样子的:

🎮 动手实验
RAG 全流程:从提问到「有据的答案」
把中篇学过的每一步串起来跑一遍。点「下一步」,看一个问题怎么走完「检索 → 重排 → 拼装 → 生成 → 核对」,最后得到一个每句话都标了出处的答案。(内容为教学构造)
🧑‍💻 黑卡会员有什么好处?积分能抵多少钱?
用户的问题里藏着两个子问题:会员好处 + 积分抵扣。它们的答案分散在知识库的不同段落里——正好考验 RAG 把它们凑齐。

🔴 真实模式:让你的模型按第 ④ 步那个提示词真生成一次
上面第 ⑤ 步的答案是预录的。填入你自己的模型服务,把第 ④ 步那个「资料 + 只根据资料答 + 标来源」的提示词真发给它,看它生成的带引用、有据的答案——这就是 RAG 生成环节的真实样子。
👆 先展开「真实模式设置」填好服务并测试连接,「用真模型生成」按钮就会亮起。
💡 要点:RAG 的价值,全压在最后两步——拼装和引用。拼装(K5.1)决定了模型看到什么:把检索到的块按清晰格式摆好、并明确要求「只根据资料答、没有就说没有」。引用(K5.2)决定了答案可不可信:逼模型给每句话标出处,答案就从「你信不信我」变成了「你可以自己核对」。前面 K1~K4 的检索做得再好,也要靠这两步把好料变成好答案。

几个值得注意的地方:

  • 第 ③ 步先清了噪声:检索命中的三条里,「支付方式」明显跑题,被重排淘汰了(回扣 K4)。拼装前先把噪声清掉,模型才不会被带偏。
  • 第 ④ 步的两句指令:「请仅根据以上资料回答」和「在每句话后标注来源编号」——正是抑制幻觉、逼出引用的关键。少了它们,模型就容易放飞自我(下一节细讲)。
  • 资料是编号的:[1] 会员权益…… [2] 积分规则……,这样模型答的时候才能标「〔1〕〔2〕」,你也才能一眼对回原文。

拼装的三个坑​

摆盘摆不好,好料也白搭。三个最常见的坑:

坑一:放太多块。 「多多益善」是错觉。检索到的块不是塞得越多越好——塞满上下文会稀释重点、拖慢速度、还烧钱(回扣上篇 8.2 长上下文的成本,和 K2 切太大的道理一样)。宁可少而精,让每一块都真的相关。

坑二:顺序有讲究。 模型对上下文的首尾更敏感,塞在正中间的信息反而容易被忽略——这个现象叫「lost in the middle」(迷失在中间,2023 年的研究)。所以经验做法是:把最相关的块放在最前面和最后面,别把关键证据埋在中段。

坑三:指令不明确。 如果你只把资料一摆、问题一抛,不加约束,模型就会默认「自由发挥」,掺进它训练时的旧记忆。一句明确的「只根据资料回答,没有就说没有」,往往比换个更大的模型还管用。

这一步没有唯一正确答案

拼装的格式、顺序、指令措辞,都要按你用的模型和任务去调——没有一套模板包打天下。更要命的是:「把资料摆好」不等于「模型会用好」。就算你把对的资料端端正正摆在它面前、指令也写清楚了,模型有时仍会走神、仍会掺记忆。这是下一节 K5.2 要专门对付的问题——拼装是「把料摆好」,有据回答是「逼它照料答」。

小结​

本节要点
  • 上下文拼装是「增强」的落地:把检索块编号列好、配上明确指令、问题放末尾,拼成送进模型的提示词。
  • 三个坑:放太多块(稀释重点、烧钱)、顺序不讲究(lost in the middle,最相关的要放首尾)、指令不明确(模型放飞自我掺记忆)。
  • 那两句指令「只根据资料答」「标注来源」,往往比换个更大的模型还管用。
  • 「把资料摆好」不等于「模型会用好」——这要靠下一节的有据回答来兜底。
📝 动手自测0/3
1. 「上下文拼装」这一步,主要在做什么?
2. 「lost in the middle」现象告诉我们,拼装时应该怎么摆放最相关的块?
3. 关于「检索到的块放多少」,下列哪个说法对?

延伸阅读​

  • Lost in the Middle(2023)——模型对上下文首尾更敏感、忽略中段的经典研究,本节坑二的出处。
  • 上篇 8.2 长上下文——为什么「块塞太多」既贵又未必更好。
  • 下一节 K5.2 有据回答:把资料摆好之后,怎么逼模型真的照着答、还交出处。