跳转到内容

长上下文:让模型读得更远

早期的 Transformer 只能处理几百个词,相当于一段短文。今天的模型可以处理数万甚至上百万 token,相当于整本书或大量代码库。长上下文能力让模型能一次性分析长文档、维护多轮对话记忆、处理复杂的多步推理。

但”能放进去”不等于”能看懂”。很多模型在长文本的后半部分表现下降,这被称为” lost in the middle “现象——模型对上下文中间部分的召回率低于开头和结尾。

工程版:扩展、评测与实用技巧

Section titled “工程版:扩展、评测与实用技巧”

扩展上下文窗口的主要方法:

  • 位置编码外推:RoPE 基础上做插值(NTK-aware、YaRN)或缩放,让模型适应更长的位置索引。
  • 继续预训练:在长文本数据上继续训练,让模型真正学会利用长距离依赖。
  • 稀疏注意力:局部-全局混合、滑动窗口,降低长序列的计算成本。

工程实用技巧:

  • 把最重要的信息放在 prompt 的开头或结尾,避免埋在中间。
  • 长文档摘要时,先分块再合并,或让模型自底向上递归总结。
  • 使用”needle-in-a-haystack”测试验证模型是否能在长文本中定位关键信息。

评测要覆盖:事实检索、多跳推理、长代码理解、长对话一致性,而不仅是”能接受多长输入”。

2026 年:1M token 从宣传参数变成实用配置

Section titled “2026 年:1M token 从宣传参数变成实用配置”

2026 年,百万 token 上下文从”宣传参数”变成”实用配置”,背后是三件事同时成熟:

  • 可学习稀疏注意力进入主力模型:DeepSeek-V4 等技术报告把稀疏/混合注意力当作架构的一等公民,长上下文推理成本相比稠密注意力下降近一个数量级(详见 高效注意力)。
  • KV cache 压缩:驱逐与量化策略让超长上下文的显存占用可控(详见 KV Cache 与量化)。
  • 长上下文训练:长文档继续预训练与长程任务后训练,让”能放进去”更接近”能看懂”。

工程上也出现了新的常规取舍:1M 上下文的单次调用延迟和成本仍显著高于短上下文,“先检索再短上下文”还是”直接长上下文”,成为应用架构设计里的标准成本-质量权衡。

研究版:注意力机制的根本限制

Section titled “研究版:注意力机制的根本限制”

研究上,长上下文的根本瓶颈不仅是计算复杂度,更是注意力模式的效率:人类阅读长文时会主动跳过无关部分,而标准注意力仍要计算所有位置对。如何让模型学会”选择性阅读”?

方向包括:可学习的稀疏模式、基于内容的检索路由、以及把外部记忆与短期上下文结合的混合架构。长上下文也是评估模型”理解”深度的试金石:表面上的 token 容量增长,是否对应真正的长程推理能力提升?

🔬 开放研究问题

该领域的关键问题与研究方向:

  1. 长上下文模型的"有效上下文长度"如何定义?Needle-in-a-Haystack 测试是否充分?
  2. H2O 等 KV cache 压缩方法在极长序列下的信息损失如何量化?
  3. 位置编码外推与训练时长的关系:Yarn/NTK-aware 等方法的理论保证是什么?
  4. 可学习稀疏注意力与 KV cache 压缩叠加时,"有效上下文长度"的信息损失如何联合度量?

本文引用论文

  • YaRN: Efficient Context Window Extension of Large Language Models — Bowen Peng et al. (2023)

    在 RoPE 上做 NTK-aware 插值 + 温度修正,少量训练即可把上下文扩到 64K-128K。当下大多数开源模型扩长基本走 YaRN 或其变体。

  • LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models — Yukang Chen et al. (2023)

    用 shifted sparse attention + LoRA 把 7B 模型扩到 100K 上下文,且只用一台 8xA100。是长上下文微调的工程标杆;另见 YaRN、PoSE。

  • Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation — Ofir Press et al. (2021)

    把位置信息变成 attention 上的线性偏置,零参数即可外推到训练长度数倍以上。是早期长上下文方案的代表,与 RoPE 形成两条路线之争。

  • Efficient Streaming Language Models with Attention Sinks — Guangxuan Xiao et al. (2023)

    提出 Attention Sink 现象:在自回归生成中,模型始终关注开头的几个初始 token。利用这一发现,StreamingLLM 可以在不重新计算的情况下处理无限长输入流,同时保持性能稳定。

  • Needle in a Haystack — Pressure Testing LLMs — Greg Kamradt (2023)

    提出"大海捞针"(Needle-in-a-Haystack)测试方法:在长文本中随机插入一个关键事实,测试模型能否在回答问题准确定位该事实。成为评估长上下文模型事实检索能力的事实标准方法,揭示了大多数模型在长文本中的"lost in the middle"问题。

  • H2O: Heavy-Hitter Oracle for Accurate KV Cache Compression — Zichang Liu et al. (2023)

    发现 KV Cache 中存在"重击者"(Heavy Hitters)现象:少数关键 token 贡献了绝大部分注意力权重。H2O 通过保留这些重击者 token 的 KV,可以在仅保留 20-30% KV Cache 的情况下保持几乎无损的性能。

  • DeepSeek-V4 Technical Report — DeepSeek-AI (2026)

    万亿参数级 MoE 旗舰,采用稀疏注意力与混合注意力架构,原生支持约 1M token 上下文;技术报告称长上下文推理 FLOPs 与 KV cache 占用相比 V3.2 下降约一个数量级,权重以 MIT 协议开放。

  • MISA: Mixture of Indexer Sparse Attention — MISA Team (2026)

    2026 年稀疏注意力的代表工作:用多个可学习的"索引器"(indexer)混合地选择每个查询需要关注的 token 子集,把长上下文注意力从静态模式(滑动窗口等)推向动态学习路由,显著降低长序列推理成本。