站点标志Map the AI
  • 每日短课
  • AI 新闻
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图

长上下文为什么这么贵

注意力让每个 token 都和其他所有 token 两两比较,所以上下文翻倍,计算量就是四倍。它是所有上下文上限和价格分档背后的那道约束。

本页目录
  • 算一算
  • 平方项到底咬在哪里
  • 长上下文是怎么变得可用的
  • 精确解,但工程做得更好
  • 近似解:少看一些
  • 为什么实际质量跟不上标称的上限
  • 这对你意味着什么
  • 要点回顾
模型内部5 / 17

先读这些

  • 自注意力图解

对各级别的必要程度

各目标级别的推荐分
新手05 分中的 0 分
进阶35 分中的 3 分
专家55 分中的 5 分

主线上的下一篇

什么是上下文窗口?

主题

AI 如何工作

自注意力(self-attention)让每个 token 都和其他所有 token 两两比较。n 个 token 就是 n² 次比较。

这一个事实决定了上下文窗口的上限,塑造了 API 定价,也是当前架构研究中相当大一部分的驱动力。

算一算

序列长度翻倍,注意力的工作量就变成四倍。

token 数比较次数倍数
1000100 万1 倍
2000400 万4 倍
1 万1 亿100 倍
10 万100 亿1 万倍

输入长 100 倍,注意力的工作量不是多 100 倍,而是多 1 万倍。

这些分数不仅要算出来,还得存下来——每一层、每一个头都是一个 n×n 的矩阵。在长上下文下,光这个矩阵在内存里就把其他所有东西都压下去了,所以朴素的实现往往是内存先耗尽,而不是时间先不够用。

平方项到底咬在哪里

一个重要限定:注意力不是唯一的成本,在短序列下也不是主要成本。

前馈层随序列长度线性增长,而大部分参数(parameter)都在它们里面。几百个 token 时,前馈的线性工作量占主导,平方项可以忽略。

交叉点出现在几千个 token 的地方。过了这个点,注意力就反超,并且相对其他一切无上限地增长。所以「注意力是瓶颈」这句话,只在长上下文里成立,并不是对所有推理都成立。

这两个阶段受影响的程度也不一样。预填充(prefill)阶段会一次性处理整个 prompt,完整的 n² 成本立刻落下——这就是首 token 延迟随 prompt 长度急剧攀升的原因。解码阶段,每个新 token 只针对 n 个已缓存的位置做注意力,所以单 token 成本是线性增长的,而整次生成累计下来,又回到平方级。

长上下文是怎么变得可用的

两类解法,区别很关键。

精确解,但工程做得更好

FlashAttention 是最重要的一个。它算出的注意力(attention)在数学上完全一致,却从不把完整的 n×n 矩阵写进慢速内存。它改为分块处理,每块小到能放进快速的片上内存,分别算出部分 softmax 结果,再把它们合并起来。

计算量仍然是平方级的。但内存搬运——实践中真正卡住 GPU 吞吐量的东西——大幅下降了。这不是近似,输出是精确的。从千级 token 到十万级 token 上下文的这次跃升,很大一部分来自这一类优化,而不是任何架构上的改动。

近似解:少看一些

这些方法改变的是注意力到底算什么:

滑动窗口——每个 token 只看最近的 k 个位置。成本线性,但远处的信息只能通过层层叠加间接够到。

稀疏模式——只看一个固定的子集:附近的 token 加上几个全局锚点。

全局 token——少数几个位置,所有 token 都看它们,充当一个信息瓶颈,远处的上下文必须从这里过。

线性注意力——重新构造,彻底绕开两两比较的矩阵,用牺牲一些表达力换来线性成本。

一些生产环境里的模型把这几种混着用,全注意力层和窗口层交替出现,让大部分层保持廉价,同时又有一些层保住了全局视野。

为什么实际质量跟不上标称的上限

一个模型可能收得下 20 万 token,却用不好中间那一段。

两个互相独立的原因。近似的注意力机制是真的看不到所有地方。而就算用的是精确注意力,模型也必须学会使用远处的位置——极端距离上的位置编码在训练中可能很少见。容量是有的,练出来的本事未必有。

这解释了一个常见的挫败感:埋在上下文中间的信息被忽略。实用的应对办法是把最重要的材料放在 prompt 的开头或结尾附近,而不要指望注意力在一段极长的输入上均匀分配。

这对你意味着什么

prompt 长度是实打实的成本,不是四舍五入的零头。 用沾点边的上下文去填充 prompt,成本和质量的账都会变差。

检索比硬塞强。 用检索增强生成(RAG)挑出对的那 2000 个 token,通常比直接发 10 万个然后祈祷更管用,而且既更便宜又更准确。

长上下文定价不是随便定的。 厂商常常在超过某个长度阈值后加价,因为底层成本的形状确实在那里变了。

要点回顾

  • 注意力成本随序列长度的平方增长;长度变成 10 倍,注意力的工作量就是 100 倍。
  • 短序列下由前馈层主导——平方项要到几千个 token 才接管。
  • FlashAttention 通过减少内存搬运、且不做近似,让长上下文变得可用。
  • 滑动窗口和稀疏注意力用完整性换线性成本。
  • 收得下长上下文,不代表用得好;重要内容要放在两端。

下一篇: 语义的几何结构

本页目录

  • 算一算
  • 平方项到底咬在哪里
  • 长上下文是怎么变得可用的
  • 精确解,但工程做得更好
  • 近似解:少看一些
  • 为什么实际质量跟不上标称的上限
  • 这对你意味着什么
  • 要点回顾
站点标志Map the AI

AI 不断向前,学习有路可循。

地图
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图
公司
  • 关于我们
  • 联系我们
法律
  • Cookie 政策
  • 隐私政策
  • 服务条款
© 2026 Map the AI。由 NeatSeed LLC 运营。保留所有权利。