一句话定义:注意力的平方成本(Quadratic Attention Cost)指 Transformer 做自注意力(self-attention)时,计算量随序列长度(token 数)近似按平方增长——上下文长度翻倍,注意力部分的算力与显存开销大约翻四倍。
原理:注意力机制里,每个 token 都要和序列中其他 token 两两计算相关性,得到注意力分数。n 个 token 就有约 n×n 个分数。打个比方:一个会场里有 n 个人,规则是每个人都要和其他所有人握手一次。10 个人握 45 次,100 个人要握近 5000 次;人数翻 10 倍,握手次数翻约 100 倍。注意力里的 token 就是人,注意力分数就是握手。上下文从 4K 到 8K,注意力矩阵从约 1600 万格变成约 6700 万格;到 128K 时已是百亿级格子。每一步都要算这些分数、做 softmax、加权求和,训练时还要存中间结果,所以长上下文天然又慢又吃显存。
和相邻概念的区别:
| 概念 | 增长量级 | 主要解决 | 不解决 |
|---|---|---|---|
| AI 词典:上下文窗口">上下文窗口 | 容量 | 能装多少 token | 装进去后的算力开销 |
| KV Cache | 显存随长度线性增长 | 逐字生成时不重算全部历史 | 注意力两两比较的平方总量 |
| 平方成本 | n² | 描述长上下文的总开销 | 不能靠“多买卡”免费消除 |
上下文窗口是“能装多少”,平方成本是“装完要付多少”。KV Cache 用缓存换计算,把单步生成成本降下来,但缓存本身仍随上下文变长;线性注意力、稀疏注意力、滑动窗口、Mamba 等方案试图把 n² 降到 n 或 n log n,但通常要在效果和实现复杂度上做取舍,具体以模型官方说明为准。
实际意义:对从业者,长上下文不是免费的。训练长文本模型、做长文档问答、把大量检索结果塞进提示词时,要先算清“长度翻倍≈成本四倍”。工程上常用分块、检索增强、摘要压缩、滑动窗口、流式处理,而不是无脑全量塞入。对普通人,这解释了为什么长对话会变慢、变贵,为什么产品要限制输入长度、定期总结历史。下次想把整本书丢给模型时,先问一句:真的需要全部注意力吗?还是只需要找到相关的那几段?
