当前位置: 首页 > article >正文

深度解读DeepSeek:从原理到模型(二)

基础术语

  • 自然语言处理(Natural Language Processing,NLP)
  • 监督微调 (Supervised Fine-Tuning,SFT)
  • 强化学习(Reinforcement Learning,RL)

DeepSeek模型简介

DeepSeek当前主要包括三种模型满足不同场景的差异化诉求:

  • DeepSeek-V3:NLP预训练基础模型。采用传统预训练 + 监督微调(SFT)模式,依赖人工标注数据。
  • DeepSeek-R1:复杂逻辑任务的深度推理模型。以强化学习(RL)为核心,减少对标注数据的依赖,通过自我演化和冷启动技术降低成本。例如,R1-Zero 完全通过 RL 训练,无需 SFT
  • DeepSeek-Distill:轻量化部署推理模型蒸馏版本

DeepSeek V3

从技术报告中看出,DeepSeek V3是经典的Transformer架构,比较亮眼的就是前馈网络使用的DeepSeek MoE架构、Attention机制使用MLA架构,其实这两个在DeepSeekV2模型已经被验证使用过。与DeepSeek-V2相比,V3额外引入了一种无辅助损失的负载均衡策略,用于DeepSeekMoE,以减轻因需要保证Expert负载均衡而导致的性能下降。

创新点:

  • 架构设计:通过 MLA 和 DeepSeekMoE 架构实现高效的推理和低成本训练。
  • 辅助无损策略:采用了辅助无损策略来实现负载均衡。
  • 多 token 预测:通过多 token 预测训练目标提高数据效率和模型表现。
  • FP8 混合精度训练:在极大规模模型上验证了 FP8 训练的有效性,通过支持 FP8 计算和存储,实现加速训练和减少 GPU 内存使用。

工作成果:

  • 模型性能优秀:DeepSeek-V3 在多个基准测试中超越了其他开源模型,与领先的闭源模型相当。
  • 训练成本较低:完整训练仅需要 2.788M H800 GPU 小时,训练成本相对较低。
  • 良好的稳定性:在整个训练过程中,没有经历任何无法挽回的 loss spikes 或需要执行任何回滚操作。

DeepSeek R1

DeepSeek R1 的技术创新核心在于强化学习驱动的推理能力跃升与动态架构优化,通过自我进化、显式思维链和多模态迁移,突破了传统大模型的局限性。其开源生态与部署优化进一步推动技术普惠,尽管存在幻觉率上升等挑战,但为垂直领域的深度应用提供了新范式。未来,R1 与 V3 的互补将加速通用 AI 向专业化场景渗透。

主要贡献:

  • 基于 DeepSeek-V3-Base,通过强化学习(RL)提升推理能力,而不使用任何SFT数据。
  • 引入冷启动数据和多阶段训练流程,优化模型的可读性和性能。

为什么DeepSeekV3训练成本这么低?

  • MoE 架构:通过MoE稀疏激活机制大幅减少了计算量

  • MLA 机制:通过对KV做联合低秩压缩大幅减少KV Cache

  • FP8 训练:通过低精度计算减少了 GPU 内存使用和计算开销,技术报告中也提到FP8混合精度训练框架是首次在一个极大规模的模型上验证了其有效性,这一点也看出DeepSeek的Infra工程团队的底蕴

DeepSeek V3/R1核心技术

一、模型架构创新

混合专家模型(Mixture of Experts,MoE)

在LLM的上下文中,MoE通常指的是用MoE层替换Transformer模型中的前馈神经网络(FFN)层,如下图所示:

在这里插入图片描述

传统的MoE基本两部分组成:Gating门控网络、稀疏MoE层:

  • 稀疏 MoE 层: 这些层代替了传统 Transformer 模型中的前馈网络 (FFN) 层。MoE 层包含若干“专家”(例如 8 个),每个专家本身是一个独立的神经网络。在实际应用中,这些专家通常是前馈网络 (FFN),但它们也可以是更复杂的网络结构,甚至可以是 MoE 层本身,从而形成层级式的 MoE 结构。
  • 门控网络或路由: 这个部分用于决定哪些Token被发送到哪个专家。Token的路由方式是 MoE 使用中的一个关键点,因为路由器由学习的参数组成,并且与网络的其他部分一同进行预训练。

在这里插入图片描述
DeepSeekMoE的插图。子图(a)展示了采用传统前2路由策略的MoE层。子图(b)说明了细粒度专家细分策略。随后,子图(c)展示了共享专家隔离策略的集成,构成了完整的DeepSeekMoE架构。值得注意的是,在这三种架构中,专家参数的数量和计算成本保持不变。

和传统的MoE架构相比,DeepSeekMoE使用更细粒度的专家,并将一些专家隔离为共享专家,减少专家间的知识冗余。模型总参数量为6710亿,但每个Token仅激活370亿参数。这种设计通过动态路由机制将任务分配给不同的专家网络(如8个路由专家),既保持了模型容量,又大幅减少了实际计算量。

门控网络路由策略:TopK表示第t个Token和所有路由专家计算出的亲和力分数中K个最高分数的集合。在DeepSeekV3中,使用sigmoid函数计算亲和力分数,然后在所有选择的亲和力分数中应用归一化来生成门控值。

在这里插入图片描述
无辅助损失负载均衡策略:传统MoE模型需通过辅助损失函数强制均衡专家负载,但DeepSeek V3通过自研的负载均衡策略,无需额外损失函数即可优化专家利用率,减少了训练复杂度并提升了效率。

通常在MoE模型的训练过程中,不同专家因为路由策略的因素会导致接收的训练数据分布不均,比如所有的Token都被发送到只有少数几个受欢迎的专家,那么有些专家就可能没有被训练到。业界通用的解决方案就是引入辅助损失,但是,有时候过大的辅助损失会损害模型性能。为了在负载均衡和模型性能之间取得更好的平衡,DeepSeek开创了一种无辅助损失的负载均衡策略:

为每个专家引入一个偏置项bi,并将其添加到相应的亲和力得分Si,t​中,以确定top-K路由:
在这里插入图片描述

在这种设计中,偏置项仅用于路由选择,而门控值(用于与 FFN 输出相乘)仍基于原始相关度分数Si,t计算。训练过程中,系统会实时监控每个训练步骤中所有批次的专家负载分布。在每个步骤结束时,对于负载过高的专家,其偏置项会减少 𝛾;对于负载不足的专家,其偏置项会增加 𝛾 ,其中 𝛾是控制偏置更新速率的超参数。通过这种动态调整机制,DeepSeek-V3 在训练过程中实现了专家负载的均衡分布,其性能优于传统仅依靠辅助损失来实现负载均衡的模型。

多头潜在注意力(Multi-Head Latent Attention,MLA)

大模型推理过程KV Cache机制一般是限制推理效率的一大瓶颈,而标准的Transformer 架构里面的多头自注意力MHA架构会产出非常多的KV Cache,为了减少对应的KV Cache业界实践过很多方案,例如PagedAttention、多查询注意力(MQA)和分组查询注意力(GQA),但是性能相比原生的MHA有一定差距。DeepSeek-V2,提出一种创新的注意力机制:多头潜在注意力(MLA),取代传统的多头自注意力(MHA)。

在这里插入图片描述

MLA通过低秩联合压缩键值(KV)缓存,显著减少了推理阶段的显存占用和计算量。同时,MLA在训练时保持了较高的计算效率,避免了传统注意力机制中KV缓存过大的问题。

低秩矩阵是指其秩(rank)远小于其行数和列数的矩阵。假设我们有一个4×5的矩阵A,这个矩阵可以通过两个更小的矩阵的乘积来表示,比如一个4×2的矩阵B和一个2×5的矩阵C。这意味着原始矩阵A的信息可以通过这两个较小的矩阵来捕捉,表明A是一个低秩矩阵。

  • 标准多头注意力:
    在这里插入图片描述
  • 低阶键值联合压缩:
    在这里插入图片描述

多Token预测( Multi-Token Prediction, ,MTP)

通过预测多个未来Token而非单一目标,提高了模型在大多数评估基准上的性能,而且MTP模块还可以用于推理加速。

在这里插入图片描述

具体来说,MTP实现使用 D 个顺序模块来预测 D 个额外的令牌。
第 k个MTP模块由一个共享向量层Emb(⋅)、一个共享输出头OutHead(⋅),一个 Transformer 块TRM(⋅) 和一个维度投影矩阵组成。

二、训练推理优化

HAI-LLM 训练框架

DeepSeekV3 采用分布式训练的高效并行方案。 基于自研的HAI-LLM框架,综合运用了四种并行策略:

  • ZeRO数据并行:减少显存冗余,支持大规模模型训练。
  • 流水线并行(16路)与专家并行(64路):通过DualPipe技术重叠计算与通信,减少了流水线中的“气泡时间”,提升GPU利用率。
  • 张量切片
  • 序列并行:进一步优化显存分配和计算效率。

DeepSeek-V3在一个配备了2048个NVIDIA H800 GPU的集群上进行训练,使用的是自研的HAI-LLM框架。这种并行能力支持不同工作负载的需求,可以支持数万亿规模的超大模型并扩展到数千个 GPU,同时还自研了一些配套的高性能算子haiscale,可以帮助 HAI-LLM 极大优化大模型训练的显存效率和计算效率。

FP8混合精度训练

在激活和权重中引入FP8量化(如128维分组量化),结合TensorCore的矩阵乘法加速,显著降低了训练过程中的计算量和通信开销,同时保持了模型精度。

FP8训练是指使用8位浮点数进行混合精度训练。举个具体的例子:想象你要教AI认猫。

传统方法:给AI看超高清照片(高精度),每张照片占手机1GB空间,训练慢且费电。

DeepSeek的FP8:把照片分成小块(分块量化),猫耳朵用稍高精度,背景草丛用低精度压缩。关键特征(胡须、眼睛)保持清晰,其他部分适当模糊化。结果:训练速度提升40%,存储空间减少30%,但AI依然能准确认出不同品种的猫。

技术创新的核心秘诀:

  • 灵活调节精度:像手机相机的"智能省电模式",重要场景自动高清,普通场景适度模糊。
  • 分段优化:像整理行李箱,把衣服卷成小卷分开放(分块处理),比胡乱塞满更省空间。
  • 软硬件配合:专门设计了"快写笔"(DeepGEMM库),让缩印书写和正常书写一样流畅。

预填充(Prefilling)与解码(Decoding)分离

  • 预填充(Prefilling)技术本质:
    把用户输入的整段文字(比如"中国的首都是_“)一次性分析完,生成所有文字对应的"概率地图”。相当于把用户输入的提示文本一次性处理完,提前计算好所有文字之间的关联概率
  • 解码(Decoding)技术本质
    根据预填充的"概率地图",像玩文字接龙一样逐个生成后续文字。通过温度系数控制随机性,温度高就更天马行空,温度低就保守稳妥

再举个现实例子:假设你要用AI续写《西游记》新章节:
预填充时:AI用0.5秒通读你写的开头"孙悟空掏出手机,发现唐僧发了10条微信语音…",分析师徒四人此刻该有什么反应。
解码时:AI开始逐字创作:“他/她/它(概率计算)…点开(概率计算)…第一条(概率计算)…”,每个字都基于前文动态调整。

(1)Prefill 阶段

这个阶段简单说就是并行处理用户的Prompt,将其转为KV Cache。

预填充阶段的最小部署单元由4个节点组成,每个节点配备32个GPU。注意力部分采用4路张量并行(TP4)和序列并行(SP),并结合8路数据并行(DP8)。其较小的TP规模(4路)限制了TP通信的开销。对于MoE部分,我们使用32路专家并行(EP32)

(2) Decoder 阶段

这个阶段就是做自回归的每个Token的输出。

解码阶段的最小部署单元由40个节点和320个GPU组成。注意力部分采用TP4和SP,结合DP80,而MoE部分使用EP320。对于MoE部分,每个GPU只承载一个专家,64个GPU负责承载冗余专家和共享专家

参考:
https://youcans.blog.csdn.net/article/details/145391398
https://blog.csdn.net/EnjoyEDU/article/details/145450995


http://www.kler.cn/a/576825.html

相关文章:

  • 小程序 wxml 语法 —— 37 setData() - 修改对象类型数据
  • [视频编码]rkmpp 实现硬件编码
  • 群晖DS 223 Docker:开启私有云
  • PCI 总线学习笔记(四)
  • 【linux网络编程】套接字编程API详细介绍
  • 怎么用vscode 写 markdown 文档
  • RK3568平台(音频篇)audio_policy_volumes_drc.xml解析
  • 硬件基础(4):(1)AD采集电路设计
  • Golang中的 “...” 操作符
  • 【大厂AI实践】美团:事件图谱在美团智能客服问答中的应用(基于交互的推理)
  • im即时聊天客服系统SaaS还是私有化部署:成本、安全与定制化的权衡策略
  • React基础之受控表单绑定
  • 头歌作业-数据库实验一:数据库和数据表的建立,修改和删除
  • 深入解析 JVM —— 从基础概念到实战调优的全链路学习指南
  • 【机械臂】Windows 11安装Mujoco200并运行基于强化学习的多任务机械臂Meta-word基准
  • 论文阅读_LMLPA_用大语言模型实现人格评测
  • 【linux网络编程】浏览网页时客户端与服务器之间数据交互的完整过程
  • 游戏引擎学习第144天
  • 用AI学编程3——Java学习1
  • 轻量级 Transformer 架构多模态预训练框架