长上下文

长上下文

一次读整本书

长上下文(Long Context)指大语言模型在单次推理中能处理的超长 token 序列,当前主流范围为 100K 至 1M token。它让模型「一次读整本书」成为可能,同时也带来推理效率与信息利用率的新挑战。

概述

长上下文的核心是扩大模型在生成回复时能「看到」的信息范围,涵盖系统提示、对话历史和输入文档。

  • 上下文窗口(context window)最初受位置编码和注意力计算成本限制,GPT-3 仅支持 2K token,GPT-4 Turbo 扩展到 128K。
  • 突破意义:超长窗口让整份合同审查、完整代码库理解、整本书阅读等场景无需手动分块。
  • 不只是「变大」:背后需要位置编码、注意力算法、KV 缓存管理、推理框架多层协同优化。
  • 信息密度问题:窗口大不等于理解深,「迷失在中间」现象表明模型对上下文中部信息的利用率普遍偏低。

工作原理

支撑长上下文的关键技术分布在位置编码、注意力计算和缓存管理三个层次。

  • RoPE(旋转位置编码):由苏剑林(Jianlin Su)2021 年提出,对 Query/Key 向量施加旋转变换编码相对位置,对长度外推比绝对位置编码更友好,LLaMA 系列广泛采用;YaRN、LongRoPE 等在此基础上进一步扩展训练外长度。
  • FlashAttention:重新排列 GPU 内存访问顺序,将注意力计算的显存开销大幅降低,是长上下文工程落地的重要基础。
  • Ring Attention:Hao Liu 等人(UC Berkeley,2023)提出,将超长序列切分到多台设备并行处理,通信与计算重叠,突破单卡显存瓶颈,支持近乎无限的 token 训练。
  • KV 缓存(KV Cache):存储每层注意力的键值对以避免重复计算;极长上下文下 KV 缓存显存占用巨大,需配合 PagedAttention 或 KV 压缩技术管理。

类型与变体

业界按支持长度和技术路径对长上下文方案分类。

  • 按长度分级:32K 以下为常规窗口;32K–128K 为长上下文;128K 以上为超长/百万级上下文。
  • 原生长上下文:预训练或继续训练阶段直接喂入长序列,效果最稳定,代表模型有 Claude 3/3.5 系列(200K)、Gemini 1.5 系列(1M)。
  • 推理时外推(context extrapolation):通过位置编码缩放或插值让模型处理超出训练长度的输入,成本低但稳定性不如原生支持。
  • 滑动窗口注意力(Sliding Window Attention):每个 token 只关注局部窗口,适合对全局依赖要求不高的场景,Mistral 7B 早期版本采用此方案。

应用场景

长上下文直接拓宽了 LLM 能处理的任务边界。

  • 长文档理解:法律合同审查、财报分析、学术论文阅读,无需人工分块合并。
  • 代码库理解:超长窗口让模型同时感知跨文件结构与依赖关系,改善重构和 bug 定位能力。
  • 完整对话历史:多轮对话记录被完整保留,减少因截断导致的信息丢失和逻辑断档。
  • 替代部分 RAG 场景:文档集合固定且规模适中时,直接塞入长上下文可减少检索管道复杂度。
  • 多模态长序列:视频帧序列、长音频转录等场景同样受益于超长上下文能力。

与相邻概念的区别

长上下文与几个常见概念关系紧密,但各有侧重。

  • 长上下文 vs RAG:RAG 通过检索筛选最相关片段,信息密度高、成本低;长上下文塞入全量文档,信息完整但可能引入噪声、成本更高;两者并非非此即彼,可结合使用。
  • 长上下文 vs 记忆(Memory):Memory 模块跨对话会话持久保存信息;长上下文仅在单次推理的窗口内有效,会话结束后不保留。
  • 上下文窗口 vs 长上下文:上下文窗口是技术指标(token 数量上限);长上下文是对「窗口足够大」这一能力的描述,两者有时混用。
  • KV 缓存 vs 长上下文:KV 缓存是实现长上下文高效推理的底层机制,理解它有助于评估不同长度配置下的实际性能。

局限与误区

长上下文并非万能,使用时需警惕若干常见误区。

  • 「塞满即理解」误区:研究(Lost in the Middle,2023)表明 LLM 对上下文中部信息的注意力显著弱于头部和尾部,大量内容可能被模型忽视。
  • 成本与延迟:推理延迟和显存消耗随上下文长度超线性增长,百万级 token 的单次推理成本在生产环境中不可忽视。
  • 噪声放大:将无关文档与关键信息混入同一上下文,可能干扰模型定位正确答案,反而降低准确率。
  • 外推不稳定:通过位置编码插值实现的长度外推,在超出训练长度较多时容易出现困惑度上升或幻觉增加。

发展脉络

长上下文能力的扩展与注意力效率技术的进步密切相关。

  • 2017:Transformer 提出,标准自注意力 O(n²) 复杂度成为长序列瓶颈。
  • 2020:GPT-3 支持 2K token;Longformer 等稀疏注意力模型尝试突破长度限制。
  • 2021:苏剑林提出 RoPE 旋转位置编码(arXiv:2104.09864),为后续上下文扩展奠定基础。
  • 2022:FlashAttention v1 发布,大幅降低长序列注意力计算的显存开销。
  • 2023:Anthropic 发布 Claude(100K token)引发广泛关注;Ring Attention(Liu et al., arXiv:2310.01889)于 NeurIPS 2023 发表,实现多设备近乎无限上下文训练;YaRN 等低成本外推方案涌现。
  • 2024:Google Gemini 1.5 Pro 宣布支持 1M token;Claude 3 系列支持 200K;LongRoPE 将上下文扩展至 200 万 token。
  • 当前:如何高效利用超长上下文(检索注意力、稀疏激活、上下文压缩)是活跃研究方向。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「一次读整本书」
  • 「大模型圈高频词」
  • 「跟 长上下文 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    LLM 上下文窗口扩展:RoPE、ALiBi 与长文本建模技术

    大语言模型的上下文窗口大小决定了它能处理多长的输入和生成多长的输出。本文系统讲解上下文窗口扩展的核心技术——旋转位置编码 RoPE、注意力线性偏置 ALiBi、NTK 插值、YaRN 外推等方案,从原理到实战,帮助读者深入理解如何让模型突破训练时的长度限制,实现长文本的可靠建模。

  2. 2

    RAG 检索增强生成架构指南

    如何结合外部知识库增强 LLM 的准确性和时效性