v2论文:[2405.04434] DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
v3论文:[2412.19437] DeepSeek-V3 Technical Report
v3源码:GitHub - deepseek-ai/DeepSeek-V3
1、技术报告
1.1 DeepSeek-V2 技术报告
我们提出了 DeepSeek-V2,一个强大的混合专家 (MoE) 语言模型,其特点是经济的训练和高效的推理。它包含 2360 亿个参数,其中每个词元激活 210 亿个参数,并支持 128K 词元的上下文长度。DeepSeek-V2 采用创新的架构,包括多头潜在注意力 (MLA) 和 DeepSeekMoE。MLA 通过将键值 (KV) 缓存显著压缩为潜在向量来保证高效的推理,而 DeepSeekMoE 通过稀疏计算使训练强大的模型成为可能。与 DeepSeek 67B 相比,DeepSeek-V2 实现了显著更强的性能,同时节省了 42.5% 的训练成本,将 KV 缓存减少了 93.3%,并将最大生成吞吐量提高了 5.76 倍。我们使用包含 8.1T 词元的优质多源语料库对 DeepSeek-V2 进行预训练,并进一步进行监督微调 (SFT) 和强化学习 (RL) 以充分释放其潜力。评估结果表明,即使只有 210 亿个激活参数,DeepSeek-V2 及其聊天版本在开源模型中仍然取得了顶尖的性能。
这是一种强大的开源专家混合(MoE)语言模型,其特点是通过创新的 Transformer 架构实现经济的训练和高效的推理。它配备了总共 2360 亿个参数,其中每个 token 激活 210 亿个参数,并支持 128K 个 token 的上下文长度。
我们优化了 Transformer 框架(Vaswani 等人,2017)中的注意力模块和前馈网络(FFNs),并提出了多头潜在注意力(MLA)和 DeepSeekMoE。(1)在注意力机制的背景下,多头注意力(MHA)(Vaswani 等人,2017)的键值(KV)缓存对 LLM 的推理效率构成了重大障碍。为了解决这个问题,人们探索了各种方法,包括分组查询注意力(GQA)(Ainslie 等人,2023)和多查询注意力(MQA)(Shazeer,2019)。然而,这些方法在试图减少 KV 缓存时往往会影响性能。为了兼顾两者的优势,我们引入了 MLA,一种具有低秩键值联合压缩的注意力机制。从经验上看,MLA 的性能优于 MHA,同时在推理过程中显著减少了 KV 缓存,从而提高了推理效率。(2)对于前馈网络(FFNs),我们遵循 DeepSeekMoE 架构(Dai 等人,2024)),该架构采用细粒度专家分割和共享专家隔离,以实现更高的专家专业化潜力。DeepSeekMoE 架构与传统的 MoE 架构(如 GShard(Lepikhin 等人,2021)))相比,展现出巨大的优势,使我们能够以经济的成本训练强大的模型。由于我们在训练过程中采用了专家并行,我们还设计了补充机制来控制通信开销并确保负载平衡。通过结合这两种技术,DeepSeek-V2 具有强大的性能(图 1(a)))、经济的训练成本和高效的推理吞吐量(图 1(b)))。
图 2 | DeepSeek-V2 架构图。MLA 通过显著减少生成过程中的 KV 缓存来确保高效推理,而 DeepSeekMoE 则通过稀疏架构以经济的方式训练强大的模型。
1.2 DeepSeek-V3 技术报告
为了进一步突破开源模型的能力边界,我们扩展了模型规模,并推出了DeepSeek-V3,这是一个拥有6710亿参数的大型专家混合模型(MoE),其中每个token激活370亿参数。
秉持前瞻性视角,我们始终追求强大的模型性能和经济成本。因此,在架构方面,DeepSeek-V3 仍然采用多头潜在注意力(MLA)(DeepSeek-AI, 2024c) 以实现高效推理,并采用 DeepSeekMoE (Dai 等人,2024) 以实现经济高效的训练。这两种架构已在 DeepSeekV2 (DeepSeek-AI, 2024c) 中得到验证,证明了它们在保持稳健模型性能的同时实现高效训练和推理的能力。除了基本架构之外,我们还实施了两种额外的策略来进一步增强模型能力。首先,DeepSeek-V3 首创了一种无辅助损失策略 (Wang 等人,2024a) 用于负载均衡,旨在最大限度地减少由于鼓励负载均衡而对模型性能产生的负面影响。其次,DeepSeek-V3 采用多标记预测训练目标,我们观察到它可以提高评估基准上的整体性能。
为了实现高效训练,我们支持 FP8 混合精度训练并对训练框架进行了全面的优化。低精度训练已成为高效训练的有希望的解决方案(Dettmers 等人,2022;Kalamkar 等人,2019;Narang 等人,2017;Peng 等人,2023b)),其发展与硬件能力的进步密切相关(Luo 等人,2024;Micikevicius 等人,2022;Rouhani 等人,2023a)。在这项工作中,我们介绍了一种 FP8 混合精度训练框架,并首次验证了其在超大规模模型上的有效性。通过支持 FP8 计算和存储,我们实现了训练加速和 GPU 内存使用量的减少。关于训练框架,我们设计了 DualPipe 算法来实现高效的流水线并行,该算法具有更少的流水线气泡,并通过计算-通信重叠隐藏了训练过程中的大部分通信。这种重叠确保了,随着模型进一步扩展,只要我们保持恒定的计算-通信比率,我们仍然可以在节点之间使用细粒度的专家,同时实现接近零的全对全通信开销。此外,我们还开发了高效的跨节点全对全通信内核,以充分利用 InfiniBand (IB) 和 NVLink 带宽。此外,我们精心优化了内存占用,使得无需使用昂贵的张量并行即可训练 DeepSeek-V3。通过这些努力,我们实现了高训练效率。
在预训练阶段,我们使用 14.8T 高质量且多样化的词元对 DeepSeek-V3 进行训练。预训练过程非常稳定,在整个训练过程中,我们没有遇到任何不可恢复的损失峰值,也不需要回滚。接下来,我们对 DeepSeek-V3 进行两阶段的上下文长度扩展。在第一阶段,最大上下文长度扩展到 32K,在第二阶段,进一步扩展到 128K。在此之后,我们对 DeepSeek-V3 的基础模型进行后训练,包括监督微调 (SFT) 和强化学习 (RL),以使其与人类偏好保持一致,并进一步释放其潜力。在后训练阶段,我们从 DeepSeekR1 系列模型中提取推理能力,同时谨慎地保持模型准确性和生成长度之间的平衡。
DeepSeek-V3 的基本架构仍然是在 Transformer(Vaswani 等人,2017)框架内。为了实现高效的推理和经济的训练,DeepSeek-V3 还采用了 MLA 和 DeepSeekMoE,这些方法已经在 DeepSeek-V2 中得到了充分验证。与 DeepSeek-V2 相比,唯一的例外是,我们额外引入了一种无辅助损失的负载均衡策略(Wang 等人,2024a)用于 DeepSeekMoE,以缓解为确保负载均衡而导致的性能下降。图 2 说明了 DeepSeek-V3 的基本架构,在本节中我们将简要回顾 MLA 和 DeepSeekMoE 的细节。
备注:架构图和v2没有区别
训练成本:
DeepSeek-V3开源基础模型的训练在2048块英伟达H800 GPU集群上完成。
需要注意的是,557.6万美元是DeepSeek技术报告中提到的基座模型DeepSeek-V3的训练成本。“关于V3版本的训练成本只能代表最后一次成功训练的成本,前期的研究、架构及算法的试错等成本都没有包含在内;而R1的具体训练成本,论文中没有提到。”刘聪表示。也就是说,557.6万美元仅为模型总成本的一小部分。
DeepSeek-V3的训练过程仅需2048张英伟达GPU、所用GPU小时仅为278.8万,相比之下,OpenAI耗费了上万张GPU,Meta训练模型Llama-3.1-405B所用的GPU小时为3084万。
DeepSeek不仅在模型训练阶段效率更高,在调用推理阶段也更高效、成本更低。
备注:按一天2048*24h = 4.91万小时算,278.8/4.91 = 56.6天,训练时间也是比较久的。
2、 DeepSeek核心技术
2.1 MLA(v2+集成)
2.1.1 预备知识:标准多头注意力机制
图 3 | 多头注意力 (MHA)、分组查询注意力 (GQA)、多查询注意力 (MQA) 和多头潜在注意力 (MLA) 的简化图示。通过将键和值共同压缩成潜在向量,MLA 在推理过程中显著减少了 KV 缓存。
2.1.2 低秩键值联合压缩
MLA 的核心是针对键和值进行低秩联合压缩,以减小 KV 缓存:
此外,为了减少训练过程中的激活内存,我们也对查询进行低秩压缩,即使它不能减少 KV 缓存:
2.1.3. 解耦旋转位置嵌入
MLA未来可能是标配了 .
备注:这里设置dc为4 dh,跟多头(一般为16头以上)比确实少很多。