DeepSeek面试——模型架构和主要创新点

news2025/3/28 6:47:12

本文将介绍DeepSeek的模型架构多头潜在注意力(MLA)技术,混合专家(MoE)架构, 无辅助损失负载均衡技术,多Token 预测(MTP)策略。

一、模型架构

DeepSeek-R1的基本架构沿用了DeepSeek-V3 的架构。其特点是多头潜在注意力 (MLA) 用于高效推理,混合专家模型(MoE)用于经济训练,多标记预测 (MTP) 提高评估基准的整体性能,辅助无损失负载均衡策略来减轻因确保负载平衡而引起的性能下降。其中前两个是DeepSeekV2使用并验证效果,后两个是DeepSeekV3提出。

总的来说,DeepSeek-R1 是一种改进的Transform 架构,其中每个Transform块由一个Attention模块和一个FFN组成。然而,对于Attention和 FFN,DeepSeek设计并采用了新的架构。针对注意力设计了 MLA,支持高效推理。针对 FFN采用高性能DeepSeekMoE 架构,能够以经济成本训练强大模型的架构。DeepSeek 的架构如下图所示:

二、MLA

多头潜在注意力MLA(Multi-Head Latent Attention)如上图右下角,核心原理是利用低秩KV联合压缩来消除推理时间键值缓存和计算量

其实现步骤可以看成三步:

第一步:输入映射到低秩潜在空间,输入h_{t}分别乘以QKV的低秩权重矩阵得到c_{t}^{Q}c_{t}^{KV}此时矩阵的秩远远小于h_{t}的秩。类似下图,利用矩阵乘法将输入映射到潜在空间,实现低秩压缩。

同时对输入h_{t}c_{t}^{Q}乘以携带旋转位置编码(RoPE)的解耦键的矩阵;apply RoPE表示应用 RoPE 矩阵的操作;多个框层叠在一起表示计算i次后拼接。需要注意的是,对于 MLA,在生成过程中仅需缓存c_{t}^{KV}k_{t}^{R},这在保持与标准多头注意力(MHA)相当性能的同时,显著减少了键值(KV)缓存量。

第二步:潜在空间中的多头注意力计算

在潜在空间上进行Multi head attention计算。

第三步:映射回原始空间

第一步的反向操作,将低秩潜在空间映射回原始空间

MLA的优势

1. 性能保持:MLA通过低秩压缩减少了KV缓存和激活内存,但仍然能够保持与标准多头注意力(MHA)相当的性能。

2. 效率提升:通过在低维潜在空间中执行注意力计算,复杂度由O(n2d) 降至 O(n2k),在推理过程中,MLA只需要缓存压缩后的键和值,显著减少了内存占用,有效降低复杂度。

3. 旋转位置嵌入(RoPE):RoPE通过旋转操作将位置信息嵌入到键和查询中,有效处理了长序列中的位置依赖问题,使得模型能够更好地捕捉长距离依赖关系。

三、MOE

混合专家架构MOE(Mixture-of-Experts)首次出现于1991年的论文Adaptive Mixture of Local Experts中。DeepSeekMoE中包含 2048 个领域专家模型,通过门控网络动态分配查询请求。与 传统 FFN 架构相比,DeepSeekMoE 使用更细粒度的专家,并将一些专家隔离为共享专家。

共享专家(share experts)所有输入均参与计算,路由专家(routed experts)使用 sigmoid 函数计算亲和分数,并对所有选中的亲和分数进行归一化以生成门控值。取门控制TopK的专家参与计算。

MoE的核心思想是“分而治之”,由多个专家组成,每个专家都是一个局部模型,专门处理输入空间的一个子集。MoE 使用门控网络来决定每个数据应该被哪个模型去训练,从而减轻不同类型样本之间的干扰,理想实现是某类数据由某类专家来判定结果。

MoE的优势:

1. 专家协作:能够处理不同输入数据中的共性特征,实现跨不同类型输入数据的知识共享,这有助于减少模型参数的冗余。而路由专家则专注于处理具有特定模式或特征的数据,从而提升模型对各种数据的适应性和处理效率。

2. 专家分配:引入了更为精细化的专家分配机制,使得门控网络能够更准确地分析输入数据的特征,并将其导向最匹配的专家,从而增强模型处理复杂数据的能力。

3. 专家激活:每个输入Token激活8个路由专家,这在确保模型处理效果的同时,有效避免了因过度激活专家而导致的计算资源浪费,从而提升了计算效率并降低了计算成本。

四、无辅助损失负载均衡技术

无辅助损失负载均衡技术(Auxiliary-Loss-Free Load Balancing)在MoE大模型训练过程中,输入会根据路由规则分配到不同的专家模型进行处理,这个过程中可能会出现负载不均衡的情况,即某些专家模型被频繁调用,而另一些专家模型则很少被使用,这会导致训练效率和模型性能下降。

常规解决方案通常依赖于辅助损失以避免负载不平衡,然而,过大的辅助损耗会损害模型性能。为了在负载均衡和模型性能之间实现更好的权衡,DeepSeek提出了一种辅助无损负载均衡策略来确保负载均衡。具体来说,为每个专家引入了可学习的一个偏差项B_{i},并且将其添加到相应专家的分数中。在训练过程中该偏置项会动态调整每个专家的匹配得分,基于得分和对各专家利用率的实时监测,动态调整路由策略,将输入Token分配给负载较低的专家。

即每个步骤结束时,如果相应的专家过载,则减少偏差项,如果相应的专家欠载,将增加偏差项。通过动态调整,DeepSeek在训练过程中保持平衡的专家负载,并取得了比通过纯辅助损失鼓励负载均衡的模型更好的性能。

序列平衡辅助损失(Complementary Sequence-Wise Auxiliary Loss)。虽然 DeepSeek-V3 主要依靠辅助无损失策略进行负载均衡,但为了防止任何单个序列内的极端不平衡,还采用了序列平衡损失。对序列中的每个 Token 进行精细化的分析和处理,根据 Token 在序列中的位置、上下文信息等更合理地分配到各个专家,序列平衡损失每个序列上的专家负载保持平衡。

五、MTP

多Token 预测MTP(Multi-Token Prediction)。包含主模型Main Model(基础的下一个令牌预测)和 D个顺序MTP模块MTP Module(扩展预测未来D个Token)。每个MTP模块由以下组件构成:
• 共享嵌入层(Embedding Layer):与主模型共用,减少参数冗余;
• 共享输出头(Output Head):与主模型共用输出层;
• 独立Transformer块(TRMₖ):每个模块有专属的Transformer块;
• 线性投影矩阵(Linear Projection):用于结合当前令牌表示与未来令牌嵌入;
• 均方根归一化(RMSNorm):替代传统LayerNorm,提升计算效率。

训练目标:每个MTP模块单独计算交叉熵损失L_{MTP},总损失为每个MTP模块损失的加权平均:

λ值调节:通过实验确定最优权重以平衡主模型与MTP模块的训练信号。最终使用L_{Main}+L_{MTP}作为最终损失函数。

优势:
训练阶段通过输入单个Token使用MTP的方式增加模型的学习能力,模型可以通过单Token得到多个平均后的损失,使模型增加单位数据的训练信号量,有利于模型稳定和加速收敛。

推理阶段可单独使用Main Model(丢弃MTP模块),保持常规生成能力。MTP模块仅作用于训练阶段,当然也可以用作推理阶段加速使用,不过要调整代码。

MTP和传统单Token预测区别

DeepSeek MTP传统单Token预测
预测深度多层级(D≥1)单层级(仅下一个令牌)
参数共享嵌入层、输出头与主模型共享无共享
训练目标多损失加权优化单一交叉熵损失
推理灵活性支持推测解码加速仅自回归生成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python----计算机视觉处理(Opencv:图像亮度变换)

一、图像亮度变换 亮度调整:图像像素强度整体变高或者变低。 对比度调整:图像暗处像素强度变低,图像亮处像素强度变高,从而拉大中间某个区域范围的显示精 度。 A:原图 …

无人机动平衡-如何在螺旋桨上添加或移除材料

平衡无人机螺旋桨是一项精细的工作,直接影响飞行稳定性和组件寿命。不同的方法适用于不同的情况,螺旋桨的材料和尺寸以及所需调整的幅度都会影响选择的方法。 本文将深入探讨添加如胶水和胶带等材料的方法,以及通过打磨和修剪来移除质量的方…

基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行步骤

该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。给师弟开发的课程作业,技术学习可以留言哦 功能介绍 平台采用B/S结构,后端采用主流的PythonDjango进行开发,前端采…

涨薪技术|k8s设计原理

01k8s介绍 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化 工作负载和服务,有助于实现声明性配置和自动化。它有一个庞大、快速增长的生态系统。Kubernetes 服务、支持和工具广泛可用。Kubernetes 这个名字起源于希腊语,意思是舵…

基于FPGA的16QAM+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 16QAM调制解调原理 2.2 帧同步 3.Verilog核心程序 4.完整算法代码文件获得 1.算法仿真效果 vivado2019.2仿真结果如下(完整代码运行后无水印): 设置SNR12db 将FPGA数据导入到MATLAB显…

QuecPython 外设接口之GPIO应用指南

基础知识 了解GPIO基础知识更有益于我们使用它。 框图 GPIO(通用输入输出)是指一种通用的数字输入/输出接口,用于与外部电子元件或设备进行通信。它通常存在于微处理器、微控制器和其他嵌入式系统中。 物理电路结构如下图所示&#xff1a…

Spring Boot 整合 Nacos 注册中心终极指南

在微服务架构中,配置管理和动态路由是核心需求。Nacos 作为阿里巴巴开源的动态服务发现、配置管理和服务管理平台,能够帮助开发者实现配置热更新、多环境共享配置以及动态路由管理。本文将结合 Spring Boot 和 Spring Cloud Gateway,手把手教…

SQLServer列转行操作及union all用法

1.创建测试表及数据sql如下 create table ScoresTable( Name varchar(50), ChineseScore int, MathScore int ) insert into ScoresTable values(小张,90,95) insert into ScoresTable values(小王,98,99) 2.表中查询结果如下 3.现需列转行显示,每行显示 姓名…

【GL010】C++

1.C中的const关键字有哪些用法? 1.修饰变量:表示变量的值不可修改。 const int a 10; 2.修饰指针: const int* p: // 指针指向的内容不可修改。 int* const p: // 指针本身不可修改。 const int* const…

(Arxiv-2025)MagicDistillation:用于大规模人像少步合成的弱到强视频蒸馏

MagicDistillation:用于大规模人像少步合成的弱到强视频蒸馏 paper是HKUST发布在Arxiv 2025的工作 paper title:MagicDistillation: Weak-to-Strong Video Distillation for Large-Scale Portrait Few-Step Synthesis Project page:地址 Abst…

Excel(进阶篇):powerquery详解、PowerQuery的各种用法,逆透视表格、双行表头如何制作透视表、不规则数据如何制作数据透视表

目录 PowerQuery工具基础修改现有数据理规则PowerQuery抓取数据的两种方式多文件合并透视不同表结构多表追加数据透视追加与合并整理横向表格:逆透视 数据用拆分工具整理数据算账龄 不等步长值组合合并文件夹中所有文件PowerQuery处理CSV文件双行表头、带合并单元格如何做数据…

Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成

文件路径models/view_transformers 父类 是class BiLinearSample(nn.Module)基于https://github.com/aharley/simple_bev。 函数解析 函数bev_coord_to_feature_coord的功能 将鸟瞰图3D坐标通过多相机(针孔/鱼眼)内外参投影到图像特征平面&#xff0…

同一个局域网的话 如何访问另一台电脑的ip

在局域网内访问另一台电脑,可以通过以下几种常见的方法来实现: ‌直接通过IP地址访问‌: 首先,确保两台电脑都连接在同一个局域网内。获取目标电脑的IP地址,这可以通过在目标电脑上打开命令提示符(Windows系…

基于SpringBoot的名著阅读网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Excel(实战):INDEX函数和MATCH函数、INDEX函数实战题

目录 经典用法两者嵌套查值题目解题分析 INDEX巧妙用法让数组公式,自动填充所有、有数据的行/列INDEX函数和SEQUENCE函数 经典用法两者嵌套查值 题目 根据左表查询这三个人的所有数据 解题分析 INDEX函数的参数:第1个参数是选定查找范围&#xff0c…

uniapp超简单ios截屏和上传app store构建版本方法

​ 假如使用windows开发ios的应用,上架的时候,你会发现,上架需要ios应用多种尺寸的ios设备的截图,和需要xcode等工具将打包好的ipa文件上传到app store的构建版本。 大部分情况下,我们的公司都没有这么多款ios设备来…

Netty源码—5.Pipeline和Handler一

大纲 1.Pipeline和Handler的作用和构成 2.ChannelHandler的分类 3.几个特殊的ChannelHandler 4.ChannelHandler的生命周期 5.ChannelPipeline的事件处理 6.关于ChannelPipeline的问题整理 7.ChannelPipeline主要包括三部分内容 8.ChannelPipeline的初始化 9.ChannelPi…

MySQL小练习

目录 一、单表查询 二、多表查询 一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float…

Apache Hive:基于Hadoop的分布式数据仓库

Apache Hive 是一个基于 Apache Hadoop 构建的开源分布式数据仓库系统,支持使用 SQL 执行 PB 级大规模数据分析与查询。 主要功能 Apache Hive 提供的主要功能如下。 HiveServer2 HiveServer2 服务用于支持接收客户端连接和查询请求。 HiveServer2 支持多客户端…

检波、限幅、钳位电路

检波电路: 类似调制收音机信号:输入的基波和载波叠加成调制信号(信号需要长距离里传输,频率要高,M级别的频率,所以要把低频信号叠在高频信号,才能把低频信号长距离传输,最后到达接收…