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

DeepSeek相关技术整理

相关介绍

  • 2024年12月26日,DeepSeek V3模型发布(用更低的训练成本,训练出更好的效果)671B参数,激活37B。
  • 2025年1月20日,DeepSeek-R1模型发布(仅需少量标注数据(高质量长cot)使用强化学习进行训练,显著提复杂推理能力,蒸馏发布开源模型)。

相关模型

  • DeepSeek-V3:MoE架构,(MLA技术、无辅助损失的负载平衡策略、将 R1 的验证和反射模式融入 DeepSeek-V3,并显著提高了其推理性能)。通过算法、框架和硬件的协同设计,我们克服了跨节点 MoE 训练中的通信瓶颈,几乎实现了完全计算-通信重叠。(大大降低训练成本,仅需2.788M H800 GPU 小时即可完成完整训练)

  • DeepSeek-R1-Zero:基于v3做强化学习得到。但是仍在重复、可读性差的问题。

  • DeepSeek-R1:MoE 架构,通过动态路由提升复杂任务性能。

  • DeepSeek-R1-Distill-Qwen-32B:DeepSeek-R1蒸馏出的Dense模型。Student是Qwen。

重要论文

《DeepSeek V3 Technical Report》

  • 辅助损失函数 (Auxiliary Loss) 新策略: 解决了在 MOE 模型训练中,为了平衡负载而引入的辅助损失带来的模型性能损失问题。
  • Multi-Token Prediction: V3 不再采用传统的单 Token 预测,而是采用多个 token 同时预测,从而提高了模型的整体性能,同时也有利于在推理阶段使用 speculative decoding 来提升推理速度。
  • FP8 混合精度训练:使用 FP8 混合精度框架训练,并在大规模模型上验证了其可行性和有效性。通过 FP8 计算和存储,训练得到了显著的加速,并减少了 GPU 内存的使用。
  • DualPipe:通过 DualPipe 算法,显著减少了 pipeline 过程中存在的 bubble,并使得通信过程和计算过程能够高度重叠,大幅提升了训练效率。
  • 高效的跨节点通信: 使用高效的跨节点 all-to-all 通信内核,充分利用 IB 和 NVLink 的带宽,减少训练时的通信开销。
  • 论文地址

《DeepSeek R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》:

  • 不依赖监督微调的 RL:DeepSeek-R1-Zero 直接在 base 模型上运用 RL (强化学习)训练,证明AI大模型可以通过 RL 训练出更强的推理能力,不需要预先经过监督微调的训练。

  • 多阶段强化学习:为了克服 RL 产生的不稳定性,DeepSeek-R1 先使用少量数据进行监督学习,再进行面向推理的强化学习。再通过拒绝采样的方式来做监督微调,并结合全场景的 RL,最终形成了 DeepSeek-R1 模型。

  • 小模型蒸馏:DeepSeek 团队探索了如何把 R1 模型的推理能力迁移到小模型中。他们使用蒸馏的方法训练了基于 Qwen 和 Llama 的系列小模型。

《DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model》 

  • Multi-Head Latent Attention (MLA):通过对 Key 和 Value 进行低秩压缩,极大地减少了推理时的 KV cache,提高了推理效率,同时性能又比 MHA 更好。
  • DeepSeekMoE:通过精细化的专家划分和共享专家的隔离,DeepSeekMoE 能够在更低成本下训练更强大的模型。
  • Device-Limited Routing: 在训练过程中对 MoE 架构进行了改进,实现了训练效率的提升,并在跨节点通信时加入了平衡负载策略。
  • 低成本训练:V2 在性能超越 DeepSeek 67B 的同时,训练成本却降低了 42.5%。

背景知识点

蒙特卡洛搜索树

1.蒙特卡洛方法(Monte Carlo,MC)

介绍:指使⽤随机数来解决很多计算问题的⽅法总称。也叫作模拟法、统计试验法。
应用1-用随机打点,统计落在圆内的点数占比来求圆周率。
应用2-求定积分:画一个矩阵,随机打点,统计"函数下方的点数:总点数"来计算积分

2.蒙特卡洛树搜索(MCTS)

介绍:一种用来选出“最优的下一步策略”的算法。
原理:重复多次自博弈,每次选择UCT值最高的策略,进行下一步操作(避免因为执行次数低导致的胜率高胜率高引起的偏差)。最后访问次数最多的节点就是最佳策略节点。
流程:选择子节点->展开子节点->自博弈->记录更新数据。
应用:解决强化学习中的博弈问题

3.UCT:(Upper Confidence Bound Apply to Tree)

介绍:一种树搜索算法,可以解决尝试那些胜率高但是执行度低的策略。
公式:UCT=Q_i/N_i + 常数C*根号(ln(T)/N_i)     Q_i是i节点赢的次数,N_i是i节点访问次数,C是常数,而T是总访问次数。
理解:例如统计ctr的场景,uct_ctr=ctr加上一个权重,这个权重是是一个随着全局曝光数减小的一个。最终按照uct_ctr降序起到的作用就是优先“item曝光次数少但是ctr高的item,检验他们是不是真的高质量,如果后面曝光了几次ctr降了,那就减少曝光。如果ctr没降多少那就继续曝光。”。
意义:解决访问次数小时,样本不置信的问题。
应用:item的冷启曝光、蒙特卡洛树搜索。

蒙特卡洛方法,用最粗暴的方式解最难的题_哔哩哔哩_bilibili

模型微调的方法

  • SFT 可以单独使用,但效果通常不如 RLHF/DPO 好。
  • RLHF = SFT + 强化学习(PPO),适用于复杂任务,但计算开销大。
  • DPO = SFT + 直接优化,无需强化学习,计算更简单,但效果接近 RLHF。

PPO(Proximal Policy Optimization)近端策略优化

训练PPO需要需要四个大模型:

  • Reference model基准模型:(一般是SFT之后的)
  • Active model训练模型:(与基准模型一致)
  • Reward model奖励模型:对问答序列进行评分,输出一个奖励score分。
  • State-Value model状态价值模型:对每个状态评估价值,输出每个token期望的回报是多少。

训练时需要可以使用1个大模型4套Lora来实现。

蒸馏(Distillation)

概念:蒸馏是一种模型压缩技术,让一个小模型(学生模型)模仿一个大模型(教师模型)的行为或输出,将大模型的知识“蒸馏”到小模型中,从而在保持性能的同时减少模型大小。

理解:小模型不仅学习label而且拟合label在大模型中的概率分布。

举例:假设teacher模型对一张猫的图片输出概率分布为 [0.7, 0.1, 0.2](分别对应猫、狗、鸟),而真实标签是 [1, 0, 0]。学生模型不仅学习 [1, 0, 0],还学习 [0.7, 0.1, 0.2],从而知道“猫”和“狗”在某些特征上可能更相似。

蒸馏实现:student模型要学习label和teacher-model的最终的softmax输出(当做一个soft_label)。除此之外,也可以学习teacher的中间输出层,这样让teacher的中间态的表示和student的中间态分布有一定的相关性,可能效果会更好。

温度系数

作用:用于调节teacher的softmax输出,不同温度时不同label之间的概率会变化

公式:

  • 当 T=1 时,softmax 的行为与普通分类任务一致。
  • 当 T>1(温度升高),输出分布变得更加平缓,概率差距缩小,各类别的概率更接近。
  • 当 T<1(温度降低),softmax 输出更接近 one-hot 形式,高概率类别的值更大,低概率类别的值更小。
  • 常见配置:常见的设定是 T=2,5,10。

目的:高温度(T>1)会扩大较小概率类别的概率值,使得学生模型在学习时不仅关注正确类别,还能捕捉教师模型对其他类别的相对权重,从而获得更细粒度的知识

模型介绍

使用蒙特卡洛搜索树可以不用穷举全部的轨迹可能就能优化loss函数,但是问题是可能会与最优路径产生方差。

在GRPO中,优势项的计算有所不同,这种方式能减低方差。

off-line policy:

  • 经验回放缓冲区(Replay Buffer):智能体与环境交互时,将经验(状态、动作、奖励、下一状态等)存储在回放缓冲区中。每次训练只从缓冲区抽一个mini-batch,用于后续的训练。这从根本上提高了模型的训练效率。

损失函数:

π_ref:代表就是deepseek-v3

π_θ:代表当前模型。

D_KL:代表使用KL散度来约束,实现当前模型不要偏离基础模型v3太多。

A_i:优势项

优势项是从一个均值为0,方差为1的分布汇总,采样得到。

减去平均值除以方差:减去平均值是为了消除奖励的数值的影响,只有相对大小。

使用基准模型一次性生成


《Deepseek》论文 1月26日
LM可以看做是一种强化学习,state是当前prompt,action是从所有词典中选出一个token。
PPO、DPO、GRPO
RLHF 是让模型遵循标注者的偏好。
LM模型和强化学习(一种训练智能体策略的框架)区别。
论文出发点:
想拥有复杂问题的推理能力:step by step来解决。(通过强化学习来激励语言模型,使其用于复杂问题的推理能力)
之前是采用PPO,但是最近采用DPO,现在使用的是GRPO(和PPO很像)。
问题:https://www.bilibili.com/video/BV1giFNe9E4k
 

on-policy与off-policy区别

On-Policy(一边学一遍执行任务):这就像一个人一边学习一边执行任务。你在执行任务的同时,也在尝试改进你当前正在使用的方法。如果你发现了一个更好的方法,你会立即尝试在下一次任务中使用它。这种方法更像是“试错”的过程,你不断地改进自己的策略,但你的学习和执行是紧密相关的。
Off-Policy(先学习任务样例,再执行):这就像你在一边学习,一边观察其他人如何执行任务,然后在自己执行任务时应用你所学到的。你可以从其他人的经验中学习,而不必亲自尝试每个可能的方法。这种方法更加灵活,你可以在学习过程中积累经验,然后在以后的任务中应用这些经验,即使你的策略发生了变化。

  • On-Policy 方法严格依赖当前策略生成的数据,数据效率较低,但训练过程更稳定。

  • Off-Policy 方法可以利用历史数据,数据效率更高,但可能需要额外的技巧(如目标网络)来稳定训练。


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

相关文章:

  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.29 NumPy+Scikit-learn(sklearn):机器学习基石揭秘
  • SQL Server中RANK()函数:处理并列排名与自然跳号
  • WPS怎么使用latex公式?
  • list容器(详解)
  • ESLint
  • PHP Mail:高效邮件发送解决方案详解
  • 基于RTOS的STM32游戏机
  • 电商项目高级篇09-检索服务
  • Linux find 命令 | grep 命令 | 查找 / 列出文件或目录路径 | 示例
  • 2025美赛赛前准备笔记(论文手)
  • 【IoCDI】_@Bean的参数传递
  • leetcode 901. 股票价格跨度
  • 【玩转 Postman 接口测试与开发2_016】第13章:在 Postman 中实现契约测试(Contract Testing)与 API 接口验证(上)
  • 【25考研】南开软件考研复试复习重点!
  • redis实现延迟任务
  • 结构体排序 C++ 蓝桥杯
  • C++引用练习题
  • 基于springboot的电影评论网站(源码+数据库+文档)
  • PVE纵览-实现极致性能:在Proxmox VE中配置硬盘直通
  • Office / WPS 公式、Mathtype 公式输入花体字、空心字
  • 【C# 】图像资源的使用
  • 结合 vim-plug 安装并使用 Gruvbox 主题教程
  • 使用Posix共享内存区实现进程间通信
  • 二维数组 C++ 蓝桥杯
  • vue生命周期及其作用
  • 基于机器学习的布伦特原油价格的分析与研究