长上下文与 RAG 的配合
长上下文窗口能容纳更多材料,但它不是检索的替代品:全量塞入的推理成本随长度线性上涨,而且模型对长文本中间位置的利用率明显低于开头与结尾(Lost in the Middle 现象)。更划算的组合是两个阶段分工——检索负责把范围从百万级缩小到几十条,长窗口负责让模型一次性看到更多互相印证的片段。这样既控制了成本,也把关键信息放在模型真正会读的位置。
基本信息
| 核心矛盾 | 窗口变大不代表利用率同步提高 |
|---|---|
| 已知现象 | 关键信息位于长上下文中段时利用率下降 |
| 成本特征 | 输入长度直接决定推理费用与时延 |
| 推荐组合 | 检索缩小范围 → 重排 → 长窗口承载更多精排片段 |
| 位置策略 | 高相关片段放开头与结尾,避免埋在中间 |
典型使用场景
- 单文档深问答:需要跨章节比对时把整章材料放进长窗口由模型判断
- 多片段交叉验证:把同一事实的三个来源并列,降低单片段误读风险
- 表格与规范类内容:片段间引用关系强,割裂后容易理解错
- 成本与质量的权衡实验:固定质量目标,比较“检索少量片段”和“长窗口全塞”的账单
- 页面级问答:用户点开某文档后只问这一篇,检索范围天然收窄
两种策略示意
两种策略示意
全量塞:全部文档 → 模型(成本高、噪声多、中段内容利用率低)
RAG + 长窗口:检索筛选 → 重排 → 取前 N 条进长窗口(成本可控、位置可控)
混合:先按长窗口承载整章材料,再用检索在其中定位段落下标两种做法对照
| 维度 | 全量塞入 | 检索 + 长窗口 |
|---|---|---|
| 成本 | 随语料规模线性增长 | 与片段条数相关,可控 |
| 噪声 | 无关内容稀释注意力 | 重排后噪声显著下降 |
| 更新 | 语料变更要重传全部 | 只更新受影响片段 |
| 适用 | 单文档、规模固定 | 多文档、持续增长的知识库 |
片段顺序不要完全按分数排:把最相关的放在开头、次相关的放到结尾,中间放支撑材料,比单纯按分数降序更容易被模型稳定利用。