当前位置: 首页 > news >正文

DeepSeek MLA 核心揭秘:如何实现 MHA 到 MQA 的无缝切换

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 KKV VV矩阵,而是存储一个压缩后的低维潜在向量c K V c_{KV}cKV

在标准的 MHA 中,每个头(Head)都有自己独立的K KKV VV。而在 MLA 中,生成逻辑如下:

  1. 输入向量h t h_tht经过投影生成压缩向量c K V c_{KV}cKV
  2. 训练时(图 a - MHA Mode)c K V c_{KV}cKV通过两个上投影矩阵W U K W^{UK}WUKW U V W^{UV}WUV,“还原”出每个头所需的k t , i C k_{t,i}^Ckt,iCv 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,iC=cKVWiUK

v t , i C = c K V ⋅ W i U V v_{t,i}^C = c_{KV} \cdot W_{i}^{UV}vt,iC=cKVWiUV

这看起来依然是 MHA,因为每个头确实获得了解耦的 Key 和 Value。

2. 推理时的魔法:矩阵吸收 (Matrix Absorption)

MLA 最大的创新在于:在推理(Decoding)阶段,我们不需要真的把k kkv vv还原出来存入 KV Cache。

利用矩阵乘法的结合律,我们可以将用于还原K KKV 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^TQKT。在 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})^TScore=qt,iC(kt,iC)T=qt,iC(cKVWiUK)T

利用转置性质( A B ) T = B T A T (AB)^T = B^T A^T(AB)T=BTAT

Score = 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}^TScore=qt,iC(WiUK)TcKVT

这里发生了一个关键变换:我们可以结合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,i=AttnWeightvt,iC=AttnWeight(cKVWiUV)

利用结合律,我们可以先计算AttnWeight ⋅ c K V \text{AttnWeight} \cdot c_{KV}AttnWeightcKV,最后再乘以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}WUKW U V W^{UV}WUV变成多头的k kkv 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 能够支持超长上下文且推理高效的核心秘密。

http://www.cnnetsun.cn/news/4993.html

相关文章:

  • 基于SpringBoot+Vue的学院个人信息管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【2025最新】基于SpringBoot+Vue的洋州影院购票管理系统管理系统源码+MyBatis+MySQL
  • 前后端分离养老院管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • tensorflow 零基础吃透:RaggedTensor 在 Keras 和 tf.Example 中的实战用法 (补充)
  • 如何让lazy.nvim插件管理器完美支持中文界面?
  • 市场准入负面清单(2015-2018)
  • 电力电缆在线监测及故障预警测距系统:技术解析与 Python 实现
  • Wan2.2-T2V-A14B支持长时间视频分段生成与无缝拼接
  • OpCore Simplify:让黑苹果配置像搭积木一样简单
  • spRAG 开源项目:构建智能检索增强系统的完整指南
  • K8s 环境中的 JVM 调优实战
  • Dify文档解析能力全解析,竟能轻松应对高强度PDF加密?
  • 为什么学完黑盒测试用例设计方法,还是写不好用例?
  • 回收安川,伺服,电机,plc等
  • 31、编程开发中的库、工具与脚本语言使用指南
  • 2025年IDM激活终极指南:从新手到专家的完整解决方案
  • Bilive项目:B站直播录制与自动化投稿终极指南
  • 详细介绍Python+Pytest+BDD+Playwright,用FSM打造高效测试框架
  • Whisper语音识别快速上手完整指南:从零部署到实战应用
  • 私有化AI文档处理实战:3步构建企业专属智能知识库
  • 2025技术侦探:3步诊断你的React Native应用为什么卡顿?
  • Wan2.2-T2V-A14B模型部署指南:从镜像拉取到API封装
  • Wan2.2-T2V-A14B如何提升背景环境的丰富度?
  • Wan2.2-T2V-A14B为电商平台提供千人千面视频推荐基础
  • 实战指南:使用fpm为R项目构建跨平台系统包
  • KataGo TensorRT引擎终极解析:从DLL加载到神经网络架构深度剖析
  • 如何快速安全弹出USB设备:Windows存储设备管理终极方案
  • Zotero文献库构建全攻略:从零开始打造高效学术资料系统
  • 5个步骤快速掌握MFCMAPI:微软邮件系统调试利器
  • 如何快速上手Zigpy:构建智能家居Zigbee通信的完整指南