Skip to content

引言

2023 年,论文《Lost in the Middle: How Language Models Use Long Contexts》揭示了一个令人不安的事实:当上下文包含大量信息时,模型对中间位置的信息经常「视而不见」

研究者做了一个实验:在一段长文本的不同位置放一个关键事实,然后让模型回答关于这个事实的问题。结果是:

信息位置 vs 模型准确率(示意):

  位置 0%(开头):   ████████████ 95%
  位置 25%:         ██████████   85%
  位置 50%(中间):  ██████       55%  ← 大幅下降!
  位置 75%:         █████████    80%
  位置 100%(结尾): ████████████ 93%

结论:信息放在中间,模型经常忽略它。

这个发现引发了 AI 社区的一场讨论:当模型支持超长上下文时,我们还需要 RAG 吗?

NL1997-
Nelson F. Liu
斯坦福大学博士,Lost in the Middle 论文共同作者
"当相关信息被放置在长上下文的中间位置时,模型的表现会显著下降。"

长上下文:把所有东西塞进去

长上下文的优势

优点:
  ✓ 简单——不需要向量数据库、不需要检索管线
  ✓ 完整——模型能看到所有信息
  ✓ 没有检索误差——不会漏掉重要文档

示例场景:
  把一本 50 页的技术手册全部放进上下文
  用户提问 → 模型直接在手册中找答案
  不需要先做 chunking → embedding → 检索

长上下文的代价

成本:
  假设一份文档有 100K tokens
  每次调用都要发送这 100K tokens 作为输入

  GPT-4o 输入价格:$2.50/1M tokens
  单次调用输入成本:$0.25

  如果每天 10000 次调用 → 每天 $2500 → 每月 $75,000 💀

性能:
  ├── 推理延迟随上下文增长(注意力计算 ∝ N²)
  ├── Lost in the Middle 效应
  └── 模型可能在大量无关信息中「迷失」

长上下文擅长的场景

✅ 整文档分析
  "帮我总结这份 100 页的报告"
  → 需要看完整文档,RAG 的片段检索不够

✅ 全局推理
  "这份文档中有哪些相互矛盾的声明?"
  → 需要对比文档的不同部分

✅ 简单场景
  文档不大(< 50K tokens),查询频率低
  → 不值得搭建 RAG 基础设施

RAG:精准投喂

RAG 的优势

优点:
  ✓ 精准——只检索相关内容,减少噪音
  ✓ 低成本——每次只发送 3-5K tokens 的上下文
  ✓ 可扩展——文档库可以无限增长
  ✓ 实时——可以检索最新数据

成本对比(同样的 100K 文档库,每天 10000 次调用):

  长上下文:
    每次发送 100K tokens → 每月 $75,000

  RAG:
    每次发送 3K tokens(检索结果) → 每月 $2,250
    成本降低了 97%

RAG 的劣势

✗ 检索可能遗漏
  关键文档没被检索到 → 模型无法回答

✗ 上下文碎片化
  文档被切成 chunk → 丢失全局上下文
  "第三章提到的那个方案" → chunk 不包含第三章标题

✗ 基础设施复杂
  需要:向量数据库、Embedding 管线、Chunking 策略、Reranker...

✗ 维护成本
  文档更新 → 重新 Embedding → 更新数据库

两条路线的选择

决策矩阵

维度长上下文RAG
实现复杂度
单次查询成本
大规模文档不适合(成本爆炸)适合
全局推理弱(碎片化)
实时数据不支持支持
准确性受 Lost in Middle 影响受检索质量影响

选择建议

用长上下文当:
  ├── 文档 < 50K tokens
  ├── 查询频率低(每天 < 100 次)
  ├── 需要全局理解(总结、对比、推理)
  └── 原型开发阶段(快速验证)

用 RAG 当:
  ├── 文档库 > 100K tokens
  ├── 查询频率高(成本敏感)
  ├── 文档频繁更新
  └── 需要实时数据

混合方案:长上下文 + RAG

最佳实践:两者结合

  Step 1: 用 RAG 检索 top-K 相关 chunk
  Step 2: 把这些 chunk 放入长上下文窗口
  Step 3: 模型在充足上下文中做推理

  优点:
  ├── 成本可控(只发送相关 chunk)
  ├── 信息精准(RAG 过滤了噪音)
  ├── 推理充分(模型有足够的上下文)
  └── 可扩展(文档库可以无限增长)

趋势:收敛

2023 年:长上下文和 RAG 是两条独立路线
2024 年:业界开始融合两者
2025 年:越来越多的系统采用混合方案

根本原因:
  长上下文越来越长(128K → 1M → 2M)
  但成本仍然是问题
  RAG 精准 + 长上下文推理 = 最佳平衡

未来的可能性:
  如果模型成本持续下降,长上下文可能覆盖更多场景
  但对于大规模、高频率的生产系统,RAG 不会消失

本节小结

概念要点
Lost in the Middle模型容易忽略上下文中间的信息
长上下文简单但成本高,适合小文档和全局推理
RAG精准且低成本,适合大规模文档库
选择依据文档大小、查询频率、是否需要全局推理
混合方案RAG 检索 + 长上下文推理 = 最佳平衡

思考题

  1. 如果模型的上下文窗口可以免费扩展到 1000 万 token,我们还需要 RAG 吗?
  2. 你如何设计一个系统,自动判断应该用长上下文还是 RAG?
  3. 「Lost in the Middle」现象不仅影响 RAG,也影响长上下文。你在实际使用中遇到过这个问题吗?