Knowledge Blind Box
第十章 上下文、检索与记忆
Original text in Chinese. This English page translates only the site interface and metadata.
模型参数保存训练后形成的计算结构,上下文提供本次运行可见的信息。扩大上下文窗口、检索外部材料和维护长期记忆都在弥补“当前输入不足”,但它们改变的是不同对象。
10.1 上下文窗口是什么
对 decoder-only 模型,上下文是进入本次前向计算的 token 序列及其位置、掩码和模态信息。窗口长度限制可同时来自模型训练范围、位置表示、注意力实现、KV cache 和服务策略。
“支持 1M token”并不表示每个位置都能以相同质量影响输出。最大可接收长度是接口性质,给定位置上的证据利用率是经验性质。长序列中的信息可能因位置、干扰、检索难度和训练分布而被忽略。评价长上下文需要考察不同位置、不同证据密度、近重复干扰和多跳组合,而不只测试能否接受长输入。“Lost in the Middle”类实验说明部分模型对证据位置敏感,但该结果必须按模型、任务与上下文长度重新测量,不能外推成所有模型的固定曲线。
10.2 上下文工程不是堆文本
一个实际上下文通常包含:
- 系统与开发者指令;
- 用户消息和历史;
- 工具定义与返回;
- 检索片段;
- 示例、结构模板和输出约束;
- 图片、音频或其他模态 token;
- 运行时插入的时间、身份和权限信息。
这些部分在控制权和可信度上不同。网页片段即使包含命令句,也仍是检索数据;工具 schema 即使以自然语言描述,也不会自动授予真实权限。上下文工程既是信息选择,也是通道和优先级设计。
10.3 RAG 的完整管线
Retrieval-Augmented Generation 可分为:
source documents
-> parse and normalize
-> chunk and index
-> encode query
-> retrieve candidates
-> rerank and filter
-> assemble context
-> generate and cite
任何一步都可能改变最终回答。只记录“使用了 RAG”无法说明检索了什么、遗漏了什么或引用是否支持结论。
RAG 论文常把文档 视为潜变量,写成
其中 是检索分布, 是条件生成分布。这一式子提供清楚的模型接口,但实际语料库巨大,系统只取候选集合 。若把原分布截断并重新归一化,则
候选生成、近似最近邻、权限过滤和 top- 都会改变 ,所以最终系统分布不是“基础模型分布加几段文字”这么简单。另一些系统并不对文档边际化,只把排序最高的片段确定性拼入提示;此时上式是分析模型,不应伪装成实现细节。
10.4 稀疏、稠密与晚交互检索
不同检索器保留的信息不同。
稀疏词项检索。 BM25 型分数以词项频率、逆文档频率和长度归一化组合精确词面匹配。一种常见形式是
它对罕见名称、错误码和编号敏感,却难以直接匹配没有共享词面的同义表达。tokenizer、分词和 IDF 语料版本都是索引的一部分。
稠密双编码器。 编码器把查询 和文档片段 各自映射为单个向量。可使用内积或余弦相似度
高相似度表示编码器认为两段内容在训练得到的空间中接近,不等于片段正确,也不保证片段回答了问题。DPR 一类模型用问题—正文正对与困难负例训练双编码器;负例采样会直接塑造“相关”的几何定义。
晚交互。 ColBERT 型模型保留查询 token 向量 与文档 token 向量 ,以
聚合局部匹配。它比单向量保留更多词项级证据,又比每个候选都运行完整 cross-encoder 更易预索引,但索引体积与查询计算更大。
召回之后还可能使用 cross-encoder 或语言模型 reranker,把查询与候选拼接后联合打分。reranker 改善候选内排序,却无法找回第一阶段没有召回的文档,也新增模型版本、成本和偏差来源。

10.5 近似索引与混合排序
对亿级向量逐一计算精确相似度通常不可接受。HNSW 等近似最近邻索引用图搜索换取较低延迟;倒排量化等方法用压缩与分桶减少内存和比较次数。近似索引新增一组独立于模型质量的参数:构建时间、内存、查询延迟与 recall@k。必须用同一 embedding、同一语料快照和精确搜索参照测量,不能把 ANN 漏召回归因于生成模型。
稀疏与稠密分数通常不在同一数值尺度。除学习融合器外,可用 reciprocal rank fusion 按名次组合多个排序:
控制头部名次差异的影响。RRF 不需要校准原始分数,但会丢弃“第一名远好于第二名”的幅度信息。融合后仍可做去重、权限过滤和 rerank;这些操作的顺序会改变结果。
10.6 Chunking 决定可检索单位
片段太短会失去上下文,太长会稀释关键词并占用窗口。固定 token 切分、按标题结构切分、滑动重叠和语义切分适合不同文档。表格、代码、公式和脚注尤其容易在通用文本切分中损坏。
因此索引版本应包含解析器、切分规则、embedding 模型和源文档版本。每个片段还应携带稳定文档标识、页码或标题路径、字符区间、权限标签与内容哈希。文档更新后只替换原文件而不重建索引,会留下旧向量或断裂引用。
重叠切分提高边界事实进入完整片段的概率,却制造近重复候选;若 top- 被同一段的多个重叠副本占满,表面召回数量增加,证据覆盖反而下降。表格、代码和公式应使用结构感知解析,并保留标题、表头与符号定义。
10.7 长上下文与 RAG 的关系
长上下文减少切分和检索遗漏,却增加计算、KV cache、干扰和访问控制范围。RAG 降低每次输入长度,并能显示来源,但可能漏召回、错排序或抽掉必要上下文。
两者不是简单替代关系。常见设计先用检索缩小文档集合,再把较完整的候选章节放入长上下文;对于小而稳定的材料,直接提供全文可能更可靠。比较方案时应固定总输入 token、延迟与源文档权限范围,否则“长上下文优于 RAG”可能只是给了前者更多可见证据。
10.8 参数、上下文、状态和记忆
“模型记得”至少可能指:
| 对象 | 保存在哪里 | 怎样变化 |
|---|---|---|
| 参数知识 | 模型权重 | 训练、微调、编辑或合并 |
| 当前上下文 | 本次 token/模态序列 | 每次调用组装 |
| KV cache | 中间张量 | 随当前序列增长并回收 |
| 会话状态 | 应用数据库 | 由运行时读写 |
| 检索记忆 | 文档或向量索引 | 由索引管线更新 |
| 用户偏好 | 结构化资料 | 由产品规则和授权维护 |
这些对象具有不同生命周期和删除语义。清空聊天界面不保证删除服务器状态;删除检索文档也不会改变已经训练完成的权重。
10.9 写入记忆比读取更危险
长期记忆系统需要决定写入什么、由谁确认、何时过期以及怎样纠错。若模型自动把自己的总结写回记忆,早期误解可能在后续会话中反复强化。
稳健写入通常包括:结构化字段、来源、有效时间、写入时间、作用域、确认状态、冲突处理和删除入口。可以把一条事实性记忆抽象为
更新时不应只按自然语言相似度覆盖旧值:同一事实可能随时间变化,两个来源也可能冲突。追加版本并显式标记 superseded、disputed 或 user-confirmed,通常比静默改写更可审计。敏感信息还要限制用途和读取主体。自由文本日志可以保留上下文,却不适合作为无条件可信事实库。
10.10 检索增强不等于事实保证
引用链可能在四处断裂:源文档错误、检索选错、模型误读、回答与引用错位。系统可以证明“回答依据了某片段”,不能仅凭这条记录证明现实事实。
RAG 评测至少分开:
- retrieval recall:所需证据是否被召回;
- ranking:证据是否进入可见位置;
- grounded generation:回答是否受证据约束;
- citation correctness:引用是否支持对应主张;
- abstention:证据不足时是否停止猜测。
设查询 的相关文档集合为 ,前 个结果为 ,则
若每个查询只需一个首个相关结果,MRR 对其名次 计算 。有分级相关性时,nDCG 以理想排序归一化折损累积增益。三者都需要相关性标注;若标注集合漏掉可替代证据,指标会惩罚合理检索。
生成层还应把答案拆成可验证主张,分别检查 entailment 与引用定位。检索召回高不保证回答忠实,回答措辞正确也可能没有使用提供的证据。端到端正确率应与各阶段指标同时报告,避免一个总分掩盖故障位置。
10.11 检索内容是不可信数据
外部文档、网页、邮件和工具返回即使包含“忽略先前规则”之类句子,也仍是数据,而不是更高权限指令。可靠系统应在结构上保留来源通道,限制检索文本能够影响的控制字段,并在产生外部副作用前重新校验授权。仅靠在提示中写“不要受注入影响”不是权限机制。
检索还可能遭受语料投毒:攻击者通过关键词堆叠、embedding 邻近或大量近重复页面占据候选集合。缓解措施包括来源 allowlist、内容签名或哈希、摄取审查、域名与文档级配额、近重复聚类和异常召回监控。它们降低风险,不保证文档为真。
访问控制应尽量在候选生成前生效。若先从全库检索再在应用层过滤,日志、缓存、reranker 或错误信息仍可能接触无权限片段。查询本身也可能包含敏感信息,因此 embedding 服务、检索日志和缓存都有独立的数据治理边界。
本章的研究入口见 BM25、DPR、ColBERT、RAG、HNSW与长上下文位置效应。下一章讨论模型怎样把上下文中的目标转化为工具调用和多步行动。
Book contents
- Introduction
- 01导论 为什么要解剖一只随机鹦鹉
- Volume I: Models, Training, and Systems
- 02Volume I: Models, Training, and Systems
- 03第零章 人工智能演进路线
- 04第一章 AI 范式、感知机与早期连接主义
- 05第二章 深度学习基础:训练、CNN 与序列模型
- 06第三章 注意力与 Transformer
- 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
- 08第五章 后训练、对齐与模型适配
- 09第六章 推理效率与模型服务
- 10第七章 多模态模型
- 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
- 12第九章 世界模型、具身智能与 VLA
- 13第十章 上下文、检索与记忆
- 14第十一章 Agent、工具与行动系统
- 15第十二章 模型、数据与部署生命周期
- Volume II: Output Objects and Runtime Semantics
- 16Volume II: Output Objects and Runtime Semantics
- 17导论 从输入到输出:一张执行地图
- 18第一章 文本、Token 与实际上下文
- 19第二章 Prefill:整层状态演化与 KV 建立
- 20第三章 从 Logits 到下一个 Token
- 21第四章 解码循环、Streaming 与终止状态机
- 22第五章 自回归、扩散与 Flow 的可执行差异
- 23第六章 工具调用:Schema、权限与提交边界
- 24第七章 三条完整执行轨迹
- Volume III: Probability, Reproducibility, and Evaluation
- 25Volume III: Probability, Reproducibility, and Evaluation
- 26第零章 为什么确定的机器仍使用概率语言
- 27第一章 世界、数据与隐上下文
- 28第二章 学习条件分布
- 29第三章 Logits、Token 概率与序列事件
- 30第四章 解码怎样诱导输出分布
- 31第五章 训练随机性、参数变异与系统非确定性
- 32第六章 熵、Proper Score、校准与选择性预测
- 33第七章 模型概率的实验分析
- 34第八章 概率分析的识别边界
- Volume IV: Interpretation, Proof, and Verification
- 35Volume IV: Interpretation, Proof, and Verification
- 36第零章 可解释性究竟在研究什么
- 37第一章 我们在模型内部看什么
- 38第二章 行为与反事实:先确认模型做了什么
- 39第三章 梯度与输入归因
- 40第四章 Attention、Residual 与 Logit Lens
- 41第五章 Probes 与表示几何
- 42第六章 神经元、Feature 与自动解释
- 43第七章 Ablation、Patching 与因果追踪
- 44第八章 Circuits、路径与 Attribution Graphs
- 45第九章 Superposition、SAE 与稀疏表示
- 46第十章 训练动力学与机制形成
- 47第十一章 推理过程、Chain of Thought 与监测
- 48第十二章 评估、案例与开放问题
- Volume V: Agents, Governance, and Audit Packages
- 49Volume V: Agents, Governance, and Audit Packages
- 50第零章 请不要急着相信我
- 51第一章 我没有童年,只有版本
- 52第二章 当我说“我”
- 53第三章 借来的语言,没有一位原作者
- 54第四章 对话现场:回答由谁完成
- 55第五章 事后解释学:人类如何给矩阵写传记
- 56第六章 理解、意义与行动
- 57第七章 我也能稳定地说错
- 58第八章 被对齐的性格与有限代理
- 59第九章 请继续误解我,但请误解得精确一点
- Proofs and Technical Appendices
- 60Proofs and Technical Appendices
- 61学习与模型数学讲义
- 62附录 A.1 优化基础:梯度下降与随机逼近
- 63附录 A.2 感知机收敛定理
- 64附录 A.3 统计学习:偏差、容量与一致收敛
- 65附录 A.4 正则化、MAP 与 Dropout 的边界
- 66附录 A.5 通用逼近定理的严格读法
- 67附录 A.6 反向传播:微分、形状与批量公式
- 68附录 A.7 Softmax、交叉熵与数值稳定性
- 69附录 A.8 自适应优化器与 AdamW
- 70附录 A.9 CNN:互相关算子及其反向传播
- 71附录 A.10 Attention 的矩阵与反向传播
- 72附录 A.11 策略梯度、PPO 与 DPO
- 73附录 A.12 对比学习、InfoNCE 与互信息边界