DeepSeek模型架构及优化内容

DeepSeek

v1版本

模型结构

DeepSeek LLM基本上遵循LLaMA的设计:

采⽤Pre-Norm结构,并使⽤RMSNorm函数.

利⽤SwiGLU作为Feed-Forward Network(FFN)的激活函数,中间层维度为8/3. 去除绝对位置编码,采⽤了RoPE旋转位置编码。

为了优化推理成本. 67B模型使⽤分组查询注意⼒(GQA)⽽不是传统的多头注意⼒(MHA).

超参数设置

优化器:采⽤adamW优化器, β1=0.9, β2=0.95 ,weight_decay为0.1。

学习率策略:与Llama使⽤余弦学习率调度器不同,其采⽤的是多阶段学习率调度器。该策略通过 “预热-稳态-分阶衰减” 的耦合设计,兼顾训练稳定性、收敛效率与泛化性能。

  1. 预热阶段(0~2000步)学习率从较⼩初始值线性增⻓⾄峰值(如3e-4),通过渐进 式升温避免训练初期因梯度剧烈波动导致的权重震荡,为模型提供稳定的初始化环境。

  2. 稳定收敛阶段(2000步后⾄总训练token的80%)学习率保持峰值恒定,使模型在核 ⼼训练周期内充分利⽤⾼学习率的快速收敛能⼒,同时配合梯度截断(clip=1.0) 约束 梯度幅值,防⽌梯度爆炸并提升训练稳定性。

  3. 分步退⽕阶段(总训练token的80%~100%)

    第⼀阶段退⽕(80%~90% token):学习率从峰值线性降⾄31.6%(如3e-4 → 9.48e-5),开始细化模型权重;

    第⼆阶段退⽕(90%~100% token):学习率进⼀步降⾄峰值的10%(如9.48e 5 → 3e-5),通过低速微调抑制过拟合⻛险,促使模型收敛⾄更平坦的极⼩值区 域。

其他

作者还对DeepSeek LLM基础模型进⾏了SFT和直接偏好优化(DPO),从⽽创建了DeepSeek Chat模 型。与GPT-3.5相⽐,DeepSeek LLM 67B Chat表现出更优越的性能。

DeepSeek Math

DeepSeekMath可以被看作是使⽤与DeepSeek LLM相同的模型架构,通过两阶段训练逐步优化⽽来的模型,是专注于数学推理任务的模型。

第⼀阶段:在特定的数据集上使⽤DeepSeek LLM相同的模型架构进⾏预训练,得到专注于代码⽣ 成与理解的DeepSeek-Coder-Base-v1.5;

第⼆阶段:在DeepSeek-Coder-Base-v1.5基础上,进⼀步对与数学相关的任务和数据进⾏专⻔的 预训练和微调(例如,⾼等数学、数学证明、符号计算等)。这个过程中,模型可能会结合代码与 数学推理能⼒,使其在处理数学公式、复杂计算和逻辑推理任务上表现更优。DeepSeekMath的 创新在于强化学习阶段引⼊了Group Relative Policy Optimization (GRPO) 算法,进⼀步提升了多 任务处理和推理能⼒。

PPO

SFT

在有标注的数据上进行模型的微调,使得模型适应特定的任务,即:构建SFT模型

①数据收集: 选择一个问题列表, 标注人员按要求写下预期的输出. 可用于调优预训练的语言模型.

②模型选择: 基线模型是最新版的 text-davinci-003(通过对程序代码调优的 GPT-3 模型)

由于此步骤的数据量有限, 该过程获得的 SFT 模型可能会输出仍然并非用户关注的文本, 并且通常会出现不一致问题.

为了克服这个问题, 使用的策略是让人工标注者对 SFT 模型的不同输出进行排序,我们关注哪个输出是最好的,进而提出 RM 模型, 而不是让人工标注者创建一个更大的精选数据集.

RM

构建判断SFT模型的输出是否满足人类预期的奖励模型

选择问题列表, SFT 模型为每个问题生成多个输出(4 到 9 之间的任意值)

标注者将输出从最佳到最差排序. 结果是一个新的标签数据集, 该数据集的大小大约是用于 SFT 模型的精确数据集的 10 倍;

此新数据用于训练 RM 模型 . 该模型将 SFT 模型输出作为输入, 并按优先顺序对它们进行排序.

模型选择: RM模型是GPT-3的蒸馏版本(参数量为6亿), 目的是通过该训练模型得到一个预测值(得分), 模型损失函数为下图表示:

PPO

用SFT模型初始化参考模型(防止模型训歪),和Action模型(最后需要的模型,用于生成符合人类预期内容的模型),用RM模型初始化奖励模型(当前状态下做出动作后的奖励)和Critic模型(做出当前动作后下一步可能获得的奖励),并切在奖励中增加优势,包含当前优势和下一步优势(中路走野区支援上路,原本可以收割一个人头,但实际收割了两个,多出的人头就是优势)

在训练过程中冻结参考模型和奖励模型的参数,只更新Action模型和Critic模型的参数

GRPO

对比PPO,GRPO去除了Critic模型,对于同⼀个 prompt 采 G 个答案,平均 G 个答案的得分当作 baseline

GRPO⽅法主要包含以下五个步骤:

采样:对于每个问题,GRPO从旧策略模型中采样⼀组输出。

奖励计算:使⽤奖励模型为每个采样输出打分,得到⼀组奖励。

基线估计:将这些奖励进⾏归⼀化处理(减去组平均值,除以组标准差),然后使⽤归⼀化的奖励 作为基线。

优化⽬标:GRPO通过最⼤化⼀个包含相对优势的优化⽬标函数来更新策略模型。相对优势是指在 同⼀组中,各个输出相对于基线的优势。

迭代训练:GRPO可以进⾏迭代训练,其中奖励模型会根据策略模型的新采样结果不断更新,以提 供更准确的训练信号。

DeepSeekV2

在 DeepSeek 67B的基础上,DeepSeek-V2 对模型进⾏了进⼀步优化,在注意⼒机制模块和FFN上,设 计并采⽤了创新的架构。

  1. 注意⼒模块采⽤MLA,减少了推理过程中的KV Cache,提⾼了推理效率。可以容纳更⼤的batch和 更⻓的句⼦。

  2. 采⽤了sparse MOE结构,模型的训练效率更⾼。

MLA

GQA和MQA的实现⽅式,在于直接减少需要存储的Key和Value,Key和Value都不再是【多头】。 GQA通过Group的⽅式,多个Query组成⼀个Group对应⼀个Key和Value;MQA直接由多个head 的Key和Value,变为单个Key和Value,即多头的维度只保留在Query中。

MLA采⽤了另外⼀种思路,类似于LORA的低秩转换的思路,不再直接减少Cache的Key和Value的 数量,⽽是通过【低秩】转换为⼀个压缩的KV,存储的KV的维度显著减⼩。同时在计算注意⼒ 时,通过projection的⽅式获取多头的Key和Value,保留了多头的注意⼒计算⽅式。

MLA相⽐MQA和GQA(在明显降低缓存的同时,效果相⽐MHA还更好。MQA和GQA相⽐MHA,虽然 降低了KV Cache,但效果不如MHA。

MOE
  1. 细粒度专家分割(Fine-Grained Expert Segmentation):通过将每个FFN专家进⼀步细分,这 允许模型在保持参数总数不变的情况下,激活更多的、更细粒度的专家。这种策略使得各个专家能 够专注于更细致的知识领域,提⾼了专家的专业化程度。(通过将FFN中间隐藏维度减少到原来⼤ ⼩的1/m,将每个专家FFN分割为m个更⼩的专家。)

  2. 共享专家隔离(Shared Expert Isolation):设置⼀部分专家作为“共享专家”,这些专家总是被 激活,⽤于捕捉和整合常⻅的跨上下⽂知识。这样可以减少路由专家之间的知识冗余,每个路由专 家可以更专注于独特的知识领域。

改进传统的MOE存在的知识杂糅和知识冗余的问题

  1. 知识杂糅(Knowledge Hybridity):传统的MoE模型中,每个专家往往需要处理多种类型的知 识,这使得专家难以形成专⻔化的知识结构。

  2. 知识冗余(Knowledge Redundancy):不同的专家在处理不同的输⼊时可能需要相同的知识, 导致多个专家中存在重复的知识,浪费了模型参数。

DeepSeekV3

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

⽆辅助损失的负载均衡策略,相对⽐较简单,就是进⾏TopK运算的时候添加了⼀个额外的偏置项 来调节路由专家被选择到的概率

Multi-Token Prediction

举例:

一个序列有10个token,主模型由前3个token(1,2,3)预测第4个token(2,3,4),在预测时,将经过解码器层后的输出和第一个MTP的输入(2,3,4)经过embedding后的结果拼接送入,预测(3, 4, 5),以此类推,直到预测到最后一个token

这⾥的训练损失就是预测的token序列和真实token序列的[交叉熵]损失;以上策略是⽤来提升主模 型的性能的,也就是说所有的MTP块是不参与推理的,所以在推理时,⼤模型做的仍然是⼀个 Next-token Prediction的⼯作,且只有主模型在⼯作。

DeepSeekR1

冷启动:与DeepSeek - R1 - Zero不同,DeepSeek - R1构建并收集少量⻓思维链(CoT)数据对 DeepSeek - V3 - Base模型进⾏微调,作为RL的初始阶段。这些冷启动数据格式更具可读性,包含 推理过程总结,基于⼈类先验知识设计模式,相⽐DeepSeek - R1 - Zero表现更优。

推理导向的强化学习:在冷启动微调后的模型上,采⽤与DeepSeek - R1 - Zero相同的⼤规模RL训 练过程。针对语⾔混合问题,引⼊语⾔⼀致性奖励,将推理任务准确性和语⾔⼀致性奖励结合,优 化模型表现,使其更符合⼈类偏好。

拒绝采样和监督微调:推理导向的RL收敛后,利⽤模型检查点收集监督微调(SFT)数据。推理数 据通过拒绝采样⽣成,扩⼤数据集并纳⼊⽣成式奖励模型评估的数据,同时过滤掉混乱和不可读的 输出。⾮推理数据复⽤DeepSeek - V3的部分SFT数据集,涵盖写作、事实问答等领域。⽤约800k 样本对模型进⾏两个epoch的微调。

LLM 的拒绝采样操作起来⾮常简单:让⾃⼰的模型针对 prompt ⽣成多个候选 response, 然后⽤ reward_model筛选出来⾼质量的 response (也可以是 pair 对),拿来再次进⾏训 练。

全场景强化学习:为使模型更符合⼈类偏好,进⾏⼆次RL。推理数据采⽤基于规则的奖励,通⽤ 数据使⽤奖励模型捕捉⼈类偏好。分别从最终总结和整个响应评估模型的有⽤性和⽆害性,确保模 型在推理能⼒提升的同时,更安全、更实⽤。

总结:

初始阶段采⽤数千个⾼品质样本进⾏监督式微调

针对推理任务进⾏强化学习

通过拒绝抽样⽅法收集新的训练数据

对所有类型的任务进⾏最终强化学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16375.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网ip网段记录

1.介绍 常见的内网IP段有: A类: 10.0.0.0/8 大型企业内部网络(如 AWS、阿里云) 10.0.0.0 - 10.255.255.255 B类:172.16.0.0/12 中型企业、学校 172.16.0.0 - 172.31.255.255 C类:192.168.0.0/16 家庭…

【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现

医院在为患者进行诊断和治疗过程中,会产生大量的医学影像图片,如 X 光片、CT 扫描图、MRI 图像等。这些图片通常会按照检查时间或者检查项目存放在不同的文件夹中。为了方便医生查阅和患者病历的长期保存,需要将每个患者文件夹下的图片合并成…

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…

129,【2】buuctf [BJDCTF2020]EzPHP

进入靶场 查看源代码 看到红框就知道对了 她下面那句话是编码后的&#xff0c;解码 1nD3x.php <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;通常用于调试和展示代码结构 highlight_file(__FILE__); // 设置错误报告级别为 0&#xff0c;即不显示任何 PHP 错误信息…

MapReduce到底是个啥?

在聊 MapReduce 之前不妨先看个例子&#xff1a;假设某短视频平台日活用户大约在7000万左右&#xff0c;若平均每一个用户产生3条行为日志&#xff1a;点赞、转发、收藏&#xff1b;这样就是两亿条行为日志&#xff0c;再假设每条日志大小为100个字节&#xff0c;那么一天就会产…

LeetCode --- 435周赛

题目列表 3442. 奇偶频次间的最大差值 I 3443. K 次修改后的最大曼哈顿距离 3444. 使数组包含目标值倍数的最少增量 3445. 奇偶频次间的最大差值 II 一、奇偶频次间的最大差值I 统计字母出现次数&#xff0c;然后分别统计出现偶数次的最小值和出现奇数次的最大值&#xff0c;…

chrome-mojo C++ Bindings API

概述 Mojo C 绑定 API 利用C 系统 API提供一组更自然的原语&#xff0c;用于通过 Mojo 消息管道进行通信。结合从Mojom IDL 和绑定生成器生成的代码&#xff0c;用户可以轻松地跨任意进程内和进程间边界连接接口客户端和实现。 本文档通过示例代码片段提供了绑定 API 用法的详…

目标检测数据集合集(持续更新中)

第1期 高压输电线塔鸟巢数据集 第2期 特种工程车辆检测数据集 第3期 金桔目标检测数据集 第4期 金属锈蚀识别检测数据集 第5期 苦瓜目标检测数据集 第6期 石榴目标检测数据集YOLO格式 第7期 光伏电池板缺陷检测数据集YOLO格式 第8期 铁路轨道异物入侵检测数据集YOLO格式…

活动预告 | 为 AI 新纪元做好准备:助力安全的业务转型

课程介绍 随着现代办公模式的不断演变和 AI 技术的迅速发展&#xff0c;企业在享受效率提升的同时&#xff0c;也面临着信息安全与数据保护的严峻挑战。在利用 AI 技术释放业务潜力的同时&#xff0c;如何确保数据质量与安全已成为企业发展的关键议题。 在本次线上课程中&…

语义分割文献阅读——SETR:使用Transformer从序列到序列的角度重新思考语义分割

目录 摘要 Abstract 1 引言 2 Vision Transformer(ViT) 2.1 图片预处理&#xff1a;分块和降维 2.2 Patch Embedding 2.3 位置编码 2.4 Transformer Encoder的前向过程 3 SETR 3.1 图像序列化处理 3.2 Transformer 3.3 解码器 总结 摘要 本周阅读的论文题目是《R…

深度学习入门--python入门1

以前学的python全部还给老师了&#xff0c;所以现在重新开始学习了。目标是每天至少学习一点点吧。 目录 1.1 python是什么 1.2 python安装 1.3 python解释器 1.3.1 算术计算 1.3.2 数据类型 1.3.3 变量 1.3.4 列表&#xff08;数组&#xff09; 1.3.5 字典 1.3.6 布…

【2024最新Java面试宝典】—— SpringBoot面试题(44道含答案)_java spingboot 面试题

37. 如何重新加载 Spring Boot 上的更改&#xff0c;而无需重新启动服务器&#xff1f;Spring Boot项目如何热部署&#xff1f;38. SpringBoot微服务中如何实现 session 共享 ?39. 您使用了哪些 starter maven 依赖项&#xff1f;40. Spring Boot 中的 starter 到底是什么 ?4…

【动态规划】风扫枯杨,满地堆黄叶 - 9. 完全背包问题

本篇博客给大家带来的是完全背包问题之动态规划解法技巧. &#x1f40e;文章专栏: 动态规划 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; 要开心要快乐顺…

python-leetcode-单词搜索

79. 单词搜索 - 力扣&#xff08;LeetCode&#xff09; class Solution:def exist(self, board: List[List[str]], word: str) -> bool:if not board or not board[0]:return Falserows, cols len(board), len(board[0])def backtrack(r, c, index):if index len(word):re…

游戏引擎学习第98天

仓库:https://gitee.com/mrxiao_com/2d_game_2 开始进行一点回顾 今天的目标是继续实现正常贴图的操作&#xff0c;尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作&#xff0c;接下来将集中精力实现正常贴图的基本操作&#xff0c;并准备…

PH热榜 | 2025-02-10

1. 2pr 标语&#xff1a;人工智能帮你把想法变成LinkedIn爆款 或者更口语化一点&#xff1a; AI帮你把点子变成LinkedIn上的热门帖子 介绍&#xff1a;用AI主持的访谈&#xff0c;把你的想法变成LinkedIn爆款帖子。录制你的想法&#xff0c;让AI帮你创作个性化、引人入胜的…

django配置跨域

1、第一种 from django.views.decorators.csrf import csrf_exemptcsrf_exempt第二种 安装 pip install django-cors-headers在配置文件settings.py进入 INSTALLED_APPS [..."corsheaders", # 添加 ]MIDDLEWARE [corsheaders.middleware.CorsMiddleware, # 添加…

使用C语言实现MySQL数据库的增删改查操作指南

使用C语言与MySQL数据库进行交互,通常涉及使用MySQL提供的C API库。这套API允许开发者在C/C++程序中执行SQL查询,从而实现数据库的增删改查操作。下面,我将详细介绍如何在C语言中实现这些基本操作。 准备工作 安装MySQL开发库:确保你的系统上安装了MySQL服务器以及MySQL开发…

25考研电子信息复试面试常见核心问题真题汇总,电子信息考研复试没有项目怎么办?电子信息考研复试到底该如何准备?

你是不是在为电子信息考研复试焦虑&#xff1f;害怕被老师问到刁钻问题、担心专业面答不上来&#xff1f;别慌&#xff01;作为复试面试92分逆袭上岸的学姐&#xff0c;今天手把手教你拆解电子信息类复试通关密码&#xff01;看完这篇&#xff0c;让你面试现场直接开大&#xf…

vite + axios 代理不起作用 404 无效

vite axios 代理不起作用 先看官方示例 export default defineConfig({server: {proxy: {// 字符串简写写法/foo: http://localhost:4567,// 选项写法/api: {target: http://jsonplaceholder.typicode.com,changeOrigin: true,rewrite: (path) > path.replace(/^\/api/, )…