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

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。推理数据采⽤基于规则的奖励,通⽤ 数据使⽤奖励模型捕捉⼈类偏好。分别从最终总结和整个响应评估模型的有⽤性和⽆害性,确保模 型在推理能⼒提升的同时,更安全、更实⽤。

总结:

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

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

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

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

相关文章:

DeepSeek模型架构及优化内容

DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计: 采⽤Pre-Norm结构,并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network(FFN)的激活函数,中间层维度为8/3. 去除绝对位置编码,采⽤了…...

html语义化

常见语义化标签有&#xff1a; &#xff08;1&#xff09;页面结构标签&#xff1a;<header>、<nav>、<main>、<article>、<section>、<aside>、<footer> &#xff08;2&#xff09;文本语义标签&#xff1a;<h1>-<h6>…...

python学习第十四天之机器学习名词介绍

名词介绍 1. 常用术语解释2.常见机器学习任务3. 机器学习常见算法1. 监督学习&#xff08;Supervised Learning&#xff09;2. 非监督学习&#xff08;Unsupervised Learning&#xff09;3.深度学习4.**对比总结** 1. 常用术语解释 拟合&#xff08;Fit&#xff09;&#xff1…...

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行&#xff0c;会出现老化、疲劳、磨损等 问题&#xff0c;为了避免意外停机造成损失&#xff0c;需要加装一些健康监测设备&#xff0c;监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡&#xff08;下图 1&#xff09;对…...

汽车与AI深度融合:CES Asia 2025前瞻

在科技飞速发展的当下&#xff0c;汽车与AI的融合正成为行业变革的关键驱动力。近日&#xff0c;吉利、极氪、岚图、智己等多家车企纷纷官宣与DeepSeek模型深度融合&#xff0c;其中岚图知音更是将成为首个搭载该模型的量产车型&#xff0c;这无疑是汽车智能化进程中的重要里程…...

前端实现 GIF 图片循环播放

前言 使用 img 加载 GIF 图片&#xff0c;内容只会播放一次&#xff0c;之后就会自动暂停&#xff1b; 通过定时器在一段时间后重新加载图片的方式&#xff0c;会导致浏览器内存不断增大&#xff0c;并且可能会有闪烁、卡顿的问题&#xff1b; ImageDecoder WebCodecs API 的…...

React - 事件绑定this

在 React 中&#xff0c;this 的绑定是一个常见问题&#xff0c;尤其在类组件中使用事件处理函数时。JavaScript 中的 bind 函数用于设置函数调用时 this 的值。 bind 函数的作用 bind() 方法创建一个新的函数&#xff0c;当被调用时&#xff0c;其 this 关键字被设置为提供的…...

STM32系统架构介绍

STM32系统架构 1. CM3/4系统架构2. CM3/4系统架构-----存储器组织结构2.1 寄存器地址映射&#xff08;特殊的存储器&#xff09;2.2 寄存器地址计算2.3 寄存器的封装 3. CM3/4系统架构-----时钟系统 STM32 和 ARM 以及 ARM7是什么关系? ARM 是一个做芯片标准的公司&#xff0c…...

Macbook Pro快速搭建Easysearch学习环境

在学习过程中&#xff0c;我们有时身边没有可用的服务器&#xff0c;这时就需要借助自己的 Mac 来安装和学习 Easysearch。然而&#xff0c;Easysearch 官网并未提供 Mac 版本的安装教程&#xff0c;下面我将详细整理我在 Mac 上安装和使用 Easysearch 的折腾经历。 Easysearc…...

老游戏回顾:SWRacer

竞速类游戏里&#xff0c;我很怀念它。 虽然已经25年过去了。 相比之下&#xff0c;别的游戏真的没法形容。 ---- 是LucasArts制作的一款赛车竞速游戏&#xff1b; 玩家要扮演一名银河旅行者参加各种赛车比赛&#xff0c;赢得奖金&#xff0c;在经历了八个不同星球上的24场…...

Firefox无法隐藏标题栏

Openbox 窗管 Firefox 无法隐藏标题栏。 深度Linux安装火狐,Linux(deepin) 下隐藏 Firefox 标题栏-CSDN博客 需要在 desktop 的 exec 中增加环境变量&#xff1a; Execenv MOZ_GTK_TITLEBAR_DECORATIONclient firefox...

vue基础(五)

Vue 实例在创建、挂载、更新、销毁的过程中会触发一系列的生命周期钩子&#xff08;Lifecycle Hooks&#xff09;&#xff0c;让开发者可以在不同阶段执行逻辑。 1. Vue 2 生命周期完整流程 生命周期的四个主要阶段 创建阶段&#xff08;Creation&#xff09;挂载阶段&#…...

MySQL的深度分页如何优化?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL的深度分页如何优化&#xff1f;】面试题。希望对大家有帮助&#xff1b; MySQL的深度分页如何优化&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL的深度分页&#xff08;即跳过大量数据后进行分…...

深度学习每周学习总结R6(RNN实现阿尔茨海默病诊断)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客R8中的内容&#xff0c;为了便于自己整理总结起名为R6&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 0. 总结1. 数据集介绍2. 数据预处理3. 模型构建4. 初始化模型及优化器5. 训练函…...

Node.js 多模态图像描述服务 调用siliconflow:现代 JavaScript 实践

Node.js 多模态图像描述服务&#xff1a;现代 JavaScript 实践 项目背景 本项目使用 Node.js 和 TypeScript 实现一个高性能的图像描述微服务&#xff0c;展示 JavaScript 在多模态 AI 应用中的强大能力。 技术栈 Node.jsTypeScriptExpress.jsOpenAI APIdotenvRxJS (可选&a…...

机器学习数学基础:21.特征值与特征向量

一、引言 在现代科学与工程的众多领域中&#xff0c;线性代数扮演着举足轻重的角色。其中&#xff0c;特征值、特征向量以及相似对角化的概念和方法&#xff0c;不仅是线性代数理论体系的核心部分&#xff0c;更是解决实际问题的有力工具。无论是在物理学中描述系统的振动模式…...

【目标检测json2txt】label从COCO格式json文件转YOLO格式txt文件

目录 🍀🍀1.COCO格式json文件 🌷🌷2.YOLO格式txt文件 💖💖3.xml2json代码(python) 🐸🐸4.输入输出展示 🙋🙋4.1输入json 🍂🍂4.2输出txt 整理不易,欢迎一键三连!!! 送你们一条美丽的--分割线-- 🍀🍀1.COCO格式json文件 COCO数…...

强化学习之 PPO 算法:原理、实现与案例深度剖析

目录 一、引言二、PPO 算法原理2.1 策略梯度2.2 PPO 核心思想 三、PPO 算法公式推导3.1 重要性采样3.2 优势函数估计 四、PPO 算法代码实现&#xff08;以 Python 和 PyTorch 为例&#xff09;五、PPO 算法案例应用5.1 机器人控制5.2 自动驾驶 六、总结 一、引言 强化学习作为…...

vue-点击生成动态值,动态渲染回显输入框

1.前言 动态点击生成数值&#xff0c;回显输入框&#xff0c;并绑定。 2.实现 <template><div style"display:flex;align-items: center;flex-direction:row"><a-input:key"inputKey"v-model"uploadData[peo.field]"placehold…...

高性能 :OpenAI Triton Open-source GPU programming Language LINUX 环境配置

目录 配置triton环境cudabuild-essential带有pip的python环境直接安装pipanaconda 安装 triton 环境pip install tritonpip install torch 运行test示例vector-add.pylaunch.json 配置triton环境 cuda wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_…...

TCP 端口号为何位于首部前四个字节?协议设计的智慧与启示

知乎的一个问题很有意思&#xff1a;“为什么在TCP首部中要把TCP的端口号放入最开始的四个字节&#xff1f;” 这种问题很适合我这种搞历史的人&#xff0c;大年初一我给出了一个简短的解释&#xff0c;但仔细探究这个问题&#xff0c;我们将会获得 TCP/IP 被定义的过程。 文…...

HTML之JavaScript函数声明

HTML之JavaScript函数声明 1. function 函数名(){}2. var 函数名 function(){}<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…...

R 数组:高效数据处理的基础

R 数组&#xff1a;高效数据处理的基础 引言 在数据科学和统计分析领域&#xff0c;R 语言以其强大的数据处理和分析能力而备受推崇。R 数组是 R 语言中用于存储和操作数据的基本数据结构。本文将详细介绍 R 数组的创建、操作和优化&#xff0c;帮助读者掌握 R 数组的使用技巧…...

git服务器搭建,gitea服务搭建,使用systemclt管理服务

文章目录 页面展示使用二进制文件安装git服务下载选择架构使用wget下载安装 验证 GPG 签名服务器设置准备环境创建systemctl文件 备份与恢复备份命令 (dump)恢复命令 (restore) 页面展示 使用二进制文件安装git服务 所有打包的二进制程序均包含 SQLite&#xff0c;MySQL 和 Po…...

Pdf手册阅读(1)--数字签名篇

原文阅读摘要 PDF支持的数字签名&#xff0c; 不仅仅是公私钥签名&#xff0c;还可以是指纹、手写、虹膜等生物识别签名。PDF签名的计算方式&#xff0c;可以基于字节范围进行计算&#xff0c;也可以基于Pdf 对象&#xff08;pdf object&#xff09;进行计算。 PDF文件可能包…...

嵌入式WebRTC压缩至670K,目标将so动态库压缩至500K,.a静态库还可以更小

最近把EasyRTC的效果发布出去给各大IPC厂商体验了一下&#xff0c;直接就用EasyRTC与各个厂商的负责人进行的通话&#xff0c;在通话中&#xff0c;用户就反馈效果确实不错&#xff01; 这两天有用户要在海思hi3516cv610上使用EasyRTC&#xff0c;工具链是&#xff1a;gcc-2024…...

百度高德地图坐标转换

百度地图和高德地图的侧重点不太一样。同样一个地名&#xff0c;在百度地图网站上搜索到的地点可能是商业网点&#xff0c;在高德地图网站上搜索到的地点可能是自然行政地点。 高德地图api 在高德地图中&#xff0c;搜索地名&#xff0c;如“乱石头川”&#xff0c;该地名会出…...

ES 索引结构

ES 既不像 MySQL 这样有严格的 Schema&#xff0c;也不像 MongoDB 那样完全无 Schema&#xff0c;而是介于两者之间。 1️⃣ ES 的 Schema 模式 ES 默认是 Schema-less&#xff08;无模式&#xff09; 的&#xff0c;允许动态添加字段。 但 ES 也支持 Schema&#xff08;映射 …...

HPM_SDK应用本地化——基于6750evkmini

文章目录 前言一、准备工作1、下载官方的SDK2、解压SDK 二、实操1、新建目标工程文件夹2、回到SDK中将相关文件复制1、Borad文件夹2、hello_world文件夹 三、实验现象总结 前言 为什么要对sdk进行应用本地化&#xff1f;在嵌入式开发中我们一般将官方提供的SDK作为参考&#x…...

【deepseek-r1本地部署】

首先需要安装ollama,之前已经安装过了&#xff0c;这里不展示细节 在cmd中输入官网安装命令&#xff1a;ollama run deepseek-r1:32b&#xff0c;开始下载 出现success后&#xff0c;下载完成 接下来就可以使用了&#xff0c;不过是用cmd来运行使用 可以安装UI可视化界面&a…...