这一系列从张量和实际计算开始。每一讲都先固定一个具体配置,写清输入与权重的形状,再推导中间结果,最后分别走一遍 Prefill 和 Decode。遇到缓存优化,要同时算驻留容量、每步读取量和额外计算;遇到 NPU 映射,要看矩阵的 M/N/K、片上复用和数据搬运。

当前先完成基础部分与 MLA。后面的内容按下面的路线逐篇展开。

已完成的讲解

  1. MHA、MQA、GQA 从头推导——从单头 Attention 开始,解释为什么多头、怎样共享 K/V,以及共享后为什么仍需逐 Q head 计算。
  2. MLA 从低秩缓存到矩阵吸收——沿输入投影、K/V 重建、K 吸收、V 吸收、解耦 RoPE 逐步推导,再展开 Prefill/Decode 的 GEMM 形状。

Attention 的六条路线

路线 学习顺序 要推清楚的问题 当前进度
1. KV 表示与共享 MHA → MQA → GQA → MLA → YOCO head 之间与层之间分别共享什么,线性变换怎样重排,缓存中最终保存什么 MHA、MQA、GQA、MLA 已写;YOCO 待写
2. 稀疏 Attention Sliding Window → Block Sparse → Top-K Sparse → NSA → DSA 谁产生索引、谁做选择、怎样 Gather、最终跳过了哪些 QK/PV 待写
3. 线性 Attention Linear Transformer → RetNet → Lightning Attention 全序列求和怎样变成递推,状态多大,分块并行怎样连接前后状态 待写
4. 混合 Attention Full、Sparse、Linear 的层间与分支组合 哪些层保存历史页,哪些层保存固定状态,质量与计算如何取舍 待写
5. 高效精确内核 Online Softmax → FlashAttention → FA2 → FA3 → FA4 分块怎样保持归一化,矩阵运算、指数、归约与搬运如何重叠 待写
6. 长上下文与流式 PagedAttention → StreamingLLM → Ring Attention 逻辑位置、物理页、可见历史和设备分片分别怎样组织 待写

KV Cache 的七条路线

路线 代表工作或机制 要推清楚的问题 当前进度
1. 架构压缩 MQA、GQA、MLA 每 token、每层保存多少元素,TP 分片或复制后单设备占多少 基础已包含在前两讲
2. 量化 KIVI、KVQuant、FP8/FP4 KV 量化轴如何选择,scale 和残余区占多少,误差如何影响分数和输出 待写
3. 淘汰与选择 H₂O、StreamingLLM、SnapKV、PyramidKV 如何决定保留位置,何时更新,怎样把逻辑淘汰转成物理页回收 待写
4. 共享与复用 YOCO、Prefix Caching、跨请求共享 缓存身份、共享粒度、引用计数和写时复制怎样工作 待写
5. 内存管理 PagedAttention、vAttention、FlashInfer 虚拟与物理地址怎么对应,页大小如何影响碎片和访问效率 待写
6. 分层存储与卸载 SRAM、HBM、DDR、CXL、SSD 什么数据应当驻留,何时预取,读回和重算的临界点在哪里 待写
7. 分布式管理 P/D 分离、KV 传输、分布式缓存池 每层何时可传、接收端怎样重映射、流水和副本如何影响时延与容量 待写

同一个工作可能在两条路线中出现。读 MQA/GQA 时先推它的计算;再讨论缓存系统时,使用这些形状去推容量、布局和分片。每次都以本讲需要解决的问题为主。

后续顺序

先接着 MLA 讲 YOCO,把 head 共享、latent 共享和层间共享串起来。之后沿稀疏路线讲滑窗、块稀疏、NSA 和 DSA,再进入线性与混合 Attention。精确内核、长上下文以及缓存系统部分会分别成篇。

每篇的符号在开头重新定义。演示配置和真实模型配置分开列出,理论带宽与 FLOPs 用于解释瓶颈,具体芯片的性能结论需由实测支持。


本站由 Zane Jiang 使用 Stellar 1.33.1 主题创建,一款很棒的 Hexo 主题!

总访问 次 || 本页访问 次
总访客 人 || 本页访客 人