音乐
暂未播放
答疑特辑:秩与 SVD、RoPE 旋转矩阵、投机解码原理与 AI 芯片全景

引言:这篇文章回答什么#
这是针对本站三篇文章《MLA 完全拆解》《DSpark:半自回归生成与置信度调度的投机解码》《TPU v1 完全拆解(一)》的读者问题汇总答疑。问题按来源分三组,共 16 个:
| 来源文章 | 问题 |
|---|---|
| MLA 完全拆解 | ①什么是秩 ②什么是 SVD 截断 ③什么是正则化 ④DeepSeek-V2 Table 7 的基准分别是什么 ⑤分块对角矩阵是什么、为什么 RoPE 两个矩阵相乘得到 Rs−t ⑥qT(Wc)=(WTq)Tc 是什么性质 |
| DSpark(含 DFlash) | ⑦草稿 token 怎么被验证、什么情况接受、为什么验证能并行、草稿模型为什么更快 ⑧DFlash 是什么、为什么能一次生成 7 个 token ⑨推导加速比公式 |
| TPU v1 完全拆解 | ⑩TPU 不是只做推理吗?训练怎么办?Gemmini 是在 TPU 上训练和推理吗 ⑪目前所有 AI 芯片(GPU/TPU/NPU……)的全景对比 |
第一组问题集中在线性代数,是理解 MLA 低秩压缩的数学地基;第二组问题集中在投机解码的机制,回答”为什么敢并行”;第三组问题集中在芯片架构与产业全景。每个问题都从直觉讲起,再给严格推导。
第一部分:MLA 的数学基础(对应《MLA 完全拆解》)#
Q1:什么是秩(rank)?#
秩是线性代数里最核心的概念之一,它回答的问题是:一个矩阵作为一个线性变换,输出的空间是几维的?
严格定义:矩阵 A∈Rm×n 的秩,等于 A 中线性无关的列的最大数目,也等于线性无关的行的最大数目,记作 rank(A)。行秩等于列秩,这是线性代数里最重要的定理之一(秩定理)。
用几何语言说:A 把一个 n 维向量 x 映射到 m 维空间里的 Ax。当 x 遍历整个 n 维空间时,Ax 只会落在一个 r 维的子空间里,这个 r 就是秩。举几个例子:
- 单位矩阵 In 的秩是 n:它把整个空间原样映射出去,什么都不丢;
- 一个 2×2 的矩阵 (1224) 秩是 1:因为第二列是第一列的 2 倍,两列共线,映射后的点全部落在一条直线上——平面被”压扁”成了一维;
- 全零矩阵的秩是 0:所有向量都被映射到原点。
一个重要的特例是秩 1 矩阵:任何秩 1 矩阵都可以写成两个向量的外积
A=uvT,Aij=uivj其中 u∈Rm、v∈Rn。这组记号后面会反复出现——下投影 + 上投影的结构本质上就是一系列秩 1 项的叠加。
秩为什么和深度学习有关系?因为现实中的数据矩阵(词向量、隐藏状态、KV 矩阵)的秩通常远小于其维度——信息集中在少数几个方向上。如果一个 n×n 矩阵的秩只有 r≪n,那么它虽然看起来有 n2 个元素,实际只需要 r(n+m−r) 个参数就能完全描述(秩 r 矩阵可以分解成 Um×rVr×nT)。参数数量和秩成正比,而不是和维度平方成正比——这就是”低秩”能省钱的数学根源,也是 MLA 压缩 KV Cache 的根据。
Q2:什么是 SVD 截断?#
SVD(Singular Value Decomposition,奇异值分解)是把”矩阵的秩”这个抽象概念变成可计算、可操作的工具。
SVD 的分解式:任意矩阵 A∈Rm×n 都可以分解成三个矩阵的乘积
A=UΣVT其中:
- U∈Rm×m、V∈Rn×n 都是正交矩阵(UTU=I,VTV=I),它们的列分别称为左奇异向量、右奇异向量;
- Σ∈Rm×n 是对角矩阵,对角线上是从大到小排列的非负实数 σ1≥σ2≥⋯≥σmin(m,n)≥0,称为奇异值。
SVD 的几何意义极其直观,可以概括为三步:先旋转,再拉伸,再旋转。VT 是一个旋转(正交变换不改变长度和角度),Σ 沿各个坐标轴拉伸(σi 就是第 i 个方向被拉伸的倍数),U 再转一次。奇异值为 0 的方向被彻底压扁——非零奇异值的个数恰好等于秩。所以 SVD 是”看一个矩阵有多接近低秩”的天然工具:σk+1,σk+2,… 这些小奇异值对应的方向,就是矩阵”几乎不用的方向”。
截断(truncation) 就是:只保留前 k 个最大的奇异值,把其余全部置零。记 Σk 为只保留前 k 个奇异值的对角矩阵,则
Ak=UkΣkVkT其中 Uk、Vk 分别只取前 k 列。Ak 是一个秩至多 k 的矩阵。为什么说截断是”最优”的?Eckart–Young 定理(1936 年)给出了严格保证:在所有秩不超过 k 的矩阵中,Ak 是 A 的最佳近似,近似误差正好等于被丢弃的奇异值:
rank(B)≤kmin∥A−B∥2=σk+1,rank(B)≤kmin∥A−B∥F=σk+12+⋯+σmin(m,n)2其中 ∥⋅∥2 是谱范数,∥⋅∥F 是 Frobenius 范数(所有元素平方和开根号)。也就是说:截断丢掉的信息量是可控的,等于被砍掉的奇异值的大小。如果 σk+1 比 σ1 小几个数量级,丢掉它几乎无感。
这和 MLA 有什么关系?看《MLA 完全拆解》里那张四机制对比图:

MHA/GQA/MQA 靠”让多个头共享同一份 K/V”省缓存,MLA 靠”把 K/V 压进低维潜向量”省缓存。MLA 的压缩矩阵在训练中学习,其数学本质是数据自适应的低秩近似。(来源:DeepSeek-V2 论文 Figure 3)
MLA 的下投影 WDKV∈Rdc×d 和上投影 WUK∈Rnhdh×dc 的复合 WUKWDKV,就是对完整 K/V 投影矩阵的低秩分解:潜变量维度 dc=512 就是”截断点”。SVD 截断是”按奇异值大小硬切”,MLA 是”让神经网络用梯度下降自己找该保留的方向”——两者殊途同归:都在找一个 k 维子空间,把信息损失压到最小。区别在于 SVD 是最优的闭式解(对固定矩阵),MLA 是端到端学习的近似解(对数据分布整体)。这也解释了论文消融里为什么 MLA 压缩 57 倍后能力不降反升:K/V 的有效信息本来就集中在远低于 16,384 维的低维子空间里。
Q3:什么是正则化?#
正则化(regularization)是机器学习里一类防止过拟合的技术的总称。它的通用思想是:在”把训练数据拟合好”和”保持模型简单”之间加一个约束或惩罚,让模型不要记住训练集里的噪声,而是学到背后的规律。
最常见的几种形式:
- L2 正则化(权重衰减):在损失函数里加 λ∥w∥22,惩罚权重过大。直观理解:权重小意味着输出对输入的变化不敏感,模型更”平滑”;
- L1 正则化:加 λ∥w∥1,因为 ∥⋅∥1 在原点不可导,会把很多权重精确压到 0,产生稀疏解;
- Dropout:训练时随机丢弃一部分神经元,强迫网络不依赖任何单个神经元;
- 早停(early stopping):验证集指标不再变好就停止训练;
- 数据增强、标签平滑、EMA 等:都是隐式的正则化手段。
比形式更重要的是理解正则化的作用机制:它缩小了模型的假设空间。不加正则化时,模型可以在所有可能的参数里找最优;加了约束,模型只能在”简单的那部分参数”里找。假设空间变小 → 方差变小 → 测试集上更稳,代价是可能欠拟合。
回到 MLA 的问题:为什么《MLA 完全拆解》说”低秩压缩本身带有正则化效果”?因为低秩约束和 L2/L1 一样,都是在限制参数的搜索空间。MHA 的 K/V 投影有 16,384 维自由度,MLA 把它压到 512 维潜变量——模型被迫只在这个低维子空间里表达 K/V 信息,那些”靠高维细节硬记训练集”的路径被直接堵死了。这就是为什么论文的消融实验(Table 7)里,大模型换用 MLA 后 MMLU 从 57.5 涨到 59.0、BBH 从 46.6 涨到 50.7——低秩不只是”省内存的代价”,它本身是一种归纳偏置。
但正则化不是免费的:注意同一个表里,小模型的 C-Eval 一项 MLA 反而低了 0.7 分(50.9 vs 51.6)。这说明低秩假设在个别任务上会损失表达能力——正则化总是”整体上赢、局部上亏”,判断它值不值,要看所有基准的综合收益,这正是论文敢下”MLA 强于 MHA”结论的依据。
Q4:DeepSeek-V2 论文 Table 7 里的基准分别是什么?#
Table 7 是 DeepSeek-V2 附录里的消融实验表,对比”只换注意力机制(MHA vs MLA)、其余不变”时模型在五个基准上的成绩。原表的五列是:BBH(EM,3-shot)、MMLU(5-shot)、C-Eval(5-shot)、CMMLU(5-shot)。逐个拆解全称和含义:
BBH(EM,3-shot)——BIG-Bench Hard,来自 Suzgun 等人 2022 年的论文(arXiv:2210.09261)。它是从更大的 BIG-Bench 套件(200+ 个任务)里筛选出的 23 个”此前最好的语言模型都赢不了人类平均分”的推理任务,包括布尔表达式求值、逻辑演绎、Dyck 语言括号匹配、对象追踪、多步算术、几何形状识别、因果判断等。计分方式是 EM(Exact Match,精确匹配):模型输出的答案和标准答案字符串完全一致才算对。3-shot 表示 prompt 里给出 3 个示例再让模型作答。为什么用 EM?BBH 的任务答案形式五花八门(布尔值、数字、选项字母),无法统一用选择题计分,精确匹配是 BIG-Bench 平台的通用计分器。
MMLU(5-shot)——Massive Multitask Language Understanding(大规模多任务语言理解),Hendrycks 等人 2020 年提出(arXiv:2009.03300)。57 个学科、约 15,908 道四选一选择题,覆盖人文、社会科学、STEM、专业领域(法律、医学、伦理等),是英文通用知识理解的行业标准。5-shot 即每个学科给 5 个示例。计分就是选择题正确率(对 MMLU 来说正确率等价于精确匹配,因为答案是选项字母)。
C-Eval(5-shot)——Huang 等人 2023 年提出的中文评估套件(arXiv:2305.08322)。52 个学科、13,948 道题,难度覆盖小学到研究生到职业资格考试(公务员、会计、中医等),测试集 8,234 题。它是中文大模型评测的事实标准之一,5-shot。
CMMLU(5-shot)——Chinese Massive Multitask Language Understanding,Li 等人 2023 年提出(arXiv:2306.09212)。67 个学科、约 11,528 道题,比 C-Eval 更强调中国文化背景(中国文学、中国法律、中国历史、传统医学等)和自然科学专业深度。
汇总成一张速查表:
| 基准 | 全称 | 学科数 | 题量 | 语言 | 计分 | 示例数 |
|---|---|---|---|---|---|---|
| BBH | BIG-Bench Hard | 23 个推理任务 | 约 6.5K | 英文 | 精确匹配 EM | 3-shot |
| MMLU | Massive Multitask Language Understanding | 57 | 约 15.9K | 英文 | 选择题正确率 | 5-shot |
| C-Eval | Chinese Evaluation Suite | 52 | 约 13.9K | 中文 | 选择题正确率 | 5-shot |
| CMMLU | Chinese Massive Multitask Language Understanding | 67 | 约 11.5K | 中文 | 选择题正确率 | 5-shot |
DeepSeek-V2 是双语(中英)模型,所以评测同时覆盖英文通用知识(MMLU、BBH)和中文能力(C-Eval、CMMLU)。括号里的”EM”和”3-shot/5-shot”是两个正交的信息:EM 是计分方式,N-shot 是提示方式——“给几个示例”和”怎么算对”,不要混淆。
Q5:分块对角矩阵是什么?为什么 RoPE 里两个矩阵相乘得到 Rs−t?#
这是这批问题里最”绕”的一个,拆成三小步讲。
第一步:什么是分块对角矩阵。 分块对角矩阵(block diagonal matrix)是把几个小矩阵沿主对角线排成一串、其余位置全是零的矩阵:
Rt=Rt(1)Rt(2)⋱Rt(d/2)它作用在向量上的效果是:把向量按块切开,每个块各自被对应的小矩阵变换,块与块之间互不干扰。为什么用分块而不是一个整体矩阵?因为”整块旋转”和”每对坐标各自旋转”是本质不同的变换——见第三步。
第二步:RoPE 的旋转块长什么样。 RoPE(RoFormer 论文 arXiv:2104.09864,2021 年苏剑林团队提出)对位置 t 施加的旋转矩阵,每个对角块是一个 2×2 旋转矩阵:
Rt(i)=(costθisintθi−sintθicostθi)不同块的角速度 θi 不同(RoPE 里 θi=base−2i/d,d 是维度),所以不同维度对旋转”频率”不同:低维块转得快(对近距离位置敏感),高维块转得慢(对远距离位置敏感),这让位置编码有了”多尺度”能力。图中给出直观的旋转示意:

RoFormer 论文中的旋转示意图:对位置 t 的向量按角度 tθ 逐二维块旋转,不同块使用不同的 θ 频率。(来源:RoFormer 论文 Figure 1,arXiv:2104.09864)
把每个 2×2 块看成复数乘法会非常清晰:把一对坐标 (x1,x2) 写成复数 z=x1+ix2,那么旋转块的作用就是 z↦z⋅eitθi——乘以一个单位复数就是旋转。所以 RoPE 本质上是”把向量的每个二维切面乘上一个位置相关的单位复数”,维度为 d 的向量对应 d/2 个独立的复平面。
第三步:为什么 (Rtq)T(Rsk)=qTRs−tk。 核心是旋转矩阵的三个代数性质:
- 旋转矩阵是正交矩阵:RtTRt=I,且转置等于逆,即 RtT=Rt−1;
- 逆旋转等于负角度旋转:Rt−1=R−t(转 t 角度的逆操作就是转 −t 角度);
- 旋转复合等于角度相加:R−tRs=Rs−t(先转 s 再转 −t,净效果是转 s−t)。这是旋转矩阵组的核心性质,从复数视角看就是 e−itθ⋅eisθ=ei(s−t)θ,一目了然。
然后直接推导:
(Rtq)T(Rsk)=qTRtTRsk=qTR−tRsk=qTRs−tk结果只依赖相对位置差 s−t,这正是位置编码想要的平移不变性:“我打你”和”你打我”里的两个”你”虽然绝对位置不同,但 query 与 key 的相对距离决定了注意力分数。每个 2×2 块独立满足这条性质(分块对角矩阵的乘法就是各块分别乘),所以整条性质对全维向量成立。
顺带一提:这个”旋转 = 复数乘法”的视角对理解 MLA 也很重要。MLA 的解耦 RoPE 把位置信息压缩到 64 维(32 个复平面),位置信号就是这 32 个单位复数的相位——位置编码的容量与复平面数量成正比,这是 partial RoPE 位置敏感度弱于全维度 RoPE 的一个直观解释。
Q6:qT(Wc)=(WTq)Tc 是什么矩阵运算性质?#
这条恒等式由两个线性代数性质组合而成,缺一不可:
性质一:转置的乘积性质 (AB)T=BTAT——乘积的转置等于”各自转置后倒序相乘”。用它处理左边:
(WTq)T=qT(WT)T=qTW性质二:乘法结合律 (AB)C=A(BC)——括号可以随便加。于是:
(WTq)Tc=(qTW)c=qT(Wc)左边是 qT(Wc),两边相等,证毕。这是纯代数恒等式,任何矩阵都成立,不需要任何额外条件。
为什么这条恒等式如此重要?因为两边虽然数值相等,计算结构却可能差很多。设 q∈Rn,W∈Rn×m,c∈Rm:
- 先算 Wc:中间结果是一个 n 维向量,之后 qT 与它做内积——整个流程里出现了一个 n 维的中间量;
- 先算 WTq:中间结果是一个 m 维向量,之后与 c 做内积——中间量只有 m 维。
两种算法的乘加次数都在 O(nm) 量级,差不多;真正不同的是”谁被变换、变换几次”。在 MLA 的 decode 场景里,这个差异被放大了:c 对应每一个历史 token 的潜变量(缓存里有 sk 个),而 q 是当前这一个 query。等式左边要对每个历史 token 都做一次上投影(WUKcj,每 token 一次 512→16,384 的变换);等式右边只需要对当前 query 做一次变换(WUK,Tq),历史 token 原样参与内积。所以矩阵吸收的本质是:把”对大量历史数据逐一遍历的变换”换成”对单个新数据的变换”——这也是为什么吸收后的 decode 每步只读 576 维/token 的 KV,而 naive 模式每步要读 40,960 维/token。
这正是 MLA 矩阵吸收(matrix absorption)的算术本质。《MLA 完全拆解》里的关键一步:
qt,iC,Tkj,iC=qt,iC,T(WiUKcjKV)=(WiUK,Tqt,iC)TcjKVWiUK∈R128×512 是”把 512 维潜变量恢复成第 i 头 128 维 key”的上投影。左边要先把每个历史 token 的 cKV 上投影成完整 key(512→128 每头,128 头就是 16,384 维)再算内积;右边先把 query 变换进 512 维潜空间,内积全程在潜空间做——历史上每个 token 的 16,384 维 key 都不需要算出来了。这就是”WUK 被吸收进 query 侧”。
这条恒等式也解释了为什么 RoPE 会破坏吸收(这正是 MLA 必须做解耦 RoPE 的原因):如果对 key 直接施加旋转,分数变成 qt,iC,T(RsWiUKcjKV),中间夹了一个位置相关的 Rs。套用恒等式只能把”整个括号”当做一个整体向量搬到 query 侧:
qT(RsWUKc)=((RsWUK)Tq)Tc问题出在括号里的 RsWUK:它是”位置矩阵 × 内容矩阵”的复合变换,Rs 依赖历史 token 的位置 s,而缓存里每个 token 的 s 各不相同。想把投影预先吸收成与位置无关的矩阵,就要求 Rs 能挪到 WUK 外面,但矩阵乘法不满足交换律(RsWUK=WUKRs),挪不动;想在推理时对每个历史 token 实时算 (RsWUK)Tq,又等于放弃”只缓存潜变量”的收益。两条路都堵死。DeepSeek 的解法就是让”位置”和”内容”分家:内容走低秩压缩(可吸收),位置单独走 64 维的 kR(无法吸收,但只有 64 维,缓存代价可忽略)。
如果这组推导让你觉得吃力,说明线性代数基础需要补一轮。推荐两条经典路径:3Blue1Brown 的《线性代数的本质》视频系列(把矩阵乘法和旋转讲成几何直觉)和 MIT 18.06 线性代数公开课(Gilbert Strang 主讲,前四讲覆盖矩阵乘法、消元、逆矩阵、LU 分解)。
第二部分:投机解码答疑(对应《DSpark》与《DFlash》)#
Q7:草稿 token 是怎么验证的?什么情况接受?为什么验证能并行?草稿模型为什么更快?#
这四个问题其实是投机解码的完整机制,从流程到原理逐层拆开。
验证流程:一次前向,逐位置比对#
投机解码的每一轮分两步。第一步,草稿模型(draft model,也叫 assistant model,通常是目标模型的几十分之一大小)自回归地快速生成 γ 个候选 token。第二步,目标模型(target model)把前缀和这 γ 个草稿 token 拼在一起,做一次完整的前向传播,一次性得到 γ 个位置上各自的条件分布。

投机解码的两阶段流程:draft 阶段逐 token 生成候选(串行),verify 阶段一次前向得到所有位置的分布(并行)。接受的部分直接输出,拒绝点之后全部丢弃并用目标模型重新采样。(来源:Leviathan et al., arXiv:2211.17192 Figure 1)
验证的数学规则(rejection sampling 风格,来自 Leviathan et al. 2023 与 Chen et al. 2023):设目标模型在位置 k 的分布是 pk(⋅),草稿模型在该位置的分布是 qk(⋅),草稿 token 是 x~k,则
P(接受 x~k)=min(1,qk(x~k)pk(x~k))直观解释:
- 如果目标模型给这个 token 的概率不低于草稿模型(比值 ≥1),无条件接受;
- 如果目标模型觉得它没那么好(比值 <1),则以这个比值的概率接受——即”抛一枚以 p/q 为概率的硬币”,而不是直接拒绝;
- 被拒绝时,从归一化的残余分布 max(0,pk(x)−qk(x)) 里重新采样一个 token,作为这一轮的”bonus token”,同时丢弃该位置之后的所有草稿 token。
为什么要用这种”带随机性的接受”而不是简单比对?为了保证输出分布完全等于目标模型自己的分布。验证一下:最终输出某个 token x 的概率 = 从接受路径得到的 min(qk(x),pk(x)) + 从拒绝后重采样路径得到的 max(0,pk(x)−qk(x)) = pk(x)。两条路径加起来恰好还原目标分布——投机解码是数学上无损的加速,草稿模型再差也只是让加速变小,不会让输出质量变差。这是投机解码与所有”截断/采样近似加速”的本质区别。
在贪婪解码(greedy,总是取 argmax)这个常见特例下,规则简化为:草稿 token 的 argmax 与目标模型的 argmax 相同就接受,否则拒绝(接受后输出与目标模型贪婪输出完全一致,分布不变性依然成立)。投机解码论文里报告接受率时大多默认这个口径——DSpark 在 GSM8K 上报告的 78.9% 就是一例。
为什么验证可以并行:条件里的”草稿 token”是已知常数#
这是投机解码最反直觉、也最核心的一点。直觉上,“位置 3 的分布依赖位置 2 输出了什么”,位置 2 都没定,位置 3 怎么能同时算?
关键在于区分两种”依赖”:
- 自回归生成的依赖:位置 i 的输入 token 是位置 i−1 的实际采样输出。采样输出没出来,输入就不存在——必须串行;
- 投机验证的依赖:位置 i 的输入 token 是草稿 token x~i。而草稿在验证开始前就已经全部生成好了,是已知常数。验证阶段要算的是
注意条件里的 x~1,…,x~i−1 都是这一轮固定不变的已知量,不依赖任何正在进行的采样。所以这 γ 个条件分布同时成立、互不等待,目标模型一次前向(一次 attention + FFN 的矩阵-矩阵乘法)就能把它们全部算出来——并行的是”算分布”,串行的才是”采样输出”,而采样发生在分布全部算完之后。
打个比方:考试时每个考生必须等前一排交卷才能答题(自回归);但监考老师可以同时批改所有已交的卷子(验证),因为卷子内容已经固定了。草稿就是”提前交的卷子”,批改(验证)当然可以并行。
草稿模型为什么更快:三个数量级差在哪里#
草稿模型通常只有目标模型的 5%-10% 大小(DSpark 给 Qwen3-8B 配的草稿模型约 400M 参数),它快在三处:
- 每 token 计算量小:FLOPs 大致与参数量成正比,400M 模型每 token 的计算量约是 8B 模型的 1/20;
- 权重读取带宽小(decode 阶段最关键):自回归 decode 每一步都要把全部权重从 HBM 读一遍(权重是每 token 必读的),decode 是典型的 memory-bound 场景。8B 模型 bf16 权重约 16 GB,400M 模型约 0.8 GB——每生成一个 token,草稿模型要搬的数据少一个数量级以上;
- KV Cache 小:草稿模型的 KV Cache 只有目标模型的几十分之一,长上下文下读历史 KV 的带宽压力小得多。
下面这张论文里的时间线图把”快在哪里”画得很直观:

墙钟时间线(wall-clock trace):上方是纯自回归,每个 token 独占一个前向的耗时;下方是投机解码,草稿阶段(蓝)耗时远小于目标前向(红),一次目标前向同时验证多个位置,多个 token 的产出被”折叠”进同一段耗时。(来源:Leviathan et al., arXiv:2211.17192)
但这三个优势有一个前提:草稿必须足够小。如果草稿模型太大,草稿生成时间 Td 会吞噬加速收益(这正是加速比公式里 Td/Tt 项的来源,见 Q9)。Leviathan 等人的经验是草稿模型要比目标模型小约两个数量级,或者浅得多(DFlash 用 5 层草稿模型,耗时约目标模型的 1%)。
Q8:DFlash 是什么?为什么”预测下一个 token 必须要前面的 token 结果”却可以一次生成 7 个?#
DFlash(Block Diffusion for Flash Speculative Decoding,块扩散快速投机解码)是 DeepSeek 与北京大学 z-lab 联合提出的投机解码框架,2026 年 2 月发布在 arXiv(arXiv:2602.06036),被 ICML 2026 接收。本站已有完整拆解《DFlash 块扩散解码》,这里只针对”为什么能并行生成”这个疑问讲透。
先回答直觉里的矛盾。“预测下一个 token 必须要前面的 token 结果”——这句话对生成(decoding)成立:生成出的序列必须因果一致,位置 i 的输出会成为位置 i+1 的输入,所以必须逐 token 串行。但草稿(drafting)不需要这个约束。草稿不是最终输出,它只是一份”猜测”,允许错——错了验证阶段会抓住并重采样(Q7 的机制保证最终分布不变)。既然是猜测,就没有”必须看到前一个真实输出”的义务,可以所有位置同时猜。
DFlash 的具体做法:每一轮把草稿块构造成 [锚点, MASK, MASK, ..., MASK]——锚点是上一轮目标模型产出的真实 token(强条件),后面 k−1 个位置全部填掩码 token,然后草稿模型一次前向把所有 MASK 位置预测出来。关键在于草稿模型内部使用块内双向(非因果)注意力:位置 3 的预测可以同时”看到”位置 1、2、4、5 的表示——这在自回归模型里不可能,但在”一次填完一版草稿”的任务里是合法的,还能利用块内全局一致性(预测 for 时可以让块内其他地方同时倾向 range)。
代价是什么?每个位置的预测失去了”显式以实际前文为条件”的能力,单 token 准确率下降。DFlash 用两个设计补回来:
- 锚点 + KV 注入:锚点是目标模型的真实输出,提供强起点条件;更关键的是,目标模型多个中间层(默认 5 层)的隐藏状态被融合后注入草稿模型的每一层——草稿”看到”的是目标模型对整个前缀的深层理解,而不是自己从头算。这就是图里的设计:

KV 注入(KV injection):从目标模型第 [1, 8, 14, 20, 27] 层等位点提取隐藏状态,融合成单个上下文特征后写入草稿模型每一层的 KV 缓存,草稿的 query 同时对这些注入的 key/value 做注意力。(来源:DFlash 论文 Figure 2,arXiv:2602.06036)
- 接受率换接受长度:单 token 接受率低,但草稿块是一次前向同时给出的,草稿耗时接近常数。论文数据很说明问题(Gemma 4 26B 对比):DFlash 单 token 接受率只有 16%(EAGLE-3 是 48%),但平均接受长度 3.45 > EAGLE-3 的 2.44,端到端加速 2.19× > 1.69×。多猜一些、错得多一些、但猜的成本几乎为零——这就是”以并行换精度、以验证保正确”的权衡。
DFlash 用这种机制在 Qwen3-8B 上拿到了 MATH-500 6.08×、HumanEval 5.52× 的加速(EAGLE-3 分别是 2.4×、2.3×),在 NVIDIA Blackwell 上用 gpt-oss-120b 实现约 15× 的高并发吞吐提升。
Q9:加速比公式 加速比≈1+TtTd+TtTvγ⋅接受率 是怎么来的?#
这是投机解码文章里最常见也最容易被误用的一条公式。先给出严格推导,再说明它和”≈“版本的关系。记号:γ 草稿块长度,α 平均逐位置接受率,Td 草稿生成时间,Tv 目标模型验证时间,Tt 目标模型生成单 token 的时间。
无投机基线:每生成 1 个 token 耗时 Tt,吞吐 1/Tt。
投机解码:每一轮耗时 Td+Tv(草稿 + 验证,验证是并行的),产出的 token 数 = 被接受的草稿数 τ + 1 个 bonus token(拒绝点处目标模型重新采样的那个,或全部接受时位置 γ+1 的预测——总之每轮至少白拿一个)。在逐位置接受相互独立、概率均为 α 的假设下,期望接受数
E[τ]=i=1∑γP(前 i 个全部被接受)=i=1∑γαi=1−αα(1−αγ)所以每轮期望 token 数(Leviathan 论文公式 (1)):
E[τ]+1=1−α1−αγ+1精确加速比 = 每轮 token 数 ÷ 每轮耗时,再除以基线的 1/Tt:
加速比=Td+TvE[τ]+1⋅Tt=(1−α)(TtTd+TtTv)1−αγ+1这是不掺任何近似的结果。现在看”≈“版本是怎么来的,两个近似:
近似一(分子):把每轮产出粗略估计为”平均接受率 × 草稿长度”,即 E[τ]+1≈αγ。这个近似在 α 接近 1 时相当好(接受几乎总会发生,每轮几乎总拿到接近 γ+1 个 token:α=0.95、γ=7 时精确值 0.051−0.958=6.73,粗略值 6.65);α 中等时它明显高估每轮收益(α=0.7、γ=7 时精确值只有 0.31−0.78=3.14,粗略值 4.9)。所以它适合量级判断,不适合精确预测。
近似二(分母):验证 γ 个 token 的一次前向,耗时与单 token 前向差不多——因为目标模型的计算量主要由 FFN 的矩阵乘主导,处理 γ 个 query 位置相当于一次更宽的 GEMM,深度(层数)没变;只有注意力和 KV 读取随序列变长而增加。于是把验证时间拆成”一个基准前向 Tt + 序列变长带来的边际开销 Δ”:
Tv=Tt+Δ⟹Td+Tv=Td+Tt+Δ合并两个近似(每轮产出 αγ 个 token、耗时 Td+Tt+Δ),相对基线(每 token Tt):
加速比≈Td+Tt+Δαγ⋅Tt=1+TtTd+TtΔαγ分母里的”1”就是目标模型那一个基准前向的耗时——投机解码每轮无论如何都要付一次目标前向的”底价”,这正是”验证 ≈ 单 token 生成”这一事实的体现。把公式里的 Tv 理解为这里的边际开销 Δ,就得到文章里的写法。注意文献里 Tv 的口径并不统一(有的指总验证时间,此时分母不应再额外加 1),这是这条公式最容易被误用的地方:用精确式推导、用近似式找感觉,别混着用。
代入数值验证。以 DSpark 在 Qwen3-8B 上 GSM8K 的数据为例:γ=7,α=0.789,草稿模型约 400M(取 Td/Tt≈0.05),验证前向约等于一个基准前向(Δ≈0,Tv≈Tt):
- 精确式:(1−0.789)(0.05+1)1−0.7898=0.211×1.050.8498≈3.84
- 近似式:1+0.05+17×0.789=2.055.52≈2.69
论文实测 GSM8K 加速比是 4.06×,更贴近精确式(3.84×)。差别来自近似一丢掉的 bonus token:接受率高时”每轮白拿的 +1”不可忽略。这也解释了为什么 α 的阈值效应明显:α 低于约 0.5-0.6 时,αγ 掉得比分母快,投机解码可能连 1× 都保不住;高于 0.75 后,加速比随 α 的增长非常陡峭。
由这条公式可以直接读出三条工程结论:提高接受率 α(训练草稿模型对齐目标分布,DSpark 的串行头、DFlash 的 KV 注入都在干这个)、压低草稿耗时 Td(草稿模型要小、要浅)、γ 不是越大越好(γ 进分子线性增长,但尾部接受率衰减会拉低有效 α,且 Tv 随序列变长边际上涨)——DSpark 把 γ 定为 7、DFlash 用 8/16,都是在这三个方向上的折中。
第三部分:TPU 与 AI 芯片答疑(对应《TPU v1 完全拆解》)#
Q10:TPU 不是只做推理吗?训练怎么办?Gemmini 是在 TPU 上训练和推理的吗?#
这个问题里藏着两个需要分别澄清的误解。
误解一:“TPU 只做推理”。 这句话只对第一代 TPU 成立。TPU v1 是 2015 年设计、2017 年 ISCA 论文(arXiv:1704.04760)公开的纯推理芯片:8 位整数脉动阵列、没有为反向传播设计的高精度路径、不更新权重。但 Google 的 TPU 家族远不止 v1:
| 代际 | 发布 | 定位 | 关键变化 |
|---|---|---|---|
| TPU v1 | 2015 部署,2017 论文 | 纯推理 | 256×256 INT8 脉动阵列,92 TOPS |
| TPU v2 | 2018(Cloud TPU 上线) | 训练 + 推理 | 新增向量单元与标量单元、bfloat16,支持反向传播 |
| TPU v3 | 2018 | 训练 + 推理 | 算力翻倍,水冷 |
| TPU v4 / v5p | 2021 / 2023 | 训练 + 推理 | 光交换(OCS)、3D torus 扩展 |
| TPU v6e(Trillium) | 2024 | 训练 + 推理 | 每芯片 4.7× v5e 算力 |
| TPU v7(Ironwood) | 2025 | 推理为主 | 每芯片约 4.6 PFLOPS FP8、192 GB HBM,9216 芯片 Superpod 达 42.5 EFLOPS FP8 |
注意一个有意思的循环:v2/v3 是”为训练而生”,而 2025 年的 v7 Ironwood 官方定位又回到了”inference era”——但这次它是训练推理都支持的高算力芯片,定位转变的原因不是能力受限,而是推理市场变大。所以准确的表述是:TPU v1 纯推理,TPU v2 及以后训练推理通吃。Google 自家的 Gemini 系列就是在 TPU v4/v5p 上训练的。
误解二:“Gemmini 是在 TPU 上训练和推理的”。 这是把两个都叫”脉动阵列加速器”的东西当成了一家。Gemmini 和 Google TPU 的血缘关系是架构上的(都采用脉动阵列),不是产品上的——Gemmini 是加州大学伯克利分校的开源硬件项目(GitHub: ucb-bar/gemmini),跟 Google 没有任何关系。
Gemmini 到底是什么?它是用 Chisel 硬件描述语言写成的参数化脉动阵列生成器:给定阵列尺寸、数据类型、数据流(output-stationary 或 weight-stationary)、SRAM 容量等参数,自动生成一个完整的加速器 SoC。它挂载在伯克利开源的 Rocket Chip / Chipyard 芯片生态里,通过 RoCC 协处理器接口和自定义 RISC-V 指令被 CPU 调用。它既不是一颗固定芯片,也不是云服务——是造芯片的”模板”,用来做体系结构研究和教学(可以在 FPGA 上跑,也流片过 TSMC 16nm 和 Intel 22FFL 测试芯片)。下图是真正的 Google TPU v1 的框图,注意它和 Gemmini 的相似性恰恰只在”脉动阵列 + SRAM 缓冲 + 累加器”这个粗粒度骨架:

TPU v1 框图(Google,2017):这是一颗由主机 CPU 驱动的协处理器,没有自主调度。Gemmini 的骨架与之神似(脉动阵列 + 显式管理的 SRAM 缓冲 + 累加器),但 Gemmini 是伯克利开源的、可参数化的芯片生成器,两者不是同一个东西。
至于”Gemmini 能不能训练”:可以,但那是扩展能力,不是默认形态。Gemmini 最常用的配置是 INT8 量化推理(8 位输入、32 位累加),但它的数据类型是完全参数化的,可以生成浮点实例;伯克利的技术报告《End-to-end Model Inference and Training on Gemmini》(EECS-2021-37)就展示了在 ONNX Runtime 后端上把推理引擎扩展成训练引擎的完整方案。一句话总结:Gemmini 不是跑在 TPU 上的东西,它自己就是一颗(可以按参数生成、可以训练推理通吃的)脉动阵列加速器芯片。
Q11:AI 芯片全景:GPU、TPU、NPU 以及各路”PU”怎么比较?#
2026 年 8 月的加速器市场已经非常拥挤。先把玩家按技术路线分成三类,再给全景表,最后讲怎么选。
路线一:通用可编程路线(GPU 血统)。以 NVIDIA 为代表,AMD、Intel、华为昇腾(910C 之后)都在这条线上。特征是 SIMT/可编程核心 + 统一内存 + 通用指令集,什么模型都能跑,靠软件生态(CUDA/ROCm/CANN)取胜。训练推理通吃,但通用性有代价:能效和面积效率低于专用 ASIC。
路线二:专用 ASIC 路线(脉动阵列/固定数据流)。Google TPU、寒武纪、百度昆仑芯、亚马逊 Trainium(可编程 NSIM 核心 + 定制互连)都在此列。特征是计算单元与数据流针对矩阵乘/注意力深度定制,能效高、确定性好,但灵活性和生态成熟度不如 GPU。
路线三:SRAM 大缓存路线(把内存搬到芯片上)。Groq LPU、Cerebras WSE 为代表。核心洞察:LLM decode 的瓶颈是 HBM 带宽,那就把权重全部放进片上 SRAM。Groq LPU 每芯片约 230 MB SRAM、80 TB/s 片上带宽;Cerebras WSE-3 直接把 44 GB SRAM 和 90 万核心做在一块晶圆上,片上带宽 21 PB/s。这条路线延迟极低(毫秒级 TTFT)、确定性极强,但显存容量小(大模型要跨多芯片切分)、训练支持有限(Groq 纯推理,Cerebras 支持训练)。
全景速查表(2026 年 8 月视角,厂商口径数据以”约”标注):
| 厂商 | 芯片 | 上市 | 算力(厂商峰值) | 显存 / 带宽 | 互连 | 定位 |
|---|---|---|---|---|---|---|
| NVIDIA | H100 SXM | 2022 | 989 TFLOPS FP16(稀疏 1979) | 80 GB HBM3 / 3.35 TB/s | NVLink 4 900 GB/s | 训练推理通用标杆 |
| NVIDIA | H200 | 2024 | 同 H100 | 141 GB HBM3e / 4.8 TB/s | 同上 | 推理大显存改良 |
| NVIDIA | B200 / GB200 | 2024 | 约 9 PFLOPS FP4(稠密) | 192 GB HBM3e / 8 TB/s | NVLink 5 1.8 TB/s | 训练推理旗舰 |
| NVIDIA | B300(Blackwell Ultra)/ GB300 | 2025 | 约 14-15 PFLOPS FP4(稠密) | 288 GB HBM3e / 8 TB/s | 同上 | 推理强化版 |
| NVIDIA | Vera Rubin(NVL72) | 2026 发布 | 未完全公开 | — | NVLink 6 3.6 TB/s、机架 260 TB/s | 下一代旗舰 |
| AMD | MI300X | 2023 | 1.3 PFLOPS FP16 | 192 GB HBM3 / 5.3 TB/s | Infinity Fabric | 训练推理,ROCm |
| AMD | MI355X | 2025 | 10.1 PFLOPS FP8 / 20.1 PFLOPS FP4 | 288 GB HBM3e / 8 TB/s | — | 对标 B300,1400 W 液冷 |
| TPU v7 Ironwood | 2025 | 约 4.6 PFLOPS FP8/芯片 | 192 GB HBM/芯片 | 3D torus + OCS | 云推理训练,不外卖 | |
| Amazon | Trainium2 | 2024 GA | 1.3 PFLOPS FP8(稠密)/芯片 | 96 GB HBM / 2.9 TB/s | EFA | 训练为主 |
| Amazon | Trainium3 | 2025.12 | 2.52 PFLOPS MXFP8/芯片 | 144 GB HBM3e / 4.9 TB/s | EFA | 训练推理 |
| Intel | Gaudi 3 | 2024 | 1835 TFLOPS BF16 | 128 GB HBM2e / 3.7 TB/s | — | 训练,性价比路线 |
| 华为 | Ascend 910B | 2023 | 376 TFLOPS FP16 | 64 GB HBM | — | 训练推理,CANN |
| 华为 | Ascend 910C | 2025 | 约 800 TFLOPS FP16(双 die) | 64 GB HBM3e | 昇腾高速互连 | 训练推理主力 |
| 华为 | Ascend 950PR/950DT | 2026 | 约 1 PFLOPS FP8 | 128 / 144 GB | UB-Mesh + 灵衢光互连 | 推理(PR)/训练解码(DT) |
| 寒武纪 | 思元 590 / 690 | 2025-2026 | 未完全公开 | — | — | 国产训练推理 |
| 百度 | 昆仑芯 P800 | 2025 | 约 345 TFLOPS FP16 | — | — | 推理为主 |
| Cerebras | WSE-3(CS-3) | 2024 | 125 PFLOPS FP16(稀疏) | 44 GB 片上 SRAM / 21 PB/s | SwarmX | 训练推理,超低延迟 |
| Groq | LPU(Groq 3) | 2024 / 2026 | 188 TFLOPS FP16 / 750 TOPS INT8(每芯片) | 约 230 MB SRAM / 80 TB/s | RealScale | 纯推理,确定性延迟 |
几点需要诚实标注:B300 的 FP4 数字在不同来源有 14/15 PFLOPS 两种口径;昇腾 910C 的算力有”800 TFLOPS FP16”和更高的两种传闻,这里采用多数来源口径;寒武纪 590/690 的具体算力官方未完整公开;Groq 与 NVIDIA 在 2025 年 12 月达成 20 亿美元 IP 授权协议(非排他),Groq 3 LPU 已进入 NVIDIA Vera Rubin 平台的第七芯片席位。这张表里的数字大多是厂商宣传口径,未经独立复测,对比时要按同一精度、同一稠密/稀疏口径,否则没有意义。
怎么读这张表? 三个实用视角:
- 算力口径陷阱:FP4 数字大约是 FP8 的两倍、FP16 的四倍,还有稠密/稀疏(2:4 sparsity)之分。H100 的”989 TFLOPS FP16 稀疏”和 MI355X 的”10.1 PFLOPS FP8”根本不是同一把尺子。跨芯片对比一律换算到同一精度;
- 推理时代带宽压倒算力:decode 阶段是 memory-bound,这时显存带宽、显存容量比峰值算力更决定吞吐。AMD MI355X 的 288 GB / 8 TB/s、NVIDIA B300 的 288 GB、华为 950DT 的 144 GB,都是为”大模型 + 长上下文 + 高并发”配的;Groq/Cerebras 则直接把内存做到芯片上,用 10-100 倍的片上带宽换极致延迟;
- 生态是最大的护城河:CUDA 有 18 年积累的库和编译器生态,ROCm、CANN、XLA 都在追赶。选型时”能不能跑起主流框架(vLLM/SGLang/TensorRT)“往往比纸面算力更重要——这也是为什么昇腾 950 系列在 SIMD 之外补了 SIMT 编程模型、对 CANN 生态开放共建,本质上都是想复制 CUDA 的”软件锁定”。
当前市场的结构性结论:训练市场仍由 NVIDIA 主导(Rubin 平台 + Groq IP 授权巩固地位),Google 用 TPU 自给自足并外供云服务,华为昇腾在国产替代政策下高速放量(2026 年目标约 60 万颗),AMD 用显存容量和性价比卡位推理,Groq/Cerebras 吃下”延迟敏感 + 低并发”的利基,寒武纪、昆仑芯等国产厂商在推理和特定训练场景逐步渗透。对部署者来说,不存在”最好的芯片”,只有”和你的负载形态(延迟约束、并发、上下文长度、生态依赖)最匹配的芯片”。
小结:16 个问题的答案速查#
| 问题 | 一句话答案 |
|---|---|
| 秩是什么 | 矩阵作为线性变换输出空间的维数,等于线性无关行/列的最大数目;低秩 = 信息集中在少数方向 |
| SVD 截断是什么 | 保留前 k 个奇异值的最优 k 秩近似(Eckart–Young 定理),误差 = 被丢弃的奇异值 |
| 正则化是什么 | 约束假设空间、防止过拟合的机制;低秩压缩就是隐式正则化 |
| Table 7 的基准 | BBH=23 个困难推理任务的精确匹配评测;MMLU/C-Eval/CMMLU=英/中多学科选择题评测 |
| 分块对角与 Rs−t | 每对坐标独立旋转 = 复平面乘单位复数;旋转复合即角度相加,R−tRs=Rs−t |
| 重结合恒等式 | 转置乘积性质 + 乘法结合律;本质是把大矩阵投影挪到小向量一侧,即 MLA 的矩阵吸收 |
| 投机解码验证 | 按 min(1,pt/qd) 概率接受、残余分布重采样;分布不变;验证并行是因为条件里是已知的草稿 token |
| 草稿为什么快 | 参数少(FLOPs 少)+ 权重小(带宽少)+ KV 小;decode 是 memory-bound,带宽差即速度差 |
| DFlash 为什么能并行 | 草稿允许错,猜测不需要因果依赖;双向注意力 + 锚点 + KV 注入弥补精度;验证兜底保证无损 |
| 加速比公式 | 精确式 (1−αγ+1)/((1−α)(Td/Tt+Tv/Tt));≈ 式由”每轮 ≈ αγ 个 token”和”验证 ≈ 一个基准前向”两个近似而来 |
| TPU 只做推理吗 | 只有 v1 是纯推理;v2 起训练推理通吃;v7 Ironwood 又强调推理但能力是训练级的 |
| Gemmini 是什么 | 伯克利的开源参数化脉动阵列生成器(Chisel/Rocket Chip 生态),与 Google TPU 无关;默认 INT8 推理,可扩展训练 |
| AI 芯片怎么比 | 三条路线(通用 GPU / 专用 ASIC / SRAM 大缓存),按同一精度口径比算力,按带宽比推理,按生态比落地 |
这篇答疑对应三篇前作:《MLA 完全拆解》讲的是”低秩压缩 + 解耦 RoPE + 矩阵吸收”的完整机制,《DSpark》和《DFlash 块扩散解码》是投机解码的两条路线,《TPU v1 完全拆解(一)》讲的是推理专用芯片的架构哲学。数学、机制、硬件三层补完,再看这些文章会顺很多。
参考资料#
- DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(论文全文,Table 7 消融实验出处)
- RoFormer: Enhanced Transformer with Rotary Position Embedding(RoPE 原始论文,Figure 1 旋转示意图)
- Fast Inference from Transformers via Speculative Decoding(Chen et al., 2023,验证与接受规则)
- Fast and Robust Next-Generation Machine Translation / Fast Drafting(Leviathan, Kalman & Matias, ICML 2023,加速比公式与最优 γ 分析)
- DFlash: Block Diffusion for Flash Speculative Decoding(论文全文)
- DeepSpec: A Full-Stack Codebase for Training and Evaluating Speculative Decoding Algorithms(DSpark/DFlash 训练框架)
- In-Datacenter Performance Analysis of a Tensor Processing Unit(TPU v1 论文,Figure 1 芯片框图)
- Gemmini: Berkeley’s Systolic Array Generator(伯克利开源脉动阵列生成器)
- End-to-end Model Inference and Training on Gemmini(伯克利技术报告 EECS-2021-37 全文 PDF)
- BIG-Bench Hard: Challenging BIG-Bench Tasks and Whether Chain-of-Thought Can Solve Them(BBH 定义与 EM 计分)
- Measuring Massive Multitask Language Understanding(MMLU 论文)
- C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite(C-Eval 论文)
- CMMLU: Measuring Massive Multitask Language Understanding in Chinese(CMMLU 论文)
- Chinese AI Chips Landscape 2026: Huawei Ascend, Cambricon, Biren, Moore Threads(国产 AI 芯片全景)
- 华为昇腾系列 AI 芯片详细参数对比(2025-2028)
- Google Ironwood TPU 与 NVIDIA 芯片对比(digit.in 解读)
- AMD Instinct MI350 系列与 Blackwell 对比(The Register)
- AI Accelerators Beyond GPUs: TPU, Trainium, Gaudi, Cerebras, Groq(各芯片规格汇总)
- AWS Trainium(官方产品页,Trainium2/Trainium3 规格)
- Boost Inference Performance up to 15x on NVIDIA Blackwell Using DFlash Speculative Decoding(NVIDIA 技术博客)
- MIT 18.06 线性代数公开课(矩阵乘法、转置与分解的系统复习)
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分内容可能已过时
评论区
分享你的想法,与大家交流讨论
音乐
暂未播放



