0. 论文概况
0.1 简介
2024 年 5 月,DeepSeek 发表论文「 DeepSeek-V2:强大、经济且高效的混合专家语言模型 」(DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model) 。
论文介绍了 DeepSeek-V2,一个混合专家(Mixture-of-Experts,MoE)语言模型。DeepSeek-V2 采用多头潜在注意力(MLA)和 DeepSeek 混合专家 (MoE) 的创新架构,在资源利用和性能之间达到很好的平衡。
DeepSeek-V2 采用包括多头潜注意(MLA) 和 DeepSeek MoE 在内的创新架构。MLA 通过将KV缓存显著压缩为潜向量来保证高效推理,而 DeepSeek MoE 通过稀疏计算以经济的成本训练强大的模型。
- 论文标题:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
- 论文地址:https://arxiv.org/pdf/2405.04434
- Github地址:https:github.com/deepseek-ai/DeepSeek-V2
- 主要内容:
- 引入了 多头潜在注意力(MLA),一种配备低秩key-value联合压缩的注意力机制,显著减少了推理过程中的 KV 缓存,从而提高了推理效率。
- 遵循 DeepSeekMoE 架构,该架构采用细粒度专家分割和共享专家隔离,以实现更高效的专业化潜力。
0.2 摘要
DeepSeek-V2 是一个混合专家 (MoE, Mixture-of-Experts) 语言模型,具有训练经济、推理高效的特点。它包含 236B 总参数,其中每个 token 激活 21B,支持 128K tokens 的上下文长度。
DeepSeek-V2 采用包括多头潜在注意(MLA) 和 DeepSeek MoE 在内的创新架构。MLA 通过将KV缓存显著压缩为潜向量来保证高效推理,而 DeepSeek MoE 通过稀疏计算以经济的成本训练强大的模型。
与 DeepSeek 67B 相比,DeepSeek-V2 实现了显著增强的性能,同时节省了 42.5% 的训练成本、减少了 93.3% 的 KV 缓存、并将最大生成吞吐量提升至 5.76 倍。在由 8.1T 标记组成的高质量多源语料库上对 DeepSeek-V2 进行预训练,并进一步执行有监督微调 (SFT) 和强化学习 (RL) 以充分发挥其潜力。
评估结果表明,即使只有 21B 激活参数,DeepSeek-V2 及其聊天版本仍然在开源模型中实现了顶级性能。
模型检查点位于 https://github.com/deepseek-ai/DeepSeek-V2。
3.3 结论
我们介绍了 DeepSeek-V2,一个支持 128K 上下文长度的大型 MoE 语言模型。 除了强大的性能之外,它还具有经济训练和高效推理的特点,这得益于其包括 MLA 和 DeepSeekMoE 在内的创新架构。 实际应用中,与 DeepSeek 67B 相比,DeepSeek-V2 的性能明显增强,同时节省了 42.5% 的训练成本,减少了 93.3% 的 KV 缓存,最大生成吞吐量提升至 5.76 倍。 评估结果进一步表明,仅用21B个激活参数,DeepSeek-V2就达到了开源模型中顶级的性能,成为最强的开源MoE模型。
DeepSeek-V2及其聊天版本具有其他大语言模型中常见的公认局限性,包括预训练后缺乏持续的知识更新、可能生成非事实信息(例如未经验证的建议)以及产生幻觉的机会。 此外,由于我们的数据主要由中文和英文内容组成,因此我们的模型对其他语言的熟练程度可能有限。 中英文以外的场景请谨慎使用。
DeepSeek将以长远的眼光持续投资开源大型模型,旨在逐步接近通用人工智能的目标。
-
在我们不断的探索中,我们致力于设计能够进一步扩展 MoE 模型的方法,同时保持经济的训练和推理成本。 我们下一步的目标是在即将发布的版本中实现与 GPT-4 相当的性能。
-
我们的对齐团队不断努力增强我们的模型,旨在开发一个对全球用户不仅有帮助而且诚实和安全的模型。 我们的最终目标是使模型的价值观与人类价值观保持一致,同时最大限度地减少人类监督的需要。 通过优先考虑道德考虑和负责任的发展,我们致力于为社会创造积极和有益的影响。
-
目前,DeepSeek-V2 专门支持文本模式。 在我们的前瞻性议程中,我们打算使我们的模型能够支持多种模式,增强其在更广泛场景中的多功能性和实用性。
1. 介绍
在过去的几年里,大型语言模型(LLM)(Anthropic,2023;Google,2023,OpenAI,2022022023)经历了快速发展,让我们得以一窥通用人工智能(AGI)的曙光。一般来说,随着参数数量的增加,LLM的智能往往会提高,使其能够在各种任务中表现出应急能力(Wei等人,2022)。然而,这种改进是以用于训练的更大计算资源和推理吞吐量的潜在下降为代价的。这些制约因素带来了重大挑战,阻碍了LLM的广泛采用和利用。为了解决这个问题,我们引入了DeepSeek-V2,这是一种强大的开源混合专家(MoE)语言模型,其特征是通过创新的Transformer架构进行经济训练和高效推理。它配备了总共236B个参数,其中21B为每个令牌激活,并支持128K令牌的上下文长度。
我们利用我们提出的多头潜在注意力(MLA)和DeepSeekMoE优化了Transformer框架内的注意力模块和前馈网络(FFN)(Vaswani等人,2017)。
(1) 在注意力机制的背景下,多头注意力(MHA)的键值(KV)缓存(Vaswani等人,2017)对LLM的推理效率构成了重大障碍。已经探索了各种方法来解决这个问题,包括分组查询注意力(GQA)(Ainslie等人,2023)和多查询注意力(MQA)(Shazeer,2019)。然而,这些方法在试图减少KV缓存时往往会损害性能。为了实现两全其美,我们引入了MLA,这是一种配备低秩键值联合压缩的注意力机制。根据经验,MLA的性能优于MHA,同时显著减少了推理过程中的KV缓存,从而提高了推理效率。
(2) 对于前馈网络(FFN),我们遵循DeepSeekMoE架构(Dai等人,2024),该架构采用细粒度专家分割和共享专家隔离,以提高专家专业化的潜力。与GShard等传统MoE架构相比,DeepSeekMoE架构显示出巨大的优势(Lepikhin等人,2021),使我们能够以经济的成本训练强大的模型。当我们在训练过程中使用专家并行时,我们还设计了补充机制来控制通信开销并确保负载平衡。通过结合这两种技术,DeepSeek-V2同时具有强大的性能(图1(a))、经济的训练成本和高效的推理吞吐量(图1)。
我们构建了一个由8.1T令牌组成的高质量、多源预训练语料库。与DeepSeek 67B(我们之前的版本)(DeepSeek AI,2024)中使用的语料库相比,该语料库的数据量更大,尤其是中文数据,数据质量更高。我们首先在完整的预训练语料库上预训练DeepSeek-V2。然后,我们收集了150万个会话,涵盖了数学、代码、写作、推理、安全等各个领域,为DeepSeek-V2聊天(SFT)执行监督微调(SFT,Supervised Fine Tuning)。最后,我们遵循DeepSeekMath(Shao等人,2024)的方法,采用组相对策略优化(GRPO)来进一步使模型与人类偏好相一致,并生成DeepSeek-V2聊天(RL)。
我们在各种英文和中文基准上评估DeepSeek-V2,并将其与具有代表性的开源模型进行比较。评估结果表明,即使只有21B激活参数,DeepSeek-V2仍然在开源模型中达到了顶级性能,成为最强的开源MoE语言模型。图1(a)突出显示,在MMLU上,DeepSeek-V2仅使用少量激活的参数即可实现一流的性能。此外,如图1(b)所示,与DeepSeek 67B相比,DeepSeek-V2节省了42.5%的训练成本,将KV缓存减少了93.3%,并将最大生成吞吐量提高到5.76倍。我们还对DeepSeek-V2聊天(SFT)和DeepSeek-V2Chat(RL)进行了开放式基准测试。值得注意的是,DeepSeek-V2聊天(RL)在AlpacaEval 2.0上获得了38.9的长度控制胜率(Dubois等人,2024),在MT Bench上获得了8.97的总分(Zheng等人,2023),在AlignBench上达到了7.91的总分(Liu等人,2023年)。英语开放式对话评估表明,DeepSeek-V2 Chat(RL)在开源聊天模型中具有顶级性能。此外,对AlignBench的评估表明,在中文中,DeepSeek-V2 Chat(RL)的表现优于所有开源模型,甚至优于大多数闭源模型。
在本文的其余部分,
- 我们首先详细描述了DeepSeek-V2的模型架构(第2节)。
- 随后,我们介绍了我们的预训练工作,包括训练数据构建、超参数设置、基础设施、长上下文扩展以及模型性能和效率的评估(第3节)。
- 在此之后,我们将展示我们在对齐方面的努力,包括监督微调(SFT)、强化学习(RL)、评估结果和其他讨论(第4节)。
- 最后,我们总结了结论,讨论了DeepSeek-V2的当前局限性,并概述了我们未来的工作(第5节)。
2. 架构
总的来说,DeepSeek-V2 仍处于Transformer架构中(Vaswani等人,2017),其中每个Transformer 块由一个注意力模块和一个前馈网络(FFN)组成。然而,对于注意力模块和FFN,我们设计并采用了创新的架构。我们创新设计了 MLA,它利用低秩键值联合压缩来消除推理时间键值缓存的瓶颈,从而支持高效的推理。对于FFN,我们采用DeepSeekMoE架构(Dai等人,2024),这是一种高性能的MoE架构,能够以经济的成本训练强大的模型。DeepSeek-V2的架构如图2所示,我们将在本节中介绍MLA和DeepSeekMoE的详细信息。对于其他微小细节(例如,FFN中的层归一化和激活函数),除非特别说明,否则DeepSeek-V2遵循DeepSeek 67B的设置(DeepSeek AI,2024)。
2.1 多头潜在注意力:提高推理效率
传统的Transformer模型通常采用多头注意力(MHA)(Vaswani等人,2017),但在生成过程中,其繁重的键值(KV)缓存将成为限制推理效率的瓶颈。为了减少KV缓存,提出了多查询注意力(MQA)(Shazeer,2019)和分组查询注意力(GQA)(Ainslie等人,2023)。它们需要较小规模的KV缓存,但其性能与MHA不匹配(我们在附录C.1中提供了MHA、GQA和MQA的消融)。
对于DeepSeek-V2,我们设计了一种创新的注意力机制,称为多头潜在注意力(MLA)。配备低秩键值联合压缩,MLA的性能优于MHA,但需要的KV缓存量要少得多。我们将在下文中介绍其架构,并在附录C.2中提供MLA和MHA之间的比较。
2.1.1 初步准备:标准多头注意力
我们首先介绍标准 多头注意力(MHA)机制作为背景。设 𝑑 为嵌入尺寸, n h n_h nh 是注意头的数量, d h d_h dh 是每个头部的维度, h t ∈ R d h_t \in R^d ht∈Rd 是注意力层第 𝑡 个标记的注意力输入。标准 MHA 首先产生 q t , k t , v t ∈ R d h , n h q_t, k_t, v_t \in R^{d_h, n_h} qt,kt,vt∈Rdh,nh,分别为:
然后, q t , k t , v t q_t, k_t, v_t qt,kt,vt 将被切成 n h n_h nh个头部,用于多头注意力计算:
其中, q t , i , k t , i , v t , i ∈ R d h q_{t,i}, k_{t,i}, v_{t,i} \in R^{d_h} qt,i,kt,i,vt,i∈Rdh 分别表示第 i i i 个注意头的查询、关键字和值; W o ∈ R d ∗ d h n h W^o \in R^{d*d_h n_h} Wo∈Rd∗dhnh 表示输出投影矩阵。在推理过程中,需要缓存所有键和值以加速推理,因此多头注意力需要为每个令牌缓存 2 n h d h l 2n_hd_hl 2nhdhl。在模型部署中,这种繁重的 Key-Value 缓存是一个很大的瓶颈,限制了最大批处理大小和序列长度。
2.1.2 低阶键值联合压缩
多头潜在注意力(MLA)的核心是对键和值进行低秩联合压缩,以减少 Key-Value 缓存:
其中
c
t
K
V
∈
R
d
c
c^{KV}_t \in R^{d_c}
ctKV∈Rdc 是 Key-Value 的压缩潜在向量;
d
c
(
<
<
d
h
n
h
)
d_c(<<d_hn_h)
dc(<<dhnh) 表示 Key-Value 的压缩尺寸;
W
D
K
V
∈
R
d
c
∗
d
W^{DKV} \in R^{d_c*d}
WDKV∈Rdc∗d 是向下投影矩阵;
W
U
K
,
W
U
V
∈
R
d
h
n
h
∗
d
c
W^{UK}, W^{UV} \in R^{d_hn_h*d_c}
WUK,WUV∈Rdhnh∗dc是向上投影矩阵。在推理过程中,MLA只需要缓存
C
t
K
V
C_t^{KV}
CtKV,因此其 Key-Value 缓存只有
d
c
l
d_c l
dcl 元素,其中
l
l
l 表示层数。此外,在推理过程中,由于
W
U
K
W^{UK}
WUK 可以被
W
Q
W^Q
WQ 吸收,
W
U
V
W^{UV}
WUV 可以被
W
O
W^O
WO 吸收,我们甚至不需要计算出 Key-Value 来获得注意力。图3直观地说明了MLA中的 Key-Value 联合压缩如何减少 Key-Value缓存。此外,为了减少训练过程中的激活内存,我们还对查询进行了低秩压缩,即使它不能减少KV缓存:
其中,
c
t
Q
∈
R
d
c
′
c_t^Q \in R^{d'_c}
ctQ∈Rdc′ 是查询的压缩潜在向量,
d
c
′
(
<
<
d
h
n
h
)
d'_c(<<d_hn_h)
dc′(<<dhnh)表示查询压缩维度,
W
D
Q
,
W
U
Q
W^{DQ}, W^{UQ}
WDQ,WUQ 分别是查询的下投影矩阵和上投影矩阵。
2.1.3 解耦旋转位置嵌入(RoPE)
继DeepSeek 67B(DeepSeek AI,2024)之后,我们打算在DeepSeek-V2中使用 旋转位置嵌入(RoPE)(Su等人,2024年)。然而,RoPE 与低秩 KV 压缩不兼容。具体来说,RoPE对键和查询都是位置敏感的。如果我们对密钥 k t C k^C_t ktC 应用RoPE,方程10 中的 W U K W^{UK} WUK 将与位置敏感的 RoPE 矩阵耦合。这样,在推理过程中, W U K W^{UK} WUK 就不能再被 W Q W^Q WQ 吸收,因为与当前生成的令牌相关的RoPE基质将位于 W Q W^Q WQ 和 W U K W^{UK} WUK 之间,并且矩阵乘法不遵守交换律律。因此,在推理过程中,我们必须重新计算所有前缀令牌的密钥,这将大大降低推理效率。
作为一种解决方案,我们提出了解耦的 RoPE 策略,该策略使用额外的多头查询 q t , i R ∈ R d h R q^R_{t,i} \in R^{d^R_h} qt,iR∈RdhR 以及一个用于携带RoPE 的共享密钥 k t R ∈ R d h R k^R_t \in R^{d^R_h} ktR∈RdhR,其中 d h R d^R_h dhR 表示解耦查询和密钥的每头维度。配备解耦 RoPE 策略,MLA 执行以下计算:
其中,
W
Q
R
∈
R
d
h
R
n
h
∗
d
c
′
W^{QR} \in R^{d^R_h n_h*d'_c}
WQR∈RdhRnh∗dc′ 、
W
K
R
∈
R
d
h
R
∗
d
W^{KR} \in R^{d^R_h *d}
WKR∈RdhR∗d 分别是产生解耦查询和密钥的矩阵;RoPE(·) 表示应用RoPE矩阵的运算;[·;·] 表示级联操作。在推理过程中,解耦键也应被缓存。因此,DeepSeek-V 2需要一个包含
(
d
c
+
d
h
R
)
l
(d_c + d^R_h) l
(dc+dhR)l 元素的总 KV 缓存。
为了演示MLA的完整计算过程,我们还在附录B中组织并提供了其完整的公式。
2.1.4 键值缓存比较
我们在表1中展示了不同注意力机制之间每个令牌的KV缓存的比较。MLA只需要少量的KV缓存,相当于GQA只有2.25个组,但可以实现比MHA更强的性能。
2.2 DeepSeekMoE:以经济的成本训练强大的模型
DeepSeekMoE 通过细分专家和共享专家,提高了模型的性能和经济性。
2.2.1 基本架构
对于FFN,我们采用DeepSeekMoE架构(Dai等人,2024)。DeepSeekMoE有两个关键思想:将专家细分为更细粒度的专家,以实现更高的专家专业化和更准确的知识获取,以及隔离一些共享专家,以减少路由专家之间的知识冗余。在激活参数和总专家参数数量相同的情况下,DeepSeekMoE可以大大优于GShard等传统MoE架构(Lepikhin等人,2021)。
设 u t u_t ut为第 t t t 个令牌的 FFN 输入,我们计算FFN输出 h t ′ h'_t ht′ 如下:
其中
N
s
N_s
Ns 和
N
r
N_r
Nr 分别表示共享专家和路由专家的数量;
F
F
N
i
(
s
)
(
⋅
)
FFN_i^{(s)} (·)
FFNi(s)(⋅)和
F
F
N
i
(
r
)
(
⋅
)
FFN_i^{(r)} (·)
FFNi(r)(⋅) 分别表示第
i
i
i 个共享专家和第
i
i
i 个路由专家;
K
r
K_r
Kr 表示激活的路由专家的数量;
g
i
,
t
g_{i,t}
gi,t 是第
i
i
i 位专家的门值;
s
i
,
t
s_{i,t}
si,t代表与专家的亲和力;
e
i
e_i
ei 是该层中第
i
i
i 个路由专家的质心;
T
o
p
k
(
⋅
,
K
)
Topk(·,K)
Topk(⋅,K)表示在为第
t
t
t个令牌和所有路由专家计算的亲和力得分中,包含
K
K
K个最高得分的集合。
2.2.2 设备限制路由
我们设计了一种设备受限的路由机制,以限制MoE相关的通信成本。当采用专家并行时,路由的专家将分布在多个设备上。对于每个令牌,其与MoE相关的通信频率与其目标专家覆盖的设备数量成正比。由于DeepSeekMoE中的细粒度专家分割,激活的专家数量可能很大,因此如果我们应用专家并行性,与MoE相关的通信成本将更高。
对于DeepSeek-V2,除了简单的前 K 名路由专家外,我们还确保每个令牌的目标专家将分布在最多 M M M台设备上。具体来说,对于每个令牌,我们首先选择 M M M 台设备,这些设备中有亲和力得分最高的专家。然后,我们在这 M M M 台设备的专家中进行前 K名的选择。在实践中,我们发现当 M ≥ 3 M \ge 3 M≥3时,设备受限路由可以实现与不受限制的 t o p − K top-K top−K 路由大致一致的良好性能。
2.2.3 辅助损失
我们在自动学习路由策略时考虑了负载平衡。首先,不平衡的负载会增加路由崩溃的风险(Shazeer等人,2017),使一些专家无法得到充分的培训和利用。其次,当采用专家并行时,不平衡的负载会降低计算效率。
在DeepSeek-V2的训练过程中,我们设计了三种辅助损耗,分别用于控制专家级负载平衡( L E x p B a l L_{ExpBal} LExpBal)、设备级负载均衡( L D e v B a l L_{DevBal} LDevBal)和通信均衡( L C o m m B a l L_{CommBal} LCommBal)。
- 专家级平衡损失:使用专家级平衡损失(Fedus等人,2021;Lepikhin等人,2021)来降低路由崩溃的风险:
-
设备级平衡损失:我们还设计了一个设备级平衡损失,以确保不同设备之间的平衡计算。在DeepSeek-V2的训练过程中,我们将所有路由专家分为组 { E 1 , E 2 , … , E D } \{ E_1, E_2, …, E_D\} {E1,E2,…,ED}, 并将每个组部署在单个设备上。设备级平衡损失计算如下:
-
通信平衡损失:最后,我们引入了通信平衡损耗,以确保每个设备的通信平衡。
虽然设备受限路由机制保证了每个设备的发送通信是有界的,但如果某个设备接收到的令牌比其他设备多,实际通信效率也会受到影响。为了缓解这个问题,我们设计了一个通信平衡损失,如下所示:
2.2.4 令牌丢弃策略
虽然平衡损耗旨在鼓励平衡负载,但重要的是要承认它们不能保证严格的负载平衡。为了进一步减少不平衡负载造成的计算浪费,我们在训练过程中引入了一种设备级令牌丢弃策略。这种方法首先计算每个设备的平均计算预算,这意味着每个设备的容量系数等于1.0。然后,受Riquelme等人(2021)的启发,我们在每个设备上丢弃亲和力得分最低的令牌,直到达到计算预算。此外,我们确保属于大约10%训练序列的令牌永远不会被丢弃。这样,我们可以根据效率要求灵活决定是否在推理过程中丢弃令牌,并始终确保训练和推理之间的一致性。
3. 预训练
3.1 实验设置
3.1.1 数据结构
在保持与DeepSeek 67B(DeepSeek AI,2024)相同的数据处理阶段的同时,我们扩展了数据量并提高了数据质量。为了扩大我们的预训练语料库,我们深入研究了互联网数据的潜力,并优化了我们的清理过程,从而恢复了大量被错误删除的数据。此外,我们还纳入了更多的中文数据,旨在更好地利用中国互联网上可用的语料库。除了数据量,我们还关注数据质量。我们用来自各种来源的高质量数据丰富了我们的预训练语料库,同时改进了基于质量的过滤算法。改进后的算法确保了大量无益的数据将被删除,而有价值的数据将大部分保留。此外,我们从预训练语料库中过滤出有争议的内容,以减轻特定地区文化带来的数据偏见。附录D详细讨论了这种过滤策略的影响。
我们采用与DeepSeek 67B中使用的相同的标记器,该标记器基于字节级字节对编码(BBPE)算法构建,词汇量为100K。我们的标记化预训练语料库包含8.1T个标记,其中中文标记比英文标记多约12%。
3.1.2 超参数
-
模型超参数。
我们将Transformer层的数量设置为60,隐藏维度设置为5120。所有可学习的参数都以0.006的标准偏差随机初始化。在MLA中,我们将注意力头的数量 n h n_h nh 设置为128,每个头的尺寸 d h d_h dh 设置为128。KV压缩维度 d c d_c dc 设置为512,查询压缩维度 d c ′ d'_c dc′ 设置为1536。对于解耦的查询和键,我们将每头维度 d h R d^R_h dhR 设置为64。根据Dai等人(2024)的研究,我们将除第一层外的所有FFN替换为MoE层。每个MoE层由2个共享专家和160个路由专家组成,其中每个专家的中间隐藏维度为1536。在路由专家中,每个令牌将激活6名专家。此外,低秩压缩和细粒度专家分割将影响层的输出规模。因此,在实践中,我们在压缩的潜在向量之后使用额外的RMS范数层,并在宽度瓶颈处(即压缩的潜在矢量和路由专家的中间隐藏状态)乘以额外的缩放因子,以确保稳定的训练。在这种配置下,DeepSeek-V2包括236B个总参数,其中21B针对每个令牌被激活。 -
训练超参数。
我们使用AdamW优化器(Loshchilov和Hutter,2017),将超参数设置为 β 1 = 0.9 \beta_1=0.9 β1=0.9, β 2 = 0.95 \beta_2=0.95 β2=0.95,并且weight_decay=0.1。学习率是使用预热和逐步衰减策略来安排的(DeepSeek AI,2024)。最初,在前2K个步骤中,学习率从0线性增加到最大值。随后,在训练了约60%的令牌后,学习率乘以0.316,在训练约90%的令牌后再次乘以0.316。最大学习率设置为 2.4 × 1 0 − 4 2.4×10^{−4} 2.4×10−4,梯度裁剪范数设置为1.0。我们还使用批量大小调度策略,在前225B个令牌的训练中,批量大小从2304逐渐增加到9216,然后在剩余的训练中保持9216。我们将最大序列长度设置为4K,并在8.1T令牌上训练DeepSeek-V2。我们利用流水线并行性将模型的不同层部署在不同的设备上,对于每一层,路由专家将统一部署在8台设备上(𝐷=8)。对于设备受限的路由,每个令牌最多将发送到3台设备(M=3)。对于余额损失,我们将 KaTeX parse error: Undefined control sequence: \alfa at position 1: \̲a̲l̲f̲a̲_1设置为0.003,KaTeX parse error: Undefined control sequence: \alfa at position 1: \̲a̲l̲f̲a̲_2为0.05,KaTeX parse error: Undefined control sequence: \alfa at position 1: \̲a̲l̲f̲a̲_3为0.02。我们在加速训练期间采用令牌丢弃策略,但不会丢弃任何令牌进行评估。
3.1.3 基础设施
DeepSeek-V2基于HAI-LLM框架(High flyer,2023)进行训练,这是一个由我们的工程师内部开发的高效、轻量级的训练框架。它采用了16路零气泡管道并行性(Qi等人,2023)、8路专家并行性(Lepikhin等人,2021)和zero-1数据并行性(Rajbhandari等人,2020)。鉴于DeepSeek-V2的激活参数相对较少,并且部分运算符被重新计算以节省激活内存,因此可以在不需要张量并行性的情况下对其进行训练,从而降低通信开销。此外,为了进一步提高训练效率,我们将共享专家的计算与专家并行全对全通信重叠。我们还为不同专家的通信、路由算法和融合线性计算定制了更快的CUDA内核。此外,MLA还基于FlashAttention-2的改进版本进行了优化(Dao,2023)。
我们在配备NVIDIA H800 GPU的集群上进行所有实验。H800集群中的每个节点都包含8个使用节点内的NVLink和NVSwitch连接的GPU。在节点之间,利用InfiniBand互连来促进通信。
3.1.4 长上下文扩展
在DeepSeek-V2的初始预训练之后,我们使用YaRN(Peng等人,2023)将默认上下文窗口长度从4K扩展到128K。YaRN专门应用于解耦共享密钥 k t R k^R_t ktR,因为它负责承载 RoPE(Su等人,2024)。对于YaRN,我们将刻度 s s s 设置为40,KaTeX parse error: Undefined control sequence: \alfa at position 1: \̲a̲l̲f̲a̲ 设为1,𝛽 设为 32,目标最大上下文长度为160K。在这些设置下,我们可以预期模型对128K的上下文长度响应良好。与原始的YaRN略有不同,由于我们独特的注意力机制,我们调整了长度缩放因子来调节注意力熵。系数 t \sqrt{t} t 计算为 t = 0.0707 l n s + 1 \sqrt{t} =0.0707 ln s +1 t =0.0707lns+1,旨在尽量减少困惑。
我们还对模型进行了1000步的训练,序列长度为32K,批量大小为576个序列。尽管训练仅在32K的序列长度下进行,但当在128K的上下文长度下进行评估时,该模型仍表现出稳健的性能。如图4所示,“Needle in A Haystack”(NIAH)测试的结果表明,DeepSeek-V2在高达128K的所有上下文窗口长度上都表现良好。
3.2 评估
3.2.1 评估基准
DeepSeek-V2是在双语语料库上预训练的,因此我们在一系列英语和汉语的基准上对其进行了评估。我们的评估基于我们整合在HAI-LLM框架中的内部评估框架。所包含的基准分类如下,其中下划线基准为中文:
- 多学科多项选择数据集包括MMLU(Hendrycks等人,2020)、C-Eval(Huang等人,2023)和CMMLU(Li等人,2023年)。
- 语言理解和推理数据集包括HellaSwag(Zellers等人,2019)、PIQA(Bisk等人,2020)、ARC(Clark等人,2018)和BigBench Hard(BBH)(Suzgun等人,2022)。
- 封闭式问答数据集包括TriviaQA(Joshi等人,2017)和NaturalQuestions(Kwiatkowski等人,2019)。
- 阅读理解数据集包括RACE Lai等人(2017年)、DROP(Dua等人,2019年)、C3(Sun等人,2019)和CMRC(Cui等人,2018年)。
- 参考消歧数据集包括WanoGrande Sakaguchi等人(2019)和CLUEWSC(Xu等人,2020)。
- 语言建模数据集包括Pile(Gao等人,2020)。
- 中国理解和文化数据集包括CHID(Zheng等人,2019)和CCPM(Li等人,2021)。
- 数学数据集包括GSM8K(Cobbe等人,2021年)、Math(Hendrycks等人,2021)和CMath(Wei等人,2023年)。
- 代码数据集包括HumanEval(Chen等人,2021年)、MBPP(Austin等人,2021)和CRUXEval(Gu等人,2024年)。
- 标准化检查包括AGIEval(Zhong等人,2023)。请注意,AGIEval包括英文和中文子集。
根据我们之前的工作(DeepSeek AI,2024),我们对HellaSwag、PIQA、WinoGrand、RACE Middle、RACE High、MMLU、ARC Easy、ARC Challenge、CHID、C-Eval、CMMLU、C3和CCPM等数据集采用基于困惑度的评估,并对TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、HumanEval、MBPP、CRUXEval、BBH、AGIEval、CLUEWSC、CMRC和CMath采用基于生成的评估。此外,我们对桩测试进行了基于语言建模的评估,并使用每字节比特数(BPB)作为指标,以确保具有不同标记器的模型之间的公平比较。
为了直观地了解这些基准,我们在附录F中还提供了每个基准的评估格式。
3.2.2 评估结果
在表2中,我们将DeepSeek-V2与几个具有代表性的开源模型进行了比较,包括DeepSeek 67B(DeepSeek AI,2024)(我们之前的版本)、Qwen1.5 72B(Bai等人,2023)、LLaMA3 70B(AI@Meta2024)和混音器8x22B(米斯特拉尔,2024)。我们使用内部评估框架评估所有这些模型,并确保它们共享相同的评估设置。总体而言,在只有21B个激活参数的情况下,DeepSeek-V2在几乎所有基准测试中都明显优于DeepSeek 67B,并在开源模型中实现了顶级性能。
此外,我们详细地逐一比较了DeepSeek-V2与其开源版本。
- 与Qwen1.5 72B(另一种支持中英文的模型)相比,DeepSeek-V2在大多数英语、代码和数学基准测试中显示出压倒性的优势。至于中国的基准测试,Qwen1.572B在多学科多项选择任务上表现更好,而DeepSeek-V2在其他任务上表现相当或更好。请注意,对于CHID基准,Qwen1.5 72B的标记器将在我们的评估框架中遇到错误,因此我们将Qwen1.572B的CHID分数留空。
- 与Mixtral 8x22B相比,DeepSeek-V2的英语表现相当或更好,除了与英语常识知识密切相关的TriviaQA、NaturalQuestions和HellaSwag。值得注意的是,DeepSeek-V2在MMLU上的表现优于Mixtral 8x22B。在代码和数学基准测试中,DeepSeek-V2的性能与Mixtral 8x22B相当。由于Mixtral 8x22B没有专门针对中国数据进行训练,其中国能力远远落后于DeepSeek-V2。
- 与LLaMA3 70B相比,DeepSeek-V2在不到四分之一的英语令牌上进行了训练。因此,我们承认DeepSeek-V2在基本英语能力方面与LLaMA3 70B仍存在轻微差距。然而,即使训练令牌和激活参数少得多,DeepSeek-V2仍然表现出与LLaMA3 70B相当的代码和数学能力。此外,作为一种双语语言模型,DeepSeek-V2在中国基准测试中的表现远远优于LLaMA3 70B。
最后,值得一提的是,某些先前的研究(Hu等人,2024)在预训练阶段纳入了SFT数据,而DeepSeek-V2在预训练期间从未接触过SFT数据。
3.2.3 训练和推理效率
-
训练费用。
由于DeepSeek-V2为每个令牌激活的参数较少,需要的FLOP也比DeepSeek 67B少,因此理论上训练DeepSeek-V2比训练DeepSeek 67/B更经济。尽管训练MoE模型会引入额外的通信开销,但通过我们的操作员和通信优化,DeepSeek-V2的训练可以获得相对较高的模型FLOP利用率(MFU)。在H800集群上的实际训练中,对于每万亿个令牌的训练,DeepSeek 67B需要300.6K GPU小时,而DeepSeek-V2只需要172.8K GPU小时。 -
推理效率。
为了高效地部署DeepSeek-V2进行服务,我们首先将其参数转换为FP8的精度。此外,我们还对DeepSeek-V2执行KV缓存量化(Hooper et al.,2024;赵et al.,2023),以进一步将其KV缓存中的每个元素平均压缩为6位。
受益于MLA和这些优化,实际部署的DeepSeek-V2需要的KV缓存比DeepSeek 67B少得多,因此可以处理更大的批处理大小。我们根据实际部署的DeepSeek 67B服务的提示和生成长度分布来评估DeepSeek-V2的生成吞吐量。
在配备8个H800 GPU的单个节点上,DeepSeek-V2的生成吞吐量超过每秒50K个令牌,是DeepSeek 67B最大生成吞吐量的5.76倍。此外,DeepSeek-V2的即时输入吞吐量超过每秒10万个令牌。
4. 对齐
4.1 监督微调
基于我们之前的研究(DeepSeek AI,2024),我们策划了我们的指令调优数据集,其中包括150万个实例,包括120万个有用实例和30万个安全实例。与初始版本相比,我们提高了数据质量,以减轻幻觉反应并提高写作水平。我们用2个epoch对DeepSeek-V2进行微调,学习率设置为5×10−6。对于DeepSeek-V2聊天(SFT)的评估,我们主要包括基于生成的基准测试,除了几个代表性的多项选择任务(MMLU和ARC)。我们还对DeepSeek-V2聊天(SFT)进行了指令跟踪评估(IFEval)(Zhou等人,2023),使用提示级别的松散精度作为指标。此外,我们在2023年9月1日至2024年4月1日期间使用LiveCodeBench(Jain等人,2024)问题来评估聊天模型。除了标准基准之外,我们还进一步评估了我们的开放式对话基准模型,包括MT Bench(Zheng等人,2023)、AlpacaEval 2.0(Dubois等人,2024)和AlignBench(Liu等人,2023年)。为了进行比较,我们还在我们的评估框架和设置中评估了Qwen1.5 72B聊天、LLaMA-3-70B指令和Mistral-8x22B指令。至于DeepSeek 67B聊天,我们直接参考了我们之前版本中报告的评估结果。
4.2 强化学习
为了进一步释放 DeepSeek-V2的潜力并使其与人类偏好保持一致,我们进行了强化学习(RL)来调整其偏好。
强化学习算法
为了节省强化学习的训练成本,我们采用了组相对策略优化(GRPO)(Shao等人,2024),它放弃了通常与策略模型大小相同的批评模型,而是根据组分数估计基线。具体来说,对于每个问题
q
q
q,GRPO 从旧策略中采样一组输出
{
o
1
,
o
2
,
⋅
⋅
,
o
G
}
\{o_1, o_2,··,o_G\}
{o1,o2,⋅⋅,oG},然后通过最大化以下目标来优化策略模型:
其中𝜀和𝛽是超参数; A i A_i Ai是优势,使用与每个组内的输出对应的一组奖励 { r 1 , r 2 , … , r G } \{r_1, r_2,…,r_G \} {r1,r2,…,rG}计算得出:
训练策略。
在我们的初步实验中,我们发现对推理数据(如代码和数学提示)的强化学习训练表现出与一般数据训练不同的独特特征。例如,我们模型的数学和编码能力可以在更长的训练步骤中不断提高。
因此,我们采用两阶段强化学习训练策略,首先进行推理对齐,然后进行人类偏好对齐。
-
在第一阶段 推理对齐,我们为 R M r e a s o n i n g RM_{reasoning} RMreasoning 代码和数学推理任务训练一个奖励模型,并根据以下 R M r e a s o n i n g RM_{reasoning} RMreasoning 反馈优化策略模型:
-
在第二阶段人类偏好对齐,我们采用了一个多奖励框架,该框架从一个有用的奖励模型中获得奖励 R M h e l p f u l RM_{helpful} RMhelpful , 安全奖励模型 R M s a f e t y RM_{safety} RMsafety,以及基于规则的奖励模型 R M r u k e RM_{ruke} RMruke。响应的最终奖励为:
其中,
c
1
c_1
c1,
c
2
c_2
c2,
c
3
c_3
c3 是相应的系数。
为了获得在RL训练中起关键作用的可靠奖励模型,我们仔细收集偏好数据,并精心进行质量过滤和比例调整。我们基于编译器反馈获得代码偏好数据,基于地面真值标签获得数学偏好数据。对于奖励模型训练,我们使用DeepSeek-V2 Chat(SFT)初始化奖励模型,并使用逐点或成对损失对其进行训练。在我们的实验中,我们观察到强化学习训练可以充分挖掘和激活我们模型的潜力,使其能够从可能的反应中选择正确和令人满意的答案。
优化训练效率。
在超大模型上进行RL训练对训练框架提出了很高的要求。它需要仔细的工程优化来管理GPU内存和RAM压力,同时保持快速的训练速度。为了实现这一目标,我们实施了以下工程优化。(1) 首先,我们提出了一种混合引擎,该引擎分别采用不同的并行策略进行训练和推理,以实现更高的GPU利用率。(2) 其次,我们利用具有大批量的vLLM(Kwon等人,2023)作为我们的推理后端来加速推理速度。(3) 第三,我们精心设计了一种调度策略,用于将模型卸载到CPU并将模型加载回GPU,从而在训练速度和内存消耗之间实现了近乎最优的平衡。
4.3 评估结果
标准基准评估。
最初,我们在标准基准上评估DeepSeek-V2聊天(SFT)和DeepSeek-V2Chat(RL)。值得注意的是,与基本版本相比,DeepSeek-V2聊天(SFT)在GSM8K、MATH和HumanEval评估方面有了实质性的改进。这一进展可归因于我们纳入了SFT数据,其中包含了大量与数学和代码相关的内容。此外,DeepSeek-V2 Chat(RL)进一步提高了数学和代码基准测试的性能。我们在附录E中显示了更多的代码和数学评估。
至于与其他模型的比较,我们首先将DeepSeek-V2 Chat(SFT)与Qwen1.5 72B Chat进行了比较,发现DeepSeek-V2Chat(SFP)在几乎所有的英语、数学和代码基准测试中都超过了Qwen1.572B聊天。在中国基准测试中,DeepSeek-V2 Chat(SFT)在多主题多项选择任务上的得分略低于Qwen1.5 72B Chat,这与从其基础版本中观察到的表现一致。与最先进的开源MoE模型Mixtral 8x22B Instruct相比,DeepSeek-V2 Chat(SFT)在大多数基准测试中表现出更好的性能,NaturalQuestions和IFEval除外。此外,与最先进的开源模型LLaMA3 70B Chat相比,DeepSeek-V2 Chat(SFT)在代码和数学相关基准测试中显示出类似的性能。
LLaMA3 70B Chat在MMLU和IFEval上表现更好,而DeepSeek-V2 Chat(SFT)在中文任务上表现更好。最终,与DeepSeek-V2 Chat(SFT)相比,DeepSeek-V2Chat(RL)在数学和编码任务中的性能得到了进一步的提升。这些比较突出了DeepSeek-V2聊天在各个领域和语言中与其他语言模型的优势。
对开放式生成的评估。
我们继续在开放式对话基准上对我们的模型进行额外评估。对于英语开放式会话生成,我们使用MT Bench和AlpacaEval 2.0作为基准。表4中的评估结果表明,DeepSeek-V2聊天(RL)比DeepSeek-V2Chat(SFT)具有显著的性能优势。这一结果展示了我们的强化学习培训在提高一致性方面的有效性。与其他开源模型相比,DeepSeek-V2 Chat(RL)在两个基准测试中都表现出了优于Mistral 8x22B Instruct和Qwen1.5 72B Chat的性能。与LLaMA3 70B Instruct相比,DeepSeek-V2 Chat(RL)在MT Bench上表现出色,在AlpacaEval 2.0上表现明显优于它。这些结果突显了DeepSeek-V2 Chat(RL)在生成高质量和上下文相关的响应方面的强大性能,特别是在基于指令的对话任务中。
此外,我们基于AlignBench评估了中国的开放式发电能力。如表5所示,DeepSeek-V2聊天(RL)相较于DeepSeek-V2聊天(SFT)具有轻微优势。值得注意的是,DeepSeek-V2聊天(SFT)远远超过了所有开源的中国模式。它在中文推理和语言方面都明显优于第二好的开源模型Qwen1.5 72B Chat。此外,DeepSeek-V2聊天(SFT)和DeepSeek-V2聊天(RL)的表现均优于GPT-4-0613和ERNIEBot 4.0,巩固了我们的模型在支持中文的顶级LLM中的地位。具体来说,DeepSeek-V2 Chat(RL)在中文理解方面表现出色,其表现优于包括GPT-4-Turbo-1106Preview在内的所有模型。另一方面,DeepSeek-V2 Chat(RL)的推理能力仍然落后于Erniebot-4.0和GPT-4s等大型模型。
4.4 讨论
-
SFT数据量。
围绕大型SFT语料库的必要性的讨论一直是激烈争论的话题。之前的研究(Young等人,2024;Zhou等人,2024)认为,不到1万个SFT数据实例就足以产生令人满意的结果。然而,在我们的实验中,如果我们使用的实例少于10K,我们观察到IFEval基准的性能会显著下降。一种可能的解释是,语言模型需要一定数量的数据来培养特定的技能。虽然所需的数据量可能会随着模型大小的增加而减少,但不能完全消除。我们的观察强调,迫切需要足够的数据来为LLM提供所需的能力。此外,SFT数据的质量也至关重要,特别是对于涉及写作或开放式问题的任务。 -
强化学习的对齐成本。
在人类偏好对齐过程中,我们观察到,就人工智能和人类评估者的评分而言,开放式生成基准的性能显著提高。然而,我们也注意到了一种“对齐税”现象(欧阳等人,2022),即对齐过程会对BBH等一些标准基准的性能产生负面影响。为了减轻对齐税,在RL阶段,我们在数据处理和改进培训策略方面做出了重大努力,最终在标准和开放式基准的性能之间实现了可容忍的权衡。探索如何在不损害其总体性能的情况下使模型与人类偏好相一致,为未来的研究提供了一个有价值的方向。 -
在线强化学习。
在我们的偏好对齐实验中,我们发现在线方法明显优于离线方法。因此,我们投入了巨大的努力来实现一个在线RL框架,以对齐DeepSeek-V2。关于在线或离线偏好对齐的结论在不同的情况下可能会有所不同,我们将在未来的工作中对它们进行更彻底的比较和分析。
5. 结论,局限和未来的工作
本文介绍了DeepSeek-V2,这是一个支持128K上下文长度的大型MoE语言模型。除了强大的性能外,它还具有经济训练和高效推理的特点,这得益于其创新的架构,包括MLA和DeepSeekMoE。
在实践中,与DeepSeek 67B相比,DeepSeek-V2的性能明显更强,同时节省了42.5%的训练成本,将KV缓存减少了93.3%,并将最大生成吞吐量提高到5.76倍。评估结果进一步表明,在只有21B激活参数的情况下,DeepSeek-V2在开源模型中达到了顶级性能,成为最强的开源MoE模型。
DeepSeek-V2及其聊天版本具有其他LLM中常见的公认局限性,包括在预训练后缺乏持续的知识更新,生成未经证实的建议等非事实信息的可能性,以及产生幻觉的机会。此外,由于我们的数据主要由中文和英文内容组成,我们的模型可能对其他语言的熟练程度有限。在中英文之外的场景中,应谨慎使用。
DeepSeek将持续投资具有长期性的开源大模型,旨在逐步接近通用人工智能的目标。
- 在我们正在进行的探索中,我们致力于设计能够进一步扩展MoE模型的方法,同时保持经济的训练和推理成本。我们下一步的目标是在即将发布的版本中实现与GPT-4相当的性能。
- 我们的校准团队不断努力改进我们的模型,旨在开发一个不仅对全球用户有用,而且诚实安全的模型。我们的最终目标是使我们模型的价值观与人类价值观相一致,同时尽量减少对人类监督的需求。通过优先考虑道德因素和负责任的发展,我们致力于为社会创造积极和有益的影响。
- 目前,DeepSeek-V2仅支持文本模式。在我们的前瞻性议程中,我们打算使我们的模型能够支持多种模式,在更广泛的场景中增强其多功能性和实用性。
版权声明:
本文由 youcans@xidian 对论文 DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 进行摘编和翻译。该论文版权属于原文作者,本译文只供研究学习使用。
youcans@xidian 作品,转载必须标注原文链接:
【DeepSeek论文精读】4. DeepSeek-V2:强大、经济且高效的混合专家语言模型
Copyright 2024 youcans, XIDIAN
Crated:2025-02