30 秒快速回答

长上下文(Long Context) 指的是大语言模型一次能处理的文本长度上限。2023 年初 GPT-4 只有 8K token(约 6000 字),到 2025 年 Gemini 2.5 Pro 已达到 200 万 token(约 150 万字)——相当于一次塞进整本《三体》三部曲。长上下文的核心价值:让 AI 在不丢失信息的前提下,一次性理解超大规模文档、代码库或多轮对话历史。


1. 为什么需要长上下文?—— 真实痛点

举个例子:你想让 AI 帮你分析一个 20 万行的代码仓库,或者总结一份 300 页的 PDF 合同。

方案 做法 问题
短上下文 + 分段 把文档切成小块,分批发给 AI 块与块之间丢失关联,AI 看不到全局结构
RAG 检索 只把相关的片段送给 AI 依赖检索精度,跨段落逻辑链容易断裂
长上下文直通 全文一次性输入 信息完整,但计算成本高、速度慢

当任务需要跨越多个信息点建立关联时(代码重构、长篇合同审查、论文综述),长上下文的优势无可替代。


2. 核心技术:从 8K 到 200 万 token 怎么做到的?

2.1 RoPE 位置编码与外推

Transformer 本身没有”顺序”概念,靠位置编码告诉模型每个 token 在第几位。

RoPE(旋转位置编码) 是目前主流方案,它将位置信息编码为向量旋转角度。但原始 RoPE 在训练长度之外会”失真”——类比钟表,时针转到 13 点又回到 1 点。

解决方法:位置插值(Position Interpolation)

将超出训练范围的位置”压缩”回已知区间。比如模型训练时最大见过 2048 的位置,要扩展到 8192,就把位置索引按比例缩小:

# 位置插值核心思路(伪代码)
scale_factor = target_length / train_length  # 8192 / 2048 = 4
for token_position in range(target_length):
    # 把位置坐标"压缩"回训练范围
    interpolated_pos = token_position / scale_factor
    embedding = rope_embed(interpolated_pos)

YaRN(Yet another RoPE extensioN)等方法在此基础上引入频率分区策略,高频维度少插值、低频维度多插值,大幅提升外推质量。

2.2 KV Cache 压缩:解决内存爆炸

长上下文的最大瓶颈不是计算量,而是显存。原因在于 KV Cache——推理时每生成一个 token,都要保存之前所有 token 的 Key 和 Value 矩阵。

以 Llama 3 70B 为例,100 万 token 的 KV Cache 需要约 512GB 显存。即使是 8 卡 H100 也扛不住。

主流压缩策略:

技术 原理 代表方案
KV 量化 将 KV 值从 FP16 压缩到 INT8 甚至 INT4 KIVI、KVQuant
窗口注意力 只保留最近的 token 的 KV,远的丢弃 StreamingLLM
选择性保留 根据注意力分数决定保留哪些 KV H2O、SnapKV
跨层共享 相邻层共享同一份 KV Cache CLA(DeepSeek-V3)

DeepSeek-V3 的多头潜在注意力(MLA) 是目前 SOTA 方案:将 Key 和 Value 压缩到极低维的潜在空间,推理时按需解压,KV Cache 减少 90% 以上——这也是它能以极低成本服务百万上下文的基础。

2.3 RingAttention:多卡分布式长上下文训练

单卡显存装不下长序列的训练怎么办?

RingAttention 的思路:把序列切成多段,分布到不同 GPU 上。每张卡计算自己那段的自注意力,同时通过环形通信把 KV 块传给下一张卡,形成”伪全局注意力”。

GPU 0: [Token 0-4095]  → KV 块  →  GPU 1
GPU 1: [Token 4096-8191] → KV 块 → GPU 2
GPU 2: [Token 8192-12287] → KV 块 → GPU 3
GPU 3: [Token 12288-16383] → KV 块 → GPU 0 (环形)

这样 N 张卡的等效上下文长度 = N × 单卡长度,Google 用此方案在 TPU v5p 上训练了 Gemini 的百万级上下文。


3. 2025-2026 主流模型上下文窗口对比

模型 最大上下文 技术亮点
Gemini 2.5 Pro 200 万 token RingAttention + TPU 分布式
Claude 4 Opus 200K token 原生长上下文训练
GPT-5 256K token 分层 KV 压缩
DeepSeek-V3 128K token MLA 注意力(KV 压缩 90%+)
Llama 4 Scout 10M token iRoPE 位置编码创新
Qwen3 256K token Dual Chunk Attention

4. 长上下文的实际应用场景

代码库级理解

# 典型用法:一次性分析整个仓库
# 用 Claude Code / Cursor 加载完整项目上下文
# AI 可以跨文件追踪调用链、重构建议、全局 bug 修复
prompt = """
请分析以下整个项目的代码结构和依赖关系:
[整个 src/ 目录的代码,约 150K token]
找出所有循环依赖,并给出重构方案。
"""

长文档处理

  • 合同审查:一份 200 页的并购协议,逐条分析风险点,不需要分段
  • 论文综述:50 篇论文摘要一次性输入,AI 自动归纳研究趋势、找出矛盾发现
  • 会议纪要:8 小时会议转录文本,一次性生成结构化纪要和待办事项

多轮对话记忆

长上下文让 AI 能记住数百轮对话历史而不遗忘。这对客服系统、AI 陪伴、代码协作等场景至关重要——用户不需要反复重复背景信息。


5. 局限与实战建议

不是越长越好:

  1. “中间丢失”现象:研究表明,模型对长文本开头和结尾关注度高、中间部分关注度低(Lost in the Middle)。关键信息尽量放在开头或结尾
  2. 成本问题:上下文越长,每次推理消耗的 token 越多,API 费用线性增长
  3. 延迟:100 万 token 的 prefill 可能需要几十秒

实战建议:

  • 能用 RAG 解决的简单查询,不必用长上下文(更省钱)
  • 需要全局关联的任务(代码重构、合同分析、多文档对比),长上下文是更优解
  • 把最重要的指令和参考信息放在上下文的开头或结尾
  • 利用模型的结构化输出能力(如 JSON mode),让 AI 在长文本中提取结构化信息

总结

要点 一句话
定义 模型单次能处理的 token 上限
核心突破 RoPE 外推 + KV Cache 压缩 + 分布式训练
代表模型 Gemini 2M、Llama 4 Scout 10M、DeepSeek-V3 128K
适用场景 代码库分析、长文档审查、多轮对话
注意事项 “中间丢失”效应、成本与延迟权衡

延伸阅读建议

  • 如果对 KV Cache 优化感兴趣,可阅读本站《什么是模型量化?把大模型变小的核心技术》
  • 如果想了解 RAG 与长上下文的互补关系,推荐《什么是 RAG?一文搞懂检索增强生成》
  • 论文推荐:Ring Attention with Blockwise Transformers for Near-Infinite Context(Hao Liu et al., 2023);YaRN: Efficient Context Window Extension of Large Language Models(Peng et al., 2023) (内容由AI生成,仅供参考)