短期记忆 (Short-Term Memory) · AI推理架构核心概念
3 秒看懂
一句话: 大模型的”短期记忆”就是上下文窗口——它一次能”看到”多少 token,直接决定对话质量、推理成本和部署门槛。
关键词: Context Window / KV Cache / 注意力内存
3 分钟产业解释
这是什么?
在 Transformer 架构的 LLM 中,“短期记忆”并非生物学概念的直接映射,而是指模型在单次推理过程中能处理的 token 序列长度,即 Context Window(上下文窗口)。每次生成 token 时,模型需要”回顾”此前所有 token 的信息,这部分信息以 KV Cache(键值缓存) 的形式驻留在 GPU 显存中。
为什么是产业核心变量?
| 维度 | 影响路径 |
|---|---|
| 用户体验 | 上下文越长,多轮对话越连贯、长文档理解越完整 |
| 推理成本 | KV Cache 大小与序列长度线性相关,长上下文 = 高显存 = 高单价 |
| 部署门槛 | 128K 级上下文对单卡显存压力巨大,倒逼分布式推理或量化压缩 |
| 产品差异化 | 主流厂商的上下文长度已成为营销核心指标 |
产业现状(定性)
- 主流商用模型上下文已从早期的 4K 级向 128K–1M 级演进
- 开源模型跟进,但受显存和训练成本约束,实际可用长度常打折扣
- “支持 1M 上下文”≠“1M 上下文下质量不衰减”——长距离信息检索(Needle-in-a-Haystack)测试暴露显著衰减
15 分钟专家深入
核心矛盾:记忆容量 vs. 计算成本
标准 Transformer 的自注意力机制计算复杂度为 O(n²),其中 n 为序列长度。这意味着:
- 序列长度翻倍 → 计算量约 4 倍
- KV Cache 显存占用与序列长度 线性增长(O(n)),但注意力计算本身是二次方
KV Cache 是什么?
在自回归生成过程中,每生成一个新 token,需要计算该 token 与所有历史 token 的注意力分数。为避免重复计算,历史 token 的 Key 和 Value 向量被缓存下来,这就是 KV Cache。
KV Cache 大小(粗略估算公式):
≈ 2 × 层数 × 头数 × 头维度 × 序列长度 × 精度字节数
示例:某 70B 级模型(假设约 80 层、64 头、128 维、FP16)
- 1K tokens: ~2 GB 量级
- 128K tokens: ~335 GB 量级
*具体数值因模型架构而异,上述为数量级估算*
长上下文的关键技术栈
| 技术层级 | 代表方案 | 核心思路 |
|---|---|---|
| 位置编码 | RoPE(旋转位置编码)、ALiBi | 让模型外推至训练时未见的长度 |
| 注意力变体 | FlashAttention、Ring Attention、PagedAttention | 优化显存访问模式,降低峰值内存 |
| 稀疏注意力 | Sliding Window、Longformer 思路 | 只关注局部+少量全局 token,降复杂度 |
| 压缩/卸载 | KV Cache 量化、CPU/磁盘 offload | 牺牲延迟换容量 |
| 架构替代 | Mamba(SSM)、RWKV、RetNet | 用线性复杂度替代二次方注意力 |
RoPE 长度外推
RoPE(Rotary Position Embedding)通过旋转矩阵编码相对位置。原始训练长度外推时性能急剧衰减,后续出现多种改进:
- NTK-aware Scaling:调整旋转基频
- YaRN:结合 NTK 和注意力缩放
- Dynamic NTK:推理时根据实际长度动态调整
这些方法使得模型在远超训练长度时仍能保持一定性能,但质量衰减不可避免,通常在 2–4 倍外推范围内表现尚可。
PagedAttention 与 vLLM
PagedAttention 将 KV Cache 分页管理,类似操作系统虚拟内存:
- 解决显存碎片化问题
- 提升 GPU 显存利用率(从传统方案的 ~50% 提升至接近 90%+,为行业共识估算)
- vLLM 项目是该技术的开源代表,已广泛用于推理服务
技术原理
自回归生成中的 KV Cache 机制
时间步 t 生成 token x_t:
1. 计算 x_t 的 Q_t, K_t, V_t
2. 将 K_t, V_t 追加到 Cache
3. 计算注意力: Attn(Q_t, [K_1..K_t]) → 加权求和 V
4. 输出 → 预测 x_{t+1}
┌─────────────────────────────────────────────┐
│ KV Cache 内存布局 │
│ │
│ Layer 0: [K_0, K_1, ..., K_t] [V_0, ..., V_t]│
│ Layer 1: [K_0, K_1, ..., K_t] [V_0, ..., V_t]│
│ ... │
│ Layer L: [K_0, K_1, ..., K_t] [V_0, ..., V_t]│
│ │
│ 每层每 token 占用 = 2 × d_model × dtype_bytes│
└─────────────────────────────────────────────┘
注意力复杂度对比
标准注意力: O(n² · d) 计算 + O(n · d) 内存(KV Cache)
FlashAttention: O(n² · d) 计算 + O(n) 额外内存(tiling)
线性注意力/SSM: O(n · d²) 计算 + O(d) 固定状态
Sliding Window: O(w · n · d) 计算 + O(w · d) 内存(w为窗口)
n = 序列长度, d = 模型维度, w = 窗口大小
显存瓶颈图示
GPU 显存分配(长上下文推理场景,示意):
┌──────────────────────────────────┐
│ 模型权重(固定) │ ~50-60%(短上下文时)
│ KV Cache(随序列增长) │ ████████████ 快速膨胀
│ 激活值 / 工作区 │ ██
│ 系统开销 │ █
└──────────────────────────────────┘
当上下文很长时,KV Cache 可能占 70%+ 显存
→ 挤占本可用于批处理(batch size)的空间
→ 吞吐量急剧下降
技术演进史
| 时期 | 代表 | 上下文长度 | 关键技术 |
|---|---|---|---|
| 2017–2019 | GPT-1, BERT | 512–1024 | 标准 Transformer,无 KV Cache 概念普及 |
| 2020 | GPT-3 | ~2048–4096 | 大规模训练确立上下文基准 |
| 2022 | ChatGPT (GPT-3.5) | ~4K (公开) | 产品化,上下文长度成为用户体验瓶颈 |
| 2023 Q1 | GPT-4 | 8K / 32K (公开) | 长上下文开始商业化 |
| 2023 H2 | Claude 2.1, GPT-4 Turbo | 100K–200K (公开) | RoPE 外推、FlashAttention-2 普及 |
| 2024 H1 | Claude 3, Gemini 1.5 Pro | 宣称 200K–1M+ | 超长上下文成为竞赛焦点 |
| 2024 H2 | 多家跟进 | 128K–1M+ | SSM/混合架构、KV Cache 压缩成为热点 |
注:以上公开数字来自各厂商当时的产品公告,实际可用长度与宣传可能存在差距。
技术路线对比
长上下文实现路线
| 路线 | 复杂度 | 外推能力 | 质量保持 | 工程成熟度 | 代表方案 |
|---|---|---|---|---|---|
| RoPE 外推 | O(n²) | 中(2–4x) | 中 | 高 | LLaMA 系列、多数开源模型 |
| FlashAttention | O(n²) | 不改变 | 高 | 高 | FlashAttention-2/3 |
| Sliding Window | O(w·n) | 好 | 局部高/全局低 | 高 | Mistral 系列 |
| PagedAttention | O(n²) | 不改变 | 高 | 高 | vLLM |
| SSM / Mamba | O(n) | 好 | 任务依赖 | 中 | Mamba、Jamba(混合) |
| Ring Attention | O(n²) | 分布式 | 高 | 中 | 长序列分布式训练/推理 |
KV Cache 压缩技术
| 方法 | 压缩比 | 精度损失 | 适用场景 |
|---|---|---|---|
| FP16→INT8 量化 | ~2x | 低 | 通用推理 |
| FP16→INT4 量化 | ~4x | 中 | 显存极度受限 |
| Token 剪枝/驱逐 | 任务依赖 | 中-高 | 流式对话、检索增强 |
| GQA/MQA | 2–8x | 低 | 架构层面减少 KV 头数 |
| 共享 KV (SharedPrefix) | 取决于前缀重用 | 无 | RAG、系统提示复用 |
注:压缩比和精度损失为行业共识估算范围,具体效果因模型和任务而异。
上下游
上游(制约短期记忆的基础设施层):
├── GPU 显存容量(HBM 代际/容量)
├── 显存带宽(决定 KV Cache 读取延迟)
├── 互连带宽(多卡推理时 KV 传输瓶颈)
└── 推理框架(vLLM、TensorRT-LLM、SGLang 等)
中游(短期记忆的技术实现层):
├── 模型架构设计(GQA/MQA、位置编码选择)
├── 注意力优化(FlashAttention 等)
├── KV Cache 管理策略
└── 调度与批处理策略
下游(短期记忆的产品体现层):
├── 对话产品(上下文长度 → 对话轮次/记忆持久性)
├── 文档理解(单次可处理文档长度)
├── 代码生成(上下文越大,可参考代码越多)
└── Agent/工具调用(长规划链对上下文的消耗)
关键指标
| 指标 | 定义 | 产业重要性 |
|---|---|---|
| Context Window | 模型单次输入的最大 token 数 | 产品核心卖点 |
| Effective Context | 实际能有效利用的上下文长度(通常 < Window) | 衡量真实能力 |
| KV Cache 单 token 占用 | 每 token 每层的 Key+Value 显存占用 | 决定长上下文的硬件门槛 |
| 首 Token 延迟 (TTFT) | Prefill 阶段处理完整输入的时间 | 长上下文时 TTFT 显著增加 |
| 解码吞吐 (Tokens/s) | 生成阶段每秒输出 token 数 | KV Cache 压力越大,吞吐越低 |
| Needle-in-a-Haystack 得分 | 长文本中检索特定信息的准确率 | 衡量有效上下文质量 |
供需与市场数据
定性供需分析
需求侧驱动:
- 企业级 RAG 场景需要处理长文档(合同、财报、代码库)
- 多轮对话的用户体验要求持久记忆
- Agent 框架的规划链消耗大量上下文
供给侧约束:
- 高端 GPU 显存容量有物理上限
- 超长上下文推理的算力成本随序列长度二次方增长
- 推理服务的每 token 成本中,长上下文场景的 prefill 成本占比显著上升
成本结构示意(估算):
推理成本构成(长上下文场景,定性):
Prefill 阶段(处理输入):
├── 计算密集(O(n²)注意力)
├── 耗时随输入长度急剧增加
└── 占总成本比例:长上下文时可达 60-80%(估算)
Decode 阶段(生成输出):
├── 内存密集(逐 token 读取全部 KV Cache)
├── 吞吐受限于显存带宽
└── 占总成本比例:相对固定
→ 这就是为什么"输入贵、输出便宜"的定价模式在长上下文产品中常见
注:上述比例为基于架构原理的估算,无公开财务数据支撑。
代表公司与资本映射
模型/产品层
| 公司 | 上下文长度(公开宣称) | 技术特色 |
|---|---|---|
| OpenAI | GPT-4 Turbo: 128K(公开) | 产品化标杆 |
| Anthropic | Claude 3 系列: 最高宣称 200K(公开) | 长上下文质量口碑较好 |
| Gemini 1.5 Pro: 宣称最高 1M+(公开) | 超长上下文营销 | |
| Meta | LLaMA 系列: 原生 8K,社区外推扩展 | 开源生态带动 RoPE 外推研究 |
| Mistral | Mistral Large: 128K(公开) | Sliding Window Attention |
基础设施层
| 公司/项目 | 定位 | 关联逻辑 |
|---|---|---|
| vLLM(UC Berkeley) | 推理引擎 | PagedAttention 开源实现,长上下文效率优化 |
| Anyscale | 推理平台 | 提供 vLLM 推理服务的平台 |
| Together AI | 推理服务 | 长上下文推理 API 服务 |
| Cerebras | AI 芯片 | 晶圆级芯片的片上 SRAM 可能缓解 HBM 瓶颈 |
| Groq | AI 芯片 | LPU 架构强调确定性延迟,但长上下文适配性待验证 |
注:上述为公开信息整理,不构成投资建议。
投资逻辑
核心命题
短期记忆(上下文窗口)是 LLM 产品化的”体验天花板”和”成本放大器”。
三条投资线索
| 线索 | 逻辑 | 风险 |
|---|---|---|
| HBM/显存扩容 | 长上下文 = 更大 KV Cache = 更多显存需求 → 利好 HBM 供应商 | 周期性、产能过剩风险 |
| 推理优化软件 | PagedAttention、KV Cache 压缩等降低长上下文推理成本 → 利好推理框架/服务商 | 技术迭代快,护城河存疑 |
| 架构范式转移 | SSM/混合架构可能从根本上改变长上下文的成本曲线 → 关注 Mamba 等新架构 | 学术到工程的跨越期,商业化不确定性高 |
关键观察点
- 各厂商”宣称的上下文长度”vs”有效上下文质量”的差距何时收敛
- 推理成本随上下文长度的增长曲线是否能从二次方压到线性
- HBM 每 GB 成本的下降速度是否能匹配长上下文的需求增速
常见误读纠偏
误读 1:“支持 1M 上下文 = 1M 内全距离等质量”
纠偏: 实测(如 Needle-in-a-Haystack 测试)普遍显示,模型在上下文窗口的中间段存在”注意力盲区”,对中间位置信息的检索准确率显著低于首尾。这是注意力机制的已知特性(Lost in the Middle 现象),并非所有厂商都公开披露此衰减程度。宣称的窗口长度是上限,不是质量保证。
误读 2:“KV Cache 大小只和模型参数量有关”
纠偏: KV Cache 大小主要取决于 层数 × KV 头数 × 头维度 × 序列长度 × 精度。关键误解在于忽视了 GQA/MQA 等架构设计 会大幅减少 KV 头数(例如 LLaMA 2 70B 使用 GQA,KV 头数远少于 Q 头数),以及序列长度才是长上下文场景的决定性变量。同参数量模型的 KV Cache 可能差异数倍。
误读 3:“线性注意力/SSM 可以完全替代标准注意力”
纠偏: SSM(如 Mamba)的固定大小状态意味着它无法像标准注意力那样”精确回忆”任意历史 token。在需要精确检索的任务(如引用特定句子)上,纯 SSM 架构可能不如标准注意力。当前趋势是混合架构(如 Jamba: Mamba + 少量标准注意力层),取两者之长。声称”SSM 完全取代注意力”过于绝对。
误读 4:“上下文越长越好”
纠偏: 超长上下文带来:
- 显著增加的推理成本(尤其 prefill 阶段)
- 注意力稀释——过多上下文可能引入噪声
- 产品设计挑战——如何让用户有效利用长上下文
实际上,多数场景下 32K–128K 已能满足需求,1M+ 更多是技术展示而非普遍需求。
学习路径
入门:
├── [必读] Vaswani et al., "Attention Is All You Need" (2017) — 理解自注意力基础
├── [必读] Hugging Face 博客: "KV Cache Explained" — 直观图解
└── [动手] 使用 vLLM 部署一个长上下文模型,观察显存随输入长度变化
进阶:
├── [论文] Dao et al., "FlashAttention" (2022) — 理解 IO-aware 注意力优化
├── [论文] Su et al., "RoFormer: Enhanced Transformer with Rotary Position Embedding" (2021)
├── [论文] Kwon et al., "Efficient Memory Management for Large Language Model Serving with PagedAttention" (2023) — vLLM 核心论文
└── [实践] 对比同一模型在 4K/32K/128K 输入下的延迟和显存占用
前沿:
├── [论文] Gu & Dao, "Mamba: Linear-Time Sequence Modeling with Selective State Spaces" (2023)
├── [论文] Liu et al., "Ring Attention with Blockwise Transformers for Near-Infinite Context" (2023)
├── [论文] 微软 "LongRoPE" 等长度外推工作
└── [关注] 各厂商技术博客关于长上下文质量评估的披露
一句话总结
短期记忆(上下文窗口)是 Transformer LLM 的”工作记忆”,其长度由 KV Cache 的显存占用决定,是模型能力、推理成本和产品体验的核心交汇点——长上下文的竞争本质是显存效率与注意力机制的双重优化竞赛。
延伸阅读与来源
| 来源 | 内容 | 链接/说明 |
|---|---|---|
| Vaswani et al. (2017) | 自注意力机制原始论文 | arXiv:1706.03762 |
| Dao et al. (2022) | FlashAttention | arXiv:2205.14135 |
| Kwon et al. (2023) | PagedAttention / vLLM | arXiv:2309.06180 |
| Su et al. (2021) | RoPE 位置编码 | arXiv:2104.09864 |
| Gu & Dao (2023) | Mamba (SSM) | arXiv:2312.00752 |
| Anthropic 技术博客 | Claude 上下文质量讨论 | anthropic.com/research |
| Hugging Face 文档 | KV Cache 技术详解 | huggingface.co/docs |
| vLLM 官方文档 | PagedAttention 实现细节 | docs.vllm.ai |
| NVIDIA 技术博客 | TensorRT-LLM 中的 KV Cache 优化 | developer.nvidia.com |
数据/规格声明: 本页未引用搜索结果(检索失败),所有技术规格均为基于公开论文和行业共识的定性表述或数量级估算。具体模型的上下文长度以各厂商最新官方文档为准。
撰写日期:2025年 · 本页内容仅供学习参考,不构成投资建议