收费网站空间,英雄联盟手游小程序被投诉,网站建设排名公司,奢侈品回收DeepSeek 系统模型的基本架构仍然基于Transformer框架#xff0c;为了实现高效推理和经济高效的训练#xff0c;DeepSeek 还采用了MLA#xff08;多头潜在注意力)。 MHA#xff08;多头注意力#xff09;通过多个注意力头并行工作捕捉序列特征#xff0c;但面临高计算成本…DeepSeek 系统模型的基本架构仍然基于Transformer框架为了实现高效推理和经济高效的训练DeepSeek 还采用了MLA多头潜在注意力)。 MHA多头注意力通过多个注意力头并行工作捕捉序列特征但面临高计算成本和显存占用MLA多头潜在注意力则通过低秩压缩优化键值矩阵降低显存占用并提高推理效率。
MHA(Muti Head Attention)
多头注意力机制 (MHA)通过多个注意力头并行工作来捕捉序列特征但这种方法会导致计算成本高和显存占用大的问题。并且随着上下文窗口或批量大小的增加多头注意力 (MHA)模型中与 KV 缓存大小相关的内存成本显着增长。
KV Cache 缓存的到底是什么呢
基于 transformer 中的注意力计算公式 预测下一个 token 时其只能看到待预测 token 之前的所有 token故在最终生成整个序列的过程中会涉及到如下计算过程 然后把上面的softmax结果和对应的V值一相乘便可得到 可以很明显的看到上述计算过程中有不少的重复计算比如 K1V1, K2V2, K3V3 等如果序列长度越长类似这样的 KV 计算将越来越多
为了加快推理速度很自然的就想起将这些 KV 对缓存到显存中等到计算时命中了缓存就不用再重复计算了自然也就加快了推理的速度。但是这种以空间换时间的做法就带来了显存消耗巨大的问题如下图所示在模型推理时KV Cache在显存占用量可达30%以上 自此针对于 KV cache 优化的工作也就应运而生了
GQA(Grouped-Query Attention) 、MQA(Muti Query Attention)
GQA是query数不变但多个query(比如2个)组成一个group以共享一个key valueMQA则query也不变但所有query(比如8个)共享一个key、一个value MQA虽然较大降低了KV cache计算量但性能相比MHA下降太多了至于GQA的话则取了个折中不好的是缓存下降的不够多、好的是相比MHA性能没有下降太多
MLA(Multi-head Latent Attent)致力于在推理中降低
MLA 致力于在推理中降低隐层维度而不是直接减少 cache 的数量而是类似 Lora 的方法用多个小矩阵乘法来近似替代大矩阵 对 Key 和 Value 进行了一个低秩联合压缩(即Low-Rank Key-Value Joint Compression通过低秩转换为一个压缩的 KV使得存储的 KV 的维度显著减小在 MHA GQA中大量存在于keys values中的 KV 缓存——带阴影表示到了MLA中时只有一小部分的被压缩Compressed的Latent KV了 MLA的两个部分一部分做压缩、一部分做RoPE编码一文通透DeepSeek V2——通俗理解多头潜在注意力MLA改进MHA从而压缩KV缓存提高推理速度一文中有详细的推导过程可供参考 MLA 先对Q K V的进行压缩先对KV联合压缩后升维再对Q压缩后升维MLA 对 query 和 key 进行 RoPE 编码并对其中的Key位置编码的部分进行 Cache从而在推理时不需要对Key进行位置编码的计算提高了推理效率 参考文献
一文通透DeepSeek V2——通俗理解多头潜在注意力MLA改进MHA从而压缩KV缓存提高推理速度一文搞懂DeepSeek - 多头注意力MHA和多头潜在注意力MLADeepSeek V3推理: MLA与MOE解析一文通透让Meta恐慌的DeepSeek-V3在MoE、GRPO、MLA基础上提出Multi-Token预测(含FP8训练详解)