【AI】deepseek V3开源MLA架构

MLA (Multi-Head Latent Attention,多头潜在注意力)是 DeepSeek-V2/V3 系列最具标志性的架构创新,它并非简单的注意力变体,而是对 Transformer 推理瓶颈的结构性重构 ------用低秩压缩替代显式存储完整 KV Cache,在保持 MHA 性能的同时,将推理内存占用压缩至 GQA/MQA 级别。


一、背景:为什么需要 MLA?

标准 Transformer 的多头注意力(MHA)在自回归推理时,需要为每个 Token 缓存完整的 Key 和 Value 矩阵。随着序列长度增长,KV Cache 成为内存带宽瓶颈

  • MHA :每头独立 K/V,Cache 大小 ∝ n_heads × d_head × seq_len
  • GQA/MQA:共享 K/V 减少 Cache,但注意力容量下降,性能受损

DeepSeek 的核心洞察:K 和 V 矩阵存在大量冗余,可通过低秩投影压缩到潜在空间,推理时只存压缩向量,计算时实时解压


二、核心原理:低秩联合压缩 + 解耦 RoPE

MLA 包含两个正交设计:

1. 低秩联合压缩(Low-Rank Joint Compression)

将 Key 和 Value 共同压缩 到一个低维潜在向量 c_t^KV,而非分别存储:

操作 公式 维度说明
KV 压缩 c_t^KV = W^DKV · h_t c_t^KV ∈ R^(d_c)d_c << d_h × n_h
Key 解压 k_t^C = W^UK · c_t^KV 恢复多头维度
Value 解压 v_t^C = W^UV · c_t^KV 同上

关键W^DKV 是下投影(降维),W^UK / W^UV 是上投影(升维)。推理时只需缓存小小的 c_t^KV 向量,而非完整的 k_tv_t

2. 解耦 RoPE(Decoupled Rotary Positional Embedding)

RoPE(旋转位置编码)与低秩压缩不兼容------如果对压缩后的向量加 RoPE,位置信息会在低维空间中纠缠。

MLA 的解决方案:将内容信息与位置信息物理分离

  • 内容部分k_t,i^Cq_t,i^C 通过低秩压缩传递语义信息
  • 位置部分 :单独维护一小段携带 RoPE 的向量 k_t^Rq_t,i^R

最终拼接:

复制代码
k_t,i = [k_t,i^C; k_t^R]    # 内容 + 位置
q_t,i = [q_t,i^C; q_t,i^R]  # 内容 + 位置

推理时只需缓存

  • c_t^KV(压缩的 KV 内容,蓝色框)
  • k_t^R(携带 RoPE 的位置键,蓝色框)

相比 MHA 缓存完整的 KV 矩阵,MLA 的 Cache 体积减少高达 93.3%


三、完整数学公式(DeepSeek-V3 技术报告版)

d 为嵌入维度,n_h 为头数,d_h 为每头维度,h_t 为第 t 个 Token 的输入:

KV 侧(推理必须缓存)

复制代码
(1)  c_t^KV = W^DKV · h_t                    # 压缩,W^DKV ∈ R^(d_c × d)
(2)  [k_t,1^C; ...; k_t,nh^C] = W^UK · c_t^KV # Key 解压,W^UK ∈ R^(dh·nh × dc)
(3)  k_t^R = RoPE(W^KR · h_t)                 # 位置键,W^KR ∈ R^(dhR × d),需缓存
(4)  k_t,i = [k_t,i^C; k_t^R]                 # 拼接
(5)  [v_t,1^C; ...; v_t,nh^C] = W^UV · c_t^KV # Value 解压,W^UV ∈ R^(dh·nh × dc)

Query 侧(训练时压缩激活内存,推理时实时计算)

复制代码
(6)  c_t^Q = W^DQ · h_t                      # Query 压缩
(7)  [q_t,1^C; ...] = W^UQ · c_t^Q           # 内容解压
(8)  q_t^R = RoPE(W^QR · c_t^Q)              # 位置部分
(9)  q_t,i = [q_t,i^C; q_t,i^R]              # 拼接

缓存对象 :仅 c_t^KV(维度 d_c)和 k_t^R(维度 d_h^R),合计远小于 MHA 的 2 × d_h × n_h


四、两种工程实现:Naive vs Absorb

MLA 在硬件上有两种落地方式,直接影响 Kernel 设计:

模式 原理 KV Cache 状态 计算特点 适用场景
Naive 先解压 KV 到完整维度,再做标准 Attention 压缩存储,计算前解压 兼容现有 FlashAttention,但需显式上投影 通用 GPU,快速适配
Absorb(权重吸收) 利用矩阵乘法结合律,将 W^UK 吸收进 Q/O 投影,KV 全程保持压缩 全程压缩 需定制 Kernel(FlashMLA/ThunderMLA),Q 维度膨胀但避免解压开销 极致性能,生产环境

Absorb 的数学本质

复制代码
标准:Q·K^T = (W^UQ·c^Q)·(W^UK·c^KV)^T
吸收后:Q·K^T = W^UQ · (c^Q · c^KV^T) · W^UK,T

通过重排计算顺序,KV Cache 永远不需要解压回高维空间。

DeepSeek 官方开源的 FlashMLA 以及 TileKernels 中的 MLA 实现,均采用 Absorb 模式以达到硬件极限性能。


五、硬件性能分析

根据 KU Leuven 的硬件级研究:

指标 MHA MLA (Absorb) 提升
KV Cache 体积 基准 减少 93.3% 内存带宽压力剧降
Decode 阶段强度 Memory-bound Compute-bound 更适合现代 GPU
吞吐量 受限于 HBM 带宽 接近 Tensor Core 算力上限 长序列下 2-5×
能耗效率 高带宽 = 高功耗 低带宽 = 低功耗 同性能下能耗显著降低

关键洞察:MLA 将 Attention 从"内存瓶颈"转变为"计算瓶颈",使 H100/B200 等计算密集型加速器得以充分发挥。


六、与 MHA / GQA / MQA 的对比

机制 KV Cache 大小 注意力容量 性能损失 代表模型
MHA 2·n_h·d_h·L 最高 GPT-4, Llama 2
GQA 2·n_g·d_h·L 中等 轻微 Llama 3, Mistral
MQA 2·d_h·L 最低 明显 PaLM, 早期推理优化
MLA (d_c + d_h^R)·L 接近 MHA 极小 DeepSeek-V2/V3, Kimi K2, LongCat

MLA 的巧妙之处在于:通过低秩解压恢复了 MHA 的表达能力,却只需 MQA 级别的缓存。GQA 是"硬砍头数",MLA 是"软压缩维度"。


七、开源实现

项目 地址 说明
FlashMLA deepseek-ai/FlashMLA DeepSeek 官方开源的高效 MLA CUDA Kernel,Hopper 优化
TileKernels (MLA) deepseek-ai/TileKernels 基于 TileLang 的 MLA 实现,80 行 Python 代码达到 CUTLASS 手写 CUDA 性能
MHA2MLA 论文开源 将现有 MHA 模型(如 Llama)微调转换为 MLA,仅需 0.3%-0.6% 数据
TyphoonMLA arxiv 论文 针对共享前缀优化的混合 Naive-Absorb Kernel

八、后续演进:DeepSeek V4 的 MLA++

DeepSeek V4 在 MLA 基础上进一步压缩:

  1. 共享 K/V:Key 和 Value 完全共享同一份缓存,再省 2×
  2. c4a / c128a 压缩:将多个 Token 的 KV 加权融合为单个压缩 Token(1/4 或 1/128)
  3. 反向 RoPE:对 Attention 输出做逆 RoPE 修正,保证共享后的位置正确性
  4. DSA 稀疏注意力:在压缩后的 KV 上再做动态稀疏选择,百万级上下文可控

综合效果 :1M Token 上下文,V4 的缓存总量从 V3 的约 508 GiB 降至约 58 GiB(8.7× 节省)。


总结

MLA 的本质是"用矩阵分解替代显式存储":通过低秩投影将 K/V 压缩到潜在空间,同时用解耦 RoPE 保住位置精度,让 Transformer 推理从"内存搬运工"变回"计算密集型任务"。

相关推荐
Omics Pro1 小时前
癌症亚型分类新型多组学整合框架
大数据·人工智能·python·算法·机器学习·分类·数据挖掘
Sammyyyyy1 小时前
GLM-5.1 再次刷新上限,这次超过了 Claude Opus 4.6?
人工智能·ai·servbay
做萤石二次开发的哈哈2 小时前
AI+零售 | 萤石荣获2025年度智能零售行业“零智云杯”评选的“卓越标杆企业”奖
人工智能·零售
人工智能AI技术2 小时前
Python 内置数据结构性能对比基础
人工智能
dingzd952 小时前
视频创作工具持续升级跨境社媒内容生产流程如何做轻量化
大数据·人工智能·新媒体运营·市场营销·跨境
程序员夏末2 小时前
【AI Agent | 第七篇】Skill的使用:将经验沉淀成可复用工作流
人工智能·ai·ai agent·skill
天涯明月19932 小时前
QClaw完全指南_AI代理网关架构与多代理管理实战
人工智能·架构·大模型·agent
不会kao代码的小王2 小时前
2026 AI助手新物种:多模型+定时任务+键鼠执行,实测把重复工作全丢给ToDesk AI
人工智能
陈天伟教授2 小时前
Gemma 4 模型-可变分辨率(令牌预算)
人工智能·安全·架构