Type something to search...
解锁闪电般的推理:Deepseek-v3的多头潜在注意力革命!

解锁闪电般的推理:Deepseek-v3的多头潜在注意力革命!

DeepSeek-V3 解释 1:多头潜在注意力

DeepSeek-V2 和 DeepSeek-V3 背后的关键架构创新,以加快推理速度

这是我们新系列“DeepSeek-V3 解释”的第一篇文章,我们将试图揭开 DeepSeek-V3 [1, 2] 的神秘面纱,这是 DeepSeek 最新开源的模型。

在这个系列中,我们旨在涵盖两个主要主题:

  • DeepSeek-V3 中的主要架构创新,包括 MLA(多头潜在注意力)[3]、DeepSeekMoE [4]、无辅助损失负载均衡 [5] 和多标记预测训练。
  • DeepSeek-V3 的训练,包括预训练、微调和强化学习对齐阶段。

本文主要关注 多头潜在注意力,该概念最早在 DeepSeek-V2 的开发中提出,随后也应用于 DeepSeek-V3。

目录:

  • 背景:我们从标准的 MHA 开始,解释为什么在推理阶段需要键值缓存,MQA 和 GQA 如何尝试优化它,以及 RoPE 的工作原理等。
  • 多头潜在注意力:对 MLA 的深入介绍,包括其动机、为什么需要解耦的 RoPE 以及其性能。
  • 参考文献。

背景

为了更好地理解 MLA,并使本文自成一体,我们将在本节中回顾几个相关概念,然后再深入探讨 MLA 的细节。

解码器仅 Transformer 中的 MHA

请注意,MLA 是为了加速自回归文本生成中的推理速度而开发的,因此我们在此上下文中讨论的 MHA 是针对仅解码器的 Transformer。

下图比较了用于解码的三种 Transformer 架构,其中 (a) 显示了在原始“注意力即一切”论文中提出的编码器和解码器。其解码器部分随后被 [6] 简化,形成了 (b) 中的仅解码器 Transformer 模型,该模型后来被许多生成模型如 GPT [8] 使用。

如今,LLM 更常选择 (c) 中所示的结构,以实现更稳定的训练,对输入应用归一化而不是输出,并将 LayerNorm 升级为 RMS Norm。这将作为我们在本文中讨论的基线架构。

在此上下文中,MHA 计算在很大程度上遵循 [6] 中的过程,如下图所示:

假设我们有 n_h 个注意力头,每个注意力头的维度表示为 d_h,因此连接的维度将是 (h_n · d_h)。

给定一个具有 l 层的模型,如果我们将该层中第 t 个标记的输入表示为 h_t,其维度为 d,我们需要使用线性映射矩阵将 h_t 的维度从 d 映射到 (h_n · d_h)。

更正式地,我们有(来自 [3] 的方程):

其中 W^QW^KW^V 是线性映射矩阵:

在这样的映射之后,q_tk_tv_t 将被分割成 n_h 个头,以计算缩放的点积注意力:

其中 W^O 是另一个投影矩阵,将维度从 (h_n · d_h) 反向映射到 d

请注意,上述 Eqn.(1) 到 (8) 描述的过程仅针对单个标记。在推理过程中,我们需要对每个新生成的标记重复此过程,这涉及大量重复计算。这导致了一种称为键值缓存的技术。

键值缓存

顾名思义,键值缓存是一种旨在通过缓存和重用先前的键和值来加速自回归过程的技术,而不是在每个解码步骤中重新计算它们。

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

KV 缓存通常实现为滚动缓冲区。在每个解码步骤中,仅计算新的查询 Q,而缓存中存储的 K 和 V 将被重用,因此注意力将使用新的 Q 和重用的 K、V 进行计算。同时,新标记的 K 和 V 也将被附加到缓存中以供后续使用。

然而,KV 缓存所带来的加速是以内存为代价的,因为 KV 缓存通常与 batch size × sequence length × hidden size × number of heads 成比例,导致当我们有更大的批量大小或更长的序列时出现内存瓶颈。

这进一步导致了两种旨在解决此限制的技术:多查询注意力和分组查询注意力。

多查询注意力 (MQA) 与分组查询注意力 (GQA)

下图显示了原始 MHA、分组查询注意力 (GQA) [10] 和多查询注意力 (MQA) [9] 之间的比较。

MQA 的基本思想是跨所有查询头共享一个单一的键和一个单一的值头,这可以显著减少内存使用,但也会影响注意力的准确性。

GQA 可以被视为 MHA 和 MQA 之间的一种插值方法,其中一对键和值头仅由一组查询头共享,而不是所有查询。但这仍然会导致与 MHA 相比的结果较差。

在后面的部分中,我们将看到 MLA 如何在内存效率和建模准确性之间寻求平衡。

RoPE(旋转位置嵌入)

我们需要提到的最后一个背景是 RoPE [11],它通过使用正弦函数在多头注意力中直接将位置信息编码到注意力机制中,通过旋转查询和键向量来实现。

更具体地说,RoPE 在每个标记的查询和键向量上应用一个 位置依赖的旋转矩阵,并使用正弦和余弦函数作为其基,但以独特的方式应用以实现旋转。

为了了解什么使其位置依赖,考虑一个只有 4 个元素的玩具嵌入向量,即 (x_1, x_2, x_3, x_4)。

要应用 RoPE,我们首先将连续维度分组为对:

  • (x_1, x_2) -> 位置 1
  • (x_3, x_4) -> 位置 2

然后,我们应用一个旋转矩阵来旋转每一对:

其中 θ = θ(p) = p ⋅ θ_0,θ_0 是一个 基频。在我们 4 维的玩具示例中,这意味着 (x_1, x_2) 将被旋转 θ_0,而 (x_3, x_4) 将被旋转 2 ⋅ θ_0。

这就是为什么我们称这个旋转矩阵为 位置依赖的:在每个位置(或每对)上,我们将应用不同的旋转矩阵,其中旋转角度由位置决定。

由于 RoPE 在编码长序列方面的效率,它在现代 LLM 中被广泛使用,但正如我们从上述公式中看到的,它对 Q 和 K 都是位置敏感的,这在某些方面使其与 MLA 不兼容。

多头潜在注意力

最后,我们可以进入 MLA 部分。在本节中,我们将首先阐述 MLA 的高层次思想,然后深入探讨为什么需要修改 RoPE。最后,我们展示 MLA 的详细算法及其性能。

MLA:高层次思想

MLA 的基本思想是将注意力输入 h_t 压缩为一个低维潜在向量,其维度为 d_c,其中 d_c 远低于原始的 (h_n · d_h)。稍后当我们需要计算注意力时,我们可以将这个潜在向量映射回高维空间以恢复键和值。因此,只需要存储潜在向量,从而显著减少内存。

这个过程可以用以下方程更正式地描述,其中 c^{KV}_t 是潜在向量,W^{DKV} 是将 h_t 的维度从 (h_n · d_h) 映射到 d_c 的压缩矩阵(这里上标 D 代表“下投影”,意味着压缩维度),而 W^{UK}W^{UV} 都是将共享潜在向量映射回高维空间的上投影矩阵。

同样,我们还可以将查询映射到一个潜在的低维向量,然后再映射回原来的高维空间:

为什么需要解耦的 RoPE

正如我们之前提到的,RoPE 是训练生成模型以处理长序列的常见选择。如果我们直接应用上述 MLA 策略,这将与 RoPE 不兼容。

为了更清楚地看到这一点,考虑在使用 Eqn. (7) 计算注意力时会发生什么:当我们将转置的 qk 相乘时,矩阵 W^QW^{UK} 将出现在中间,它们的组合相当于从 d_cd 的单一映射维度。

在原始论文 [3] 中,作者将其描述为 W^{UK} 可以被“吸收”到 W^Q 中,因此我们不需要在缓存中存储 W^{UK},进一步减少内存使用。

然而,当我们考虑图 (4) 中的旋转矩阵时,情况就不同了,因为 RoPE 将在 W^{UK} 的左侧应用一个旋转矩阵,而这个旋转矩阵最终会出现在转置的 W^QW^{UK} 之间。

正如我们在背景部分解释的那样,这个旋转矩阵是位置依赖的,意味着每个位置的旋转矩阵是不同的。因此,W^{UK} 不再能够 被 W^Q 吸收。

为了解决这个冲突,作者提出了他们所称的“解耦的 RoPE”,通过引入额外的查询向量以及一个共享的键向量,仅在 RoPE 过程中使用这些额外的向量,同时保持原始键与旋转矩阵相对“隔离”。

MLA 的整个过程可以总结如下(方程编号重用自 [3] 的附录 C):

其中

  • Eqn. (37) 到 (40) 描述了如何处理查询标记。
  • Eqn. (41) 和 (42) 描述了如何处理键标记。
  • Eqn. (43) 和 (44) 描述了如何使用额外的共享键进行 RoPE,请注意 (42) 的输出 不涉及 RoPE
  • Eqn. (45) 描述了如何处理值标记。

在此过程中,仅需要缓存带框的蓝色变量。这个过程可以通过下面的流程图更清晰地说明:

MLA 的性能

下表比较了 KV 缓存(每个标记)所需的元素数量以及 MHA、GQA、MQA 和 MLA 之间的建模能力,表明 MLA 确实能够在内存效率与建模能力之间取得更好的平衡。

有趣的是,MLA 的建模能力甚至超过了原始 MHA。

更具体地说,下表显示了 MHA、GQA 和 MQA 在 7B 模型上的性能,其中 MHA 明显优于 MQA 和 GQA。

[3] 的作者还对 MHA 与 MLA 进行了分析,结果总结在下表中,其中 MLA 在整体上取得了更好的结果。

参考文献

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...