网站建设否定关键词,南宁企业网站制作,网站样式下载,wordpress短代码大全DeepSeek MLA 如何通过“矩阵吸收”实现 MHA 到 MQA 的无缝切换?
在当前的大模型架构之争中#xff0c;显存效率#xff08;KV Cache#xff09;与模型性能#xff08;表达能力#xff09;往往是鱼与熊掌不可兼得。MHA#xff08;多头注意力#xff09;性能好但显存爆…DeepSeek MLA 如何通过“矩阵吸收”实现 MHA 到 MQA 的无缝切换?在当前的大模型架构之争中显存效率KV Cache与模型性能表达能力往往是鱼与熊掌不可兼得。MHA多头注意力性能好但显存爆炸MQA多查询注意力显存极低但可能损耗性能。DeepSeek-V2/V3 提出的MLA (Multi-Head Latent Attention)架构巧妙地通过低秩压缩Low-Rank Compression和矩阵吸收Matrix Absorption技术实现了“训练时是 MHA推理时是 MQA”的神奇效果。本文结合 DeepSeek-V3.2 论文插图与科学空间的解析带你拆解这一过程。1. 核心思想KV 的低秩压缩MLA 的出发点是不直接存储巨大的K KK和V VV矩阵而是存储一个压缩后的低维潜在向量c K V c_{KV}cKV。在标准的 MHA 中每个头Head都有自己独立的K KK和V VV。而在 MLA 中生成逻辑如下输入向量h t h_tht经过投影生成压缩向量c K V c_{KV}cKV。训练时图 a - MHA Modec K V c_{KV}cKV通过两个上投影矩阵W U K W^{UK}WUK和W U V W^{UV}WUV“还原”出每个头所需的k t , i C k_{t,i}^Ckt,iC和v t , i C v_{t,i}^Cvt,iC。k t , i C c K V ⋅ W i U K k_{t,i}^C c_{KV} \cdot W_{i}^{UK}kt,iCcKV⋅WiUKv t , i C c K V ⋅ W i U V v_{t,i}^C c_{KV} \cdot W_{i}^{UV}vt,iCcKV⋅WiUV这看起来依然是 MHA因为每个头确实获得了解耦的 Key 和 Value。2. 推理时的魔法矩阵吸收 (Matrix Absorption)MLA 最大的创新在于在推理Decoding阶段我们不需要真的把k kk和v vv还原出来存入 KV Cache。利用矩阵乘法的结合律我们可以将用于还原K KK和V VV的投影矩阵W U K , W U V W^{UK}, W^{UV}WUK,WUV分别“吸收”到Query 端和Output 端。A. Key 的吸收变为 MQA 形式计算 Attention 分数的核心公式是Q ⋅ K T Q \cdot K^TQ⋅KT。在 MLA 中代入K KK的生成公式Score q t , i C ⋅ ( k t , i C ) T q t , i C ⋅ ( c K V ⋅ W i U K ) T \text{Score} q_{t,i}^C \cdot (k_{t,i}^C)^T q_{t,i}^C \cdot (c_{KV} \cdot W_{i}^{UK})^TScoreqt,iC⋅(kt,iC)Tqt,iC⋅(cKV⋅WiUK)T利用转置性质( A B ) T B T A T (AB)^T B^T A^T(AB)TBTATScore q t , i C ⋅ ( W i U K ) T ⋅ c K V T \text{Score} q_{t,i}^C \cdot (W_{i}^{UK})^T \cdot c_{KV}^TScoreqt,iC⋅(WiUK)T⋅cKVT这里发生了一个关键变换我们可以结合q t , i C ⋅ ( W i U K ) T q_{t,i}^C \cdot (W_{i}^{UK})^Tqt,iC⋅(WiUK)T作为一个新的 Query。对应图中 (b) 的蓝色箭头W i U K W_i^{UK}WiUK不再用于生成K KK而是直接作用于 Query。结果KV Cache 中只需要存储压缩后的c K V c_{KV}cKV。对于所有头来说c K V c_{KV}cKV是共享的。这不就是MQA (Multi-Query Attention)吗即所有头共享一个 Key。B. Value 的吸收同理对于 Attention 的输出计算o t , i AttnWeight ⋅ v t , i C AttnWeight ⋅ ( c K V ⋅ W i U V ) o_{t,i} \text{AttnWeight} \cdot v_{t,i}^C \text{AttnWeight} \cdot (c_{KV} \cdot W_{i}^{UV})ot,iAttnWeight⋅vt,iCAttnWeight⋅(cKV⋅WiUV)利用结合律我们可以先计算AttnWeight ⋅ c K V \text{AttnWeight} \cdot c_{KV}AttnWeight⋅cKV最后再乘以W i U V W_{i}^{UV}WiUV。对应图中 (b) 的橙色箭头W i U V W_i^{UV}WiUV被移到了 Attention 计算之后甚至可以进一步融合到最终的 Output Projection (W O W_OWO) 中。结果KV Cache 中不需要存展开的V VV只需要存c K V c_{KV}cKV。3. RoPE 的处理Decoupled RoPE细心的读者会发现图中还有一个apply RoPE的分支。为了避免旋转位置编码RoPE破坏上述的矩阵吸收特性RoPE 是位置敏感的不能简单被线性矩阵吸收MLA 采用了Decoupled RoPE解耦 RoPE策略q [ q c o n t e n t , q r o p e ] ; k [ k c o n t e n t , k r o p e ] q [q_{content}, q_{rope}]; \quad k [k_{content}, k_{rope}]q[qcontent,qrope];k[kcontent,krope]Content 部分 (c K V c_{KV}cKV)完全压缩执行矩阵吸收变成 MQA 模式。RoPE 部分 (k R k^RkR)单独保留携带位置信息随c K V c_{KV}cKV一起缓存。4. 总结图 (a) 到 图 (b) 的变换回到 DeepSeek-V3.2 的 Figure 7图 (a) MHA Mode展示了逻辑上的计算过程。c K V c_{KV}cKV分裂并通过W U K W^{UK}WUK、W U V W^{UV}WUV变成多头的k kk和v vv。这是模型训练时的视角保证了模型拥有多头的表达能力。图 (b) MQA Mode展示了物理上的计算过程推理时。W U K W^{UK}WUK被吸收到 Query 侧蓝色箭头。W U V W^{UV}WUV被吸收到 Output 侧橙色箭头。KV Cache只剩下灰色的c K V c_{KV}cKV和小部分的k R k^RkR。结论MLA 通过数学上的等价变换在不损失 MHA 性能因为数学上完全等价的前提下将推理时的显存占用降低到了MQA 的水平。这就是 DeepSeek-V3 能够支持超长上下文且推理高效的核心秘密。