Appearance
Context Window
Context Window(上下文窗口)是大语言模型单次推理时能处理的最大输入长度。从早期的 2K 到如今的 1M+ token,上下文长度的扩展是 LLM 发展的核心维度之一。本页涵盖上下文窗口的技术限制、扩展方法和长上下文带来的新能力。
核心概念
什么是上下文窗口
模型能"看到"的输入范围:
输入: [系统提示] + [历史对话] + [当前问题] + [检索文档]
↑
总长度 ≤ Context Window关键区别:
- 训练上下文: 模型训练时见过的最大长度
- 推理上下文: 模型实际能处理的长度(可能通过技术扩展)
上下文长度的演进
| 时间 | 模型 | 上下文长度 | 里程碑 |
|---|---|---|---|
| 2020 | GPT-3 | 2K | 早期标准 |
| 2022 | GPT-3.5 | 4K | 主流应用 |
| 2023 | GPT-4 | 8K / 32K | 长文档处理 |
| 2023 | Claude 2 | 100K | 首次突破 100K |
| 2023 | GPT-4 Turbo | 128K | 接近一本书 |
| 2024 | Gemini 1.5 Pro | 1M | 百万 token 时代 |
| 2024 | Kimi | 200K | 中文长上下文标杆 |
| 2024 | Claude 3 | 200K | 企业级长上下文 |
技术挑战
计算复杂度
Self-Attention: O(n² · d)
n = 序列长度, d = 模型维度
上下文增加 10x → 计算量增加 100x内存消耗
| 组件 | 2K | 8K | 32K | 128K |
|---|---|---|---|---|
| Attention 矩阵 | 16MB | 256MB | 4GB | 64GB |
| KV Cache (70B) | 2GB | 8GB | 32GB | 128GB |
注意力稀释
问题: 序列越长,每个 token 分配到的注意力越少
序列长度 2K: 每个 token 平均注意力 = 1/2000
序列长度 128K: 每个 token 平均注意力 = 1/128000
结果: 长上下文中开头的信息可能被"忘记"扩展技术
1. 位置编码外推
训练时用短上下文,推理时扩展到更长:
| 方法 | 原理 | 效果 |
|---|---|---|
| NTK-aware | 插值位置编码 | 2-4x |
| YaRN | 温度缩放 + 频率拆分 | 8x+ |
| Positional Interpolation | 缩小位置索引 | 2-8x |
2. 稀疏注意力
只计算部分注意力对:
| 方法 | 模式 | 复杂度 |
|---|---|---|
| Sliding Window | 只关注邻居 | O(n·w) |
| Dilated Attention | 间隔采样 | O(n·log n) |
| Local + Global | 局部 + 全局注意力 | O(n·w + n·g) |
| Ring Attention | 分布式计算 | O(n²/d) |
3. 上下文压缩
用压缩表示替代原始 token:
原始: [token1, token2, ..., token_N] N 个 token
压缩: [compressed_embedding] 1 个向量
方法:
- 汇总 (summarization)
- 向量压缩 (memory tokens)
- 流式处理 (streaming)4. 混合架构
| 架构 | 特点 | 代表 |
|---|---|---|
| Transformer + RNN | 局部用 Attention,全局用 RNN | RWKV |
| State Space Model | 线性复杂度 | Mamba |
| RetNet | 固定复杂度 | 实验性 |
长上下文的新能力
1. 长文档理解
- 法律文件: 分析整份合同
- 科学论文: 理解多篇相关研究
- 小说: 记住整本书的情节
2. 多轮对话
- 保持更长的对话历史
- 减少信息遗失
3. 多模态
- 视频理解(每秒 1-2 帧,分钟级视频 = 数万 token)
- 图像集分析
4. RAG 替代
长上下文 vs RAG:
| 方案 | 优点 | 缺点 |
|---|---|---|
| 长上下文 | 简单、无检索成本 | 成本高、慢 |
| RAG | 快、可扩展 | 需要检索系统 |
评估方法
长上下文评测
| 任务 | 测试内容 | 难度 |
|---|---|---|
| Needle in a Haystack | 在长文末中查找特定信息 | 中 |
| 多跳推理 | 需要结合多处信息 | 高 |
| 时序推理 | 按时间顺序组织信息 | 高 |
| 多文档 QA | 综合多个文档回答 | 很高 |
实际表现
重要发现: 能处理 ≠ 能理解
- 大多数模型在 >32K 时表现下降
- "Lost in the Middle" 效应: 中间信息被忽略
- 需要专门的长上下文训练
Synthesis
上下文窗口是 LLM 能力的核心维度之一。从 2K 到 1M+ 的进化不仅仅是数字的增长,更是应用范围的质变——从短文本处理到整本书理解、从单轮对话到长期协作。然而,长上下文也带来了显著的计算和内存挑战,这促使了稀疏注意力、状态空间模型等新架构的研究。实际应用中,长上下文与 RAG 通常是互补方案而非替代关系。
Related Pages
- Transformer Architecture — Transformer 架构
- Attention Mechanism — 注意力机制
- KV Cache & Prompt Caching — KV Cache 优化
- RAG vs Long Context — RAG vs 长上下文对比
- Position Encoding — 位置编码与外推
Sources
"Lost in the Middle: How Language Models Use Long Contexts" (Liu et al., 2023)
"Ring Attention with Blockwise Transformers" (Liu et al., 2023)
"Mamba: Linear-Time Sequence Modeling with Selective State Spaces" (Gu & Dao, 2023)
Gemini 1.5 Pro 技术报告
Large Language Model (LLM) — 大语言模型的核心定义、技术原理与发展历程