DeepSeek-V3简介:
DeepSeek-V3,这是一款强大的专家混合(MoE)语言模型,总参数量达 6710 亿,每个token激活 370 亿参数。为了实现高效的推理和经济高效的训练,DeepSeek-V3 采用了在 DeepSeek-V2 中 经过充分验证的多头潜在注意力(MLA)和 DeepSeekMoE 架构。此外,DeepSeek-V3 还率先采用无辅助损失的策略来实现负载均衡,并设定了多token预测训练目标以增强性能。我们使用 14.8 万亿个多样且高质量的token对DeepSeek-V3 进行预训练,随后经过监督微调和强化学习阶段,以充分发挥其能 力。
全面评估表明,DeepSeek-V3 的性能优于其他开源模型,并且与领先的闭源模型相当。尽管性能出色,但 DeepSeek-V3 的完整训练仅需 278.8 万 H800 GPU 小时。此外,其训练过程非常稳定,在整个训练过程中,我们没有遇到任何不可恢复的损失峰值,也无需进行任何回滚操作。模型检查点可在 https://github.com/deepseek-ai/DeepSeek-V3 获取。
一. 技术细节架构
1.多头潜在注意力(MLA)
2. DeepSeekMoE与无辅助损失的负载均衡
3.多token预测
二. 多头潜在注意力(Multi-Head Latent Attention, MLA)
对于注意力机制,DeepSeekV3采用了MLA架构。设d为嵌入维度,h为注意力头的数量,d_h为每个头的维度,h_t为给定注意力层第t个token的注意力输入。MLA的核心是通过低秩联合压缩注意力键和值来减少推理期间的键值(KV)缓存。
- 通过低秩联合压缩,减少键值(KV)缓存需求,提升推理效率。
- 注意力头数设置为128,每个头的维度为128,KV压缩维度为512。
三.DeepSeekMoE与无辅助损失的负载均衡
DeepSeek的MoE(Mixture of Experts,专家混合)架构是一种创新的模型设计,旨在通过稀疏激活和动态路由机制提升大规模语言模型的计算效率和性能。以下是DeepSeek MoE的核心特点和优势:
1.核心架构
-
稀疏激活机制
DeepSeek MoE采用稀疏激活机制,每个输入token只激活部分专家,而不是整个模型。例如,在DeepSeek的6710亿参数模型中,每个token仅激活约6%的参数(约370亿参数),显著降低了计算量。 -
动态路由机制
通过门控网络动态选择最适合处理当前输入的专家。这种机制可以根据输入数据的特性灵活分配计算资源,避免了不必要的计算。 -
共享专家与路由专家
DeepSeek MoE引入了共享专家的概念,共享专家负责处理通用特征,而路由专家则根据具体输入动态分配。这种设计减少了模型冗余,提高了计算效率。 -
无辅助损失的负载均衡策略
DeepSeek MoE提出了一种无辅助损失的负载均衡策略,通过动态调整专家的偏置参数来优化负载分配。这种方法避免了传统负载均衡策略中可能对模型性能产生的负面影响。
2.性能与效率提升
-
显著降低计算开销
DeepSeek MoE在保持高性能的同时,计算开销大幅降低。例如,DeepSeek MoE 16B模型在2万亿token上训练时,仅需要约40%的计算量就能达到与传统7B模型相当的性能。 -
更高的灵活性和扩展性
MoE架构允许通过增加专家数量来增强模型能力,而无需显著增加计算量。这使得DeepSeek MoE在处理复杂任务时表现出色。
3. 技术设计
MOE(Mixture of Experts,专家混合)是一种模型架构,旨在通过多个专家(Experts)模型的协同工作来提高计算效率和模型性能。在 MOE 结构中,不是所有的专家都参与计算,而是通过一个门控(Gate)机制来选择少数几个专家进行推理或训练。
- Softmax 门控:使用 softmax 归一化的分数来选择最合适的专家。
- Top-k 选择:选择得分最高的 k 个专家。
- 负载均衡:确保不同专家之间计算负载的均衡,避免部分专家过载。
- 亲和度计算:首先,计算token与每个路由专家的亲和度分数si,t,使用sigmoid函数
- Top-K选择:从所有路由专家的亲和度分数中选出前Kr个最高分数,形成集合Topk({sj,t∣1≤j≤Nr},Kr)。对于未被选中的专家,其门控值设为0;
- 归一化:对选中的亲和度分数进行归一化,生成最终的门控值gi,t;
专家模型:路由专家和共享专家
- 创新性地避免传统负载均衡方法对模型性能的负面影响。
- 通过灵活的批量负载均衡,允许专家在不同领域中更好地专业化。
四 .多token预测
受Gloeckle等人(2024)的启发,研究并为DeepSeekV3设定了多token预测(Muli-Token Prediction, MTP)目标,该目标将预测范围扩展到每个位置的多个未来token。
MTP 的核心思想是通过共享的表示和模块化的预测机制,逐步预测未来的令牌。具体来说:
- 共享表示:主模型生成输入序列的表示,这些表示被 MTP 模块共享。
- 顺序预测:MTP 模块按顺序预测未来的令牌,每个模块预测一个额外的令牌。
- 因果链保持:在预测每个额外令牌时,保持完整的因果链,确保预测依赖于之前的令牌。
损失计算
1 对于第 k 个预测深度,计算交叉熵损失:
其中:
- T 是输入序列长度,
- ti 是第 i 个位置的真实令牌,
- Pki[ti] 是第 k 个 MTP 模块对 ti 的预测概率。
2 总体 MTP 损失
将所有预测深度的损失加权平均,得到总体 MTP 损失:
其中:
- λ 是权重因子,用于控制 MTP 损失对总损失的贡献。
五 .模型超参数
将Transformer层数设置为61,隐藏维度设置为7168。
所有可学习参数以0.006的标准差随机初始化。
在MLA中,将注意力头数h设置为128,每个头的维度h设置为128。
KV压缩维度设置为512,查询压缩维度设置为1536。
对于解耦的查询和键,将每个头的维度设置为64。
除了前三层外,将所有FFN替换为MoE层。
每个MoE层包含1个共享专家和256个路由专家,每个专家的中间隐藏维度为2048。
在路由专家中,每个token将激活8个专家,并确保每个token最多发送到4个节点。
多token预测深度设置为1,即除了确切的下一个token外,每个token还将预测一个额外的token。
与DeepSeek-V2相同,DeepSeek-V3也在压缩潜在向量后附加额外的RMSNorm层,并在宽度瓶颈处乘以额外的缩放因子。
在该配置下,DeepSeek-V3包含671B个总参数,其中每个token激活37B个参数。
训练超参数:
采用AdamW优化器(Loshchilov and Hutter, 2017),超参数设置为β1 = 0.9,β2 = 0.95,weight_decay = 0.1。
将预训练期间的最大序列长度设置为4K,并在14.8T token上预训练DeepSeek-V3。
技术报告翻译版链接:https://download.csdn.net/download/L_goodboy/90369130