大数跨境
0
0

详解 DeepSeek:Multi-head Latent Attention(1)

详解 DeepSeek:Multi-head Latent Attention(1) Ethan教跨境电商
2025-10-22
8
导读:详解 DeepSeek 模型中的 Multi-head Latent Attention (1)



01

前言


本文翻译自作者的 Medium 系列文章的第一篇 DeepSeek-V3 Explained 1:Multi-head Latent Attention由于英文原版的篇幅较长,我们将该文翻译为多篇公众号文章,本篇为第一篇,主要介绍背景知识。欢迎感兴趣的读者前往 Medium 阅读英文版。
本系列共8篇文章,分别介绍 DeepSeek 在模型结构和训练方法上的创新,内容全部来自于 DeepSeek 公开发表的论文。
在模型结构方面的创新包括 Multi-head Latent Attention, DeepSeek MoE, auxiliary-loss-free load balancing, 以及 multi-token prediction training.
在训练方法部分,我们将对每个训练阶段进行简要介绍,并对LLM 训练中的应用的强化学习知识进行总结。


02

Decoder-only Transformer 中的多头注意力机制



需要说明的是,MLA 主要用于加速基于自回归机制的文本生成,所以在本文中讨论的MHA 都是基于Decoder-only Transformer而言的。


对 MHA 和 Transformer 模型不熟悉的读者可以参考本公众号往期文章:

详解 Transformer(一):自注意力机制

详解 Transformer(二):Multi-Head Attention

详解 Transformer (三):Positional Encoding


下图中展示了三种用于decoding 的Transformer 模型结构,其中左图中是《Attention Is All You Need》论文中提出的标准 encoder-decoder Trasnformer。其decoding 部分被简化为图(b),并被包括 GPT 在内的多种生成模型所采用。

图(c)中展示的模型结构在(b)的基础上做了进一步优化,采用了pre-norm,并用 RMS Norm替换了LayerNorm。本文的讨论将基于图(c)所示的结构, 其中MHA的计算过程如下图所示。
由于篇幅限制,我们将不再赘述其数学过程,感兴趣的读者可以参考本公众号往期文章。


03


Key-value cache



Key-Value Cache是一种用于加速自回归生成过程的技术。它通过缓存并重用先前的 Key 和 Value,避免在每个解码步骤中重新进行计算,从而显著提高了推理速度。


需要注意的是,KV 缓存通常只在推理阶段使用,因为在训练阶段我们仍然需要并行处理整个输入序列


KV 缓存通常实现为一种滚动缓冲区(rolling buffer)。在每个解码步骤中,模型只需要计算新的 Query,而缓存中保存的 Key 和 Value 会被重复使用。同时,当前新生成的 token 所对应的  K 和  V  也会被追加到缓存中,以供后续步骤使用。


然而,KV 缓存带来的速度提升是以显著的内存开销为代价的。当batch size 较大或序列较长时,这种扩展会造成内存瓶颈。因此,研究者提出了两种技术来缓解这一问题,分别是Multi-Query Attention和Grouped-Query Attention。



04


Multi-Query Attention和Grouped-Query Attention



下图分别比较了原始的MHA, MQA 和GQA。



MQA的基本思想是让所有的query head共享同一个 Key head和同一个 Value head。这种方式能显著减少内存使用,但也会对注意力的精度造成一定影响。


GQA可以被视为介于 MHA 与 MQA 之间的一种插值方法。它让一组query head共享同一组 Key 和 Value head,而不是让所有查询都共享。尽管如此,GQA 的效果通常仍然略逊于 MHA


在后续章节中,我们将看到 MLA(Multi-Head Latent Attention,多头潜变量注意力) 如何更巧妙的平衡内存效率与模型精度。



05


RoPE (Rotary Positional Embeddings)



旋转位置编码RoPE(Rotary Positional Embedding) [11]是近年来在支持长输入序列的模型中较为流行的一种位置编码方法。它通过在多头注意力中利用正弦函数对查询向量(Query)和键向量(Key)进行旋转,从而将位置信息直接融入注意力机制之中。


具体而言,RoPE 在每个 token 的 Query 和 Key 向量上施加一个与位置相关的旋转矩阵。该矩阵以正弦和余弦函数为基础,但采用了一种独特的方式来实现向量的旋转操作,从而在不引入额外参数的情况下,编码相对位置信息。


其中,θ = θ(p) = p ⋅ θ₀,而 θ₀ 是一个基础频率(base frequency)。在我们的一个四维示例中,(x₁, x₂) 这对分量会按照角度 θ₀ 进行旋转,而 (x₃, x₄) 则会按照 2 × θ₀ 的角度旋转。


这也正是为什么我们称其为与位置相关的旋转矩阵(position-dependent rotation matrix):在每一个位置(或每一对分量)上,我们都会应用一个不同的旋转矩阵,而这个旋转矩阵的旋转角度是与这个位置相关的。


RoPE 在现代大型语言模型(LLM)中被广泛使用,因为它在长序列的位置信息编码方面非常高效。但正如上面的公式所示,RoPE 对 Q(Query)和 K(Key) 都具有位置敏感性,这也导致它在某些方面与 MLA(Multi-Head Latent Attention) 存在不兼容之处。



【声明】内容源于网络
0
0
Ethan教跨境电商
跨境分享堂 | 持续更新实用经验
内容 45944
粉丝 1
Ethan教跨境电商 跨境分享堂 | 持续更新实用经验
总阅读245.5k
粉丝1
内容45.9k