DeepSeek-V3 的核心技术创新

DeepSeek-V3 的核心技术创新

flyfish

DeepSeek-V3 的核心技术创新主要体现在其架构设计和训练目标上,通过 多头潜在注意力(MLA)DeepSeekMoE 架构无辅助损失的负载均衡策略多 Token 预测训练目标(MTP)
请添加图片描述

请添加图片描述

1. 多头潜在注意力(Multi-head Latent Attention, MLA)

MLA 是一种改进的注意力机制,旨在减少推理时的显存占用并提升效率。其核心原理是通过 低秩压缩技术 对键(Key)和值(Value)进行联合压缩:

  • KV 缓存优化:传统 Transformer 的 KV 缓存需存储所有历史键值对,显存占用随序列长度线性增长。MLA 通过低秩矩阵将键值投影到更低维度的潜在空间,减少缓存数据量。例如,键值压缩维度从 7168 降至 512,显存占用减少约 75%。
  • 计算效率提升:MLA 在保持与标准多头注意力(MHA)相似性能的同时,减少了推理时的计算量,尤其适合长序列任务(如 128K 上下文窗口)。

2. DeepSeekMoE 架构

DeepSeekMoE 是一种混合专家(Mixture-of-Experts, MoE)架构,结合了共享专家与路由专家,实现了细粒度的计算分配:

  • 专家分配策略:每个 MoE 层包含 1 个共享专家256 个路由专家,每个 Token 激活 8 个专家。共享专家处理通用特征,路由专家专注于特定模式,提升模型表达能力。
  • 经济高效的训练:通过动态路由策略,仅激活部分专家(如每个 Token 激活 37B 参数),大幅降低计算成本,使 671B 参数的模型训练成本仅为同类模型的 1/14。

3. 无辅助损失的负载均衡策略

传统 MoE 模型依赖辅助损失函数强制均衡专家负载,但可能导致模型性能下降。DeepSeek-V3 创新性地通过动态调整实现负载均衡:

  • 动态偏置调整:在路由过程中引入可学习的偏置项,根据专家负载动态调整路由决策。例如,当某专家负载过高时,降低其亲和分数,使 Token 更倾向于负载较低的专家。
  • 序列级均衡:额外引入序列级负载均衡损失,避免单个序列内的极端不平衡。实验表明,该策略在多数基准测试中优于传统方法,且不损害模型性能。

4. 多 Token 预测训练目标(MTP)

MTP 扩展了传统语言模型的单 Token 预测目标,要求模型同时预测多个未来 Token:

  • 训练目标设计:每个位置预测未来多个 Token(如 4 个),通过多个顺序模块实现因果链的完整性。例如,第 (i) 个模块基于当前 Token 预测第 (i+1) 至 (i+n) 个 Token。
  • 推理加速:MTP 模块支持 推测解码(Speculative Decoding),通过并行预测多个 Token 减少生成步骤,使推理速度提升 1.8 倍。
  • 性能提升:MTP 提高了训练信号的密度,增强模型对长程依赖的捕捉能力,尤其在代码和数学任务中表现显著。

技术协同与综合效果

这些技术通过 架构与训练的深度协同 实现突破:

  • FP8 混合精度训练:结合低精度计算(FP8)与高精度累加(FP32),在保持数值稳定性的同时降低显存占用。
  • 并行训练优化:采用 16 路流水线并行、64 路专家并行和 ZeRO-1 数据并行,结合 DualPipe 算法减少通信开销,提升训练效率。
  • 长上下文扩展:通过 YaRN 技术分阶段扩展上下文至 128K,在长文本任务中保持高性能。

FIM策略

FIM策略是指Prefix-Suffix-Middle(PSM)框架下的数据构造策略,全称为Fill-in-Middle策略。该策略应用于DeepSeek-V3模型的预训练过程,目的是让模型能够基于上下文线索准确预测中间文本,同时不影响其下一个令牌的预测能力。

  1. 具体内容:在数据构造时,FIM策略将数据结构化表示为<|fim_begin|> 𝑓pre<|fim_hole|> 𝑓suf<|fim_end|> 𝑓middle<|eos_token|>的形式。在文档层面的预打包过程中,按照0.1的比例应用该策略 ,即10%的数据采用这种结构进行处理。在这个结构中, 𝑓pre和 𝑓suf分别表示前缀和后缀文本, 𝑓middle表示需要模型根据上下文预测的中间文本。
  2. 应用效果:在DeepSeekCoder-V2的训练过程中,就观察到FIM策略不会损害模型的下一个令牌预测能力,还能使模型依据上下文准确预测中间文本。DeepSeek-V3沿用该策略后,在预训练阶段取得了良好的效果,有助于提升模型对文本的理解和生成能力,从而在后续的任务中表现更优。

无辅助损失的负载均衡策略

无辅助损失的负载均衡策略是DeepSeek-V3为解决MoE模型负载不均衡问题提出的创新方法,通过动态调整专家路由偏置平衡负载,避免传统辅助损失带来的性能下降。

  1. 提出背景:在MoE模型里,若专家负载不均衡,会出现路由崩溃,在专家并行场景下降低计算效率。传统方法借助辅助损失来平衡负载,但辅助损失过大会损害模型性能。
  2. 实现方式:为每个专家引入可学习的偏置项bib_{i}bi ,把它加到token与专家的亲和度得分si,ts_{i,t}si,t上,以此确定Top-K路由 。即gi,t′={si,t,si,t+bi∈Topk({sj,t+bj∣1≤j≤Nr},Kr)0,otherwiseg_{i, t}'=\begin{cases}s_{i, t}, & s_{i, t}+b_{i} \in Topk(\{s_{j, t}+b_{j} | 1 \leq j \leq N_{r}\}, K_{r})\\0, & otherwise\end{cases}gi,t={si,t,0,si,t+biTopk({sj,t+bj∣1jNr},Kr)otherwise。训练时,持续监控每个训练步骤中整个批次的专家负载。若专家负载过高,就减小其偏置项;若负载过低,则增大偏置项。偏置项仅用于路由,门控值仍由原始亲和度得分计算。
  3. 优势效果:避免了因使用辅助损失而导致的性能下降,在保持负载均衡的同时,提升了模型性能。实验显示,相比仅用辅助损失平衡负载的模型,该策略能让专家负载更均匀,训练效率和推理性能也得到提高 。如在不同规模模型的实验中,采用无辅助损失负载均衡策略的模型在多数评估基准上表现更优。

Multi - Token Prediction

MTP指Multi - Token Prediction,是一种扩展预测范围的训练目标和技术,能提升模型性能并加速推理。

  1. 定义:MTP是一种在自然语言处理(NLP)任务中,扩展模型预测范围的训练目标和技术。与传统的单一token预测不同,它让模型在训练时同时预测多个未来的token,在一个时间步上,模型可以预测未来2个、3个或更多token,通过一次前向计算得到多个token的概率分布。
  2. 原理
    • 提高上下文感知能力:传统单token预测只关注当前上下文与下一个token的关系,而MTP使模型必须从更大范围的上下文中提取信息,对语言模式的学习更加全面,生成的句子更流畅且符合语义逻辑。
    • 增加训练信号的密度:单token预测每个时间步只提供一个训练信号,MTP在每个时间步上提供多个token的训练信号,使模型在相同训练迭代下能更快地学到语言结构,提高训练效率。
    • 改进序列建模的效率:MTP的目标更接近实际生成任务,能让模型更好地学习到多token的联合分布,而传统单token预测可能导致模型局限于逐步生成,MTP可提高建模性能。
  3. 运作机制
    • MTP模块:使用D个顺序模块来预测D个额外token。以第k个MTP模块为例,它由共享嵌入层Emb、共享输出头OutHead、一个Transformer块TRMk(⋅)TRM_{k}(\cdot)TRMk()和投影矩阵Mk∈Rd×2dM_{k} \in \mathbb{R}^{d ×2 d}MkRd×2d组成。对于第i个输入token tit_{i}ti,在第k个预测深度,先将第i个token在第k - 1深度的表示hik−1h_{i}^{k - 1}hik1与第(i + k)个token的嵌入Emb(ti+k)Emb(t_{i + k})Emb(ti+k)通过线性投影组合,得到hi′kh_{i}^{\prime k}hikhi′kh_{i}^{\prime k}hik作为第k深度Transformer块的输入,产生当前深度的输出表示hikh_{i}^{k}hik,最后共享输出头以hikh_{i}^{k}hik为输入,计算第k个额外预测token的概率分布Pi+1+kkP_{i + 1 + k}^{k}Pi+1+kk
    • MTP训练目标:对每个预测深度,计算交叉熵损失LMTPkL_{MTP }^{k}LMTPk ,最后计算所有深度MTP损失的平均值,并乘以加权因子λ得到总体MTP损失LMTPL_{MTP }LMTP,作为DeepSeek - V3的额外训练目标。
    • MTP在推理中的应用:MTP策略主要用于提高主模型性能,推理时可直接丢弃MTP模块,主模型能独立正常运行。也可将MTP模块用于推测式解码,模型一次性生成多个token的候选结果,通过某种机制验证和修正这些候选结果,若候选token验证通过则直接使用,从而跳过若干步推理,显著加速推理过程。

Multi-head Latent Attention(MLA)

Multi-head Latent Attention(MLA)是DeepSeek-V3中采用的创新注意力机制,旨在降低推理时的显存占用和计算开销,同时保持模型性能。

  1. 定义:MLA是一种应用于DeepSeek-V3模型的创新注意力机制,通过对注意力中的键(Key)和值(Value)进行低秩联合压缩,减少推理时的Key-Value(KV)缓存,进而降低显存占用和计算开销 ,同时保证模型性能不下降。
  2. 原理
    • 低秩联合压缩:传统多头注意力(MHA)需保存完整的Key和Value缓存,限制了batch size和序列长度。MLA通过低秩分解对注意力的Key和Value进行联合压缩,核心是将注意力输入hth_{t}ht通过下投影矩阵WDKVW^{D K V}WDKV压缩成低维的ctKVc_{t}^{K V}ctKV ,再通过上投影矩阵WUKW^{U K}WUKWUVW^{U V}WUV分别得到用于注意力计算的键kt,ik_{t, i}kt,i和值vt,iCv_{t, i}^{C}vt,iC 。推理时,仅需缓存ctKVc_{t}^{K V}ctKV和携带位置信息的ktRk_{t}^{R}ktR,大幅减少了缓存占用 。
    • 查询的低秩压缩:为减少训练时激活函数的内存占用,MLA对查询(queries)也进行低秩压缩。将查询输入hth_{t}ht通过下投影矩阵WDQW^{D Q}WDQ压缩得到ctQc_{t}^{Q}ctQ ,再经上投影矩阵WUQW^{U Q}WUQWQRW^{Q R}WQR得到用于注意力计算的查询qt,iq_{t, i}qt,i
    • 解耦Rotary Positional Embedding (RoPE):传统RoPE对Q和K分别应用位置编码,低秩分解KV后矩阵运算的交换律问题会使计算复杂。MLA新增独立维度保存位置信息,通过额外的多头queries(qt,iRq_{t, i}^{R}qt,iR)和共享的键(ktRk_{t}^{R}ktR)来支撑RoPE ,将RoPE的计算与低秩压缩解耦,既保留位置感知能力,又避免额外计算开销。
  3. 运作机制
    • 压缩与投影:输入的每个token的特征首先被压缩成低维潜在向量,如ctKVc_{t}^{K V}ctKVctQc_{t}^{Q}ctQ ,然后通过特定的投影矩阵扩展到各个注意力头所需的键、值和查询空间。
    • 注意力计算:计算注意力时,利用压缩后的查询qt,iq_{t, i}qt,i、键kj,ik_{j, i}kj,i和值vj,iCv_{j, i}^{C}vj,iC ,按照传统注意力机制的方式计算注意力得分并加权求和,得到每个头的注意力输出ot,io_{t, i}ot,i 。公式为ot,i=∑j=1tSoftmaxj(qt,iTkj,idh+dhR)vj,iCo_{t, i}=\sum_{j = 1}^{t} Softmax_{j}(\frac{q_{t, i}^{T}k_{j, i}}{\sqrt{d_{h}+d_{h}^{R}}})v_{j, i}^{C}ot,i=j=1tSoftmaxj(dh+dhRqt,iTkj,i)vj,iC
    • 输出融合:将多个头的注意力输出ot,io_{t, i}ot,i进行拼接,再通过输出投影矩阵WOW^{O}WO得到最终的注意力输出utu_{t}ut ,公式为ut=WO[ot,1;ot,2;...;ot,nh]u_{t}=W^{O}[o_{t, 1}; o_{t, 2};... ; o_{t, n_{h}}]ut=WO[ot,1;ot,2;...;ot,nh]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二分掌柜的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值