【大模型】DeepSeek-V3技术报告总结

系列综述:
💞目的:本系列是个人整理为了学习DeepSeek相关知识的,整理期间苛求每个知识点,平衡理解简易度与深入程度。
🥰来源:材料主要源于DeepSeek官方技术报告进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。
🤭结语:如果有帮到你的地方,就点个赞关注一下呗,谢谢🎈🎄🌷!!!

🌈未完待续,请先收藏!!!


文章目录

    • 概述
    • 引言
      • 概述
      • 核心优化
    • 架构
      • 基本架构
      • MLA架构
      • DeepSeekMoE
        • 基础架构
      • 计算动态特征加权系数
      • 计算动态特征评分
      • 二级标签
    • 参考博客


😊点此到文末惊喜↩︎

  1. MTP,MLA与MOE的技术实现细节; 2. MOE模型的训练算力与显存需求的定量计算方法;3. FP8混合精度训练每个阶段的的显存与算力消耗计算;4. 存储IO操作,通信与GPU计算发生的阶段与交互细节

概述

  1. Deepseek战绩
    • DeepSeek-V3 以 “模块化智能调度” 实现与 GPT-4 比肩的复杂推理能力,价格只有其数十分之一
    • DeepSeek-R1 发布,进入世界大模型推理能力第一梯队,并且将训练资源消耗压缩至传统方法的 1/5,千亿参数大模型的训练成本从数亿美元骤降至千万级
    • 同时登顶苹果 App Store 和谷歌 Play Store 全球下载榜首
    • 干翻美股AI科技巨头,如英伟达、微软等收跌10%以上
    • 开源了 DeepSeek-R1-Zero、DeepSeek-R1,以及基于 Qwen 和 Llama 架构从 DeepSeek-R1 知识蒸馏获得的六个稠密模型(1.5B、7B、8B、14B、32B、70B)。
    • 2025.2.6:DeepSeek-V3-Base 已成为当前性能最强的开源基础模型,尤其在代码和数学领域表现卓越,甚至与领先的闭源模型相匹敌
      在这里插入图片描述
  2. 与其他友商性能对比
    • 项目开源地址
    • 技术报告地址
      在这里插入图片描述
      在这里插入图片描述

引言

概述

  1. 开源阵营正在努力所有与闭源模型的性能差距
    • DeepSeek 系列:性能比肩GPT4等高性能模型,训练和调用成本很低,但相对较新,生态成熟度稍欠(问题不大)
    • LLaMA 系列:由Meta背书,开源影响力大。架构灵活可拓展,并且参数规模可选,原始性能较差需要微调
    • Qwen 系列:由阿里云开源的,中文处理能力强,但依赖于阿里云平台部署
    • Mistral 系列:在推理速度方面表现卓越,能够快速响应生成文本内容,但深度推理能力较差
  2. 设计目标
    • 提升性能
    • 降低成本

核心优化

  1. 高效的架构设计
    • Multi-head Latent Attention (MLA):MLA 通过对注意力键和值进行低秩联合压缩,减少了推理时的 KV 缓存,同时保持了与标准多头注意力(MHA)相当的性能。
    • DeepSeekMoE:DeepSeekMoE 采用了更细粒度的专家分配策略,每个 MoE 层包含 1 个共享专家和 256 个路由专家,每个令牌激活 8 个专家,确保了计算的高效性。
      在这里插入图片描述
  2. 性能提升策略
    • 无辅助损失的负载均衡:避免了传统方法中因强制负载均衡而导致的模型性能下降。通过动态调整专家偏置,确保专家负载均衡,而无需依赖传统的辅助损失函数。
    • 序列级负载均衡:防止单个序列内的极端不平衡,确保每个序列内的专家负载均衡。
    • 多 token 预测训练目标:使用多个顺序模块来预测未来的多个令牌,每个模块包含共享的嵌入层、输出头和 Transformer 块,确保了预测的因果链完整性。并显著提升了推理生成速度,大约1.8倍
      在这里插入图片描述
  3. 显著提升训练效率
    • FP8 混合精度框架:大多数计算密集型操作(如 GEMM)在 FP8 精度下执行,而少数关键操作(如嵌入模块和注意力操作)仍保持高精度(BF16 或 FP32),确保了训练的数值稳定性。
    • 精细量化策略:通过分块量化(Tile-wise Quantization)和块级量化(Block-wise Quantization),DeepSeek-V3 有效减少了量化误差,尤其是在处理激活梯度时,避免了模型发散。
    • DualPipe 算法:通过该算法实现高效的流水线并行处理,减少了流水线停滞情况,同时采用计算和通信并行处理的方式,大幅降低了训练过程中的通信开销,确保即便模型规模进一步扩大,只要维持适当的计算通信比例,就能在不同节点间实现细粒度专家分配,还能将全节点间的通信开销控制在接近于零的水平。
    • 优化通信内核:对跨节点的全节点通信内核进行优化,充分利用 InfiniBand(IB)和 NVLink 的带宽性能,并且经过精细的内存优化,使得训练无需依赖成本高昂的张量并行技术,进一步提升训练效率并控制成本。
  4. 推理优化
    • YaRN 扩展技术:DeepSeek-V3 采用了 YaRN 技术进行上下文扩展,逐步将上下文窗口从 4K 扩展到 32K,再扩展到 128K,确保了模型在长上下文任务中的稳定性。
    • 冗余专家部署:在推理时,DeepSeek-V3 通过冗余专家部署策略,确保每个 GPU 处理近似数量的令牌,避免了负载不均衡。
    • 动态路由策略:DeepSeek-V3 探索了动态冗余策略,在每个推理步骤中动态选择激活的专家,进一步优化了推理效率。
    • 思维链 (CoT) 模型:将 R1 的验证和反思机制整合到 DeepSeek-V3 中,显著提升了其推理能力,同时有效控制了输出的风格和长度。

架构

基本架构

  1. 基本架构
    • Transformer Bloc:DeepSeek中有多个 Transformer Block堆叠,每个Bloc主要有两个部分组成
      • 自注意力机制(Self - Attention):允许模型在处理序列数据时,计算序列中每个元素其他所有元素之间的关联程度(权重),从而捕捉到序列中的长距离依赖关系。具体计算时,会将输入向量线性变换为 Query(查询)、Key(键)和 Value(值)三个向量,通过 Query 与 Key 的点积运算及 softmax 函数计算注意力权重,再用权重对 Value 进行加权求和得到输出。
      • 前馈神经网络(Feed - Forward Network,FFN):将自注意力机制处理完的输入数据进行非线性变换,从而提升模型理解和处理复杂信息的能力
      • 层归一化(Layer Normalization,LN):每个子层前后一般都有层归一化操作,部分模型中会使用 RMSNorm(均方根层归一化)替代 LN
    • MoE(Mixture - of - Experts,专家混合模型):
      • Router(路由模块):对输入的前网络层处理后的特征( 以 H i d d e n u t Hidden\ u_t Hidden ut表示),按照特定策略分配不同的专家(Expert)中,即从两类专家中挑选出最合适的部分专家(V3 是 256 选 8路由+1共享)来处理输入
      • Expert(两类专家):在不显著增加计算量的基础上,扩展模型参数规模,提升模型的表达能力以及训练效率
        • Routed Expert(路由专家):根据输入数据的特征为每个词计算与各个路由专家亲和力,然后选取得分最高的前k个专家(top-k)来处理该词,从而对复杂任务进行分治处理,保证稀疏激活的低成本(DeepSeek-V3 中每个 Token 选择 8 个路由专家的策略)
        • Shared Expert(共享专家):接收输入的全部token进行通用特征提取,都会被确定性地分配给这些共享专家,从而保证了模型基础能力的下限。(在 DeepSeek 的中每个MoE层只有 1 个共享专家)
        • 示例:处理句子 “我很高兴收到了一份礼物” 时,“高兴” 可能会被路由到擅长处理情感词汇的专家,“收到” 可能会被路由到擅长处理语法结构的专家,而整个句子会被共享专家处理。
    • Multi - Head Latent Attention(MLA,多头潜在注意力)
      • Multi - Head Attention(多头注意力):从多个维度并行捕获数据不同方面的特征,然后综合捕获的所有维度特征,从而提高模型对数据的理解和处理能力
      • Latent(潜在变量):
        • concatenate(拼接操作):将不同维度下经潜在变量调整后的向量信息整合成一个新向量,进一步丰富特征表达。(如将外貌特征【高大,眼大】和性格特征【高大,眼大】拼接成一个新向量【高大,眼大,高大,眼大】)
        • apply RoPE(旋转位置嵌入):借助潜在变量,为数据元素增加一个按规律变化的位置特征(序列位置、空间位置等),从而增强模型在多维度下对位置特征的捕捉能力( 床前明月光,疑是地上霜。就会出现先有"月光"后有"霜"的位置逻辑联想)
        • Cached During Inference(中间缓存):在推理过程中,部分由潜在变量参与处理并产生的中间信息会被缓存,避免重复计算,从而在多维度特征处理的基础上提高推理效率(类似动态规划中要查的缓存表)
          在这里插入图片描述

MLA架构

  1. 概述
    • 问题:在传统注意力机制中(如MHA等),键值(KV)相关计算有较大的计算复杂度和内存占用
    • MLA: 是一种基于低秩键值联合压缩技术的注意力机制,通过压缩键值矩阵来减少显存占用,同时保持与传统多头注意力(Multi-Head Attention, MHA)相当的模型性能
    • 核心优化
      • 低秩键值联合压缩:在注意力机制中,KV相关计算有较大的时空开销,所以通过压缩潜在变量来表示高维数据,降低推理过程中的键值(KV)缓存开销,提升模型推理效率
  2. 低秩键值联合压缩的核心算法
    • c t K V ∈ R d c \mathbf{c}_t^{KV} \in \mathbb{R}^{d_c} ctKVRdc 表示键和值的压缩潜在向量
    • d c ( ≪ d h n h ) d_c (\ll d_h n_h) dc(dhnh)表示 KV 压缩维度
    • W D K V ∈ R d c × d W^{DKV} \in \mathbb{R}^{d_c \times d} WDKVRdc×d为维度下投影变换矩阵
    • W U K , W U V ∈ R d h n h × d c W^{UK}, W^{UV} \in \mathbb{R}^{d_h n_h \times d_c} WUK,WUVRdhnh×dc分别为键和值的维度上投影变换矩阵
    • W K R ∈ R d h R × d W^{KR} \in \mathbb{R}^{d_h^R \times d} WKRRdhR×d用于生成携带旋转位置编码 (Rotary Positional Embedding, RoPE) 的解耦键
    • RoPE ( ⋅ ) \text{RoPE}(\cdot) RoPE()表示旋转位置编码矩阵的应用操作
    • [ ⋅ ; ⋅ ] [\cdot; \cdot] [;] 表示向量连接操作
      在这里插入图片描述
  3. 低秩键值联合压缩的原理
    • 压缩:将 输入向量 h t \mathbf{h}_t ht 通过 下投影矩阵 W D K V \mathbf{W}^{DKV} WDKV压缩为更紧凑的 潜在向量 c t K V \mathbf{c}^{KV}_t ctKV c t K V = W D K V h t (1) \mathbf{c}^{KV}_t = \mathbf{W}^{DKV} \mathbf{h}_t \quad \tag{1} ctKV=WDKVht(1),其中 W D K V \mathbf{W}_{DKV} WDKV d c × d d_c \times d dc×d 的矩阵, d c d_c dc 为压缩维度(远小于原始维度),时间步t表示的是序列数据中的一个特定位置或时刻

    • 生成内容键集合:将 潜在向量 c t K V \mathbf{c}^{KV}_t ctKV 通过上投影矩阵 W U K \mathbf{W}^{UK} WUK线性变换键集合 k t C \mathbf{k}_t^C ktC [ k t , 1 C ; k t , 2 C ; . . . ; k t , n h C ] = k t C = W U K c t K V (2) [\mathbf{k}_{t,1}^C; \mathbf{k}_{t,2}^C; ...; \mathbf{k}_{t,n_h}^C] = \boxed{\mathbf{k}_t^C}= W^{UK} \mathbf{c}_t^{KV} \tag{2} [kt,1C;kt,2C;...;kt,nhC]=ktC=WUKctKV(2) ,其中 W U K \mathbf{W}^{UK} WUK d × d c d \times d_c d×dc 的矩阵,负责将低维潜在向量 c t K V \mathbf{c}_t^{KV} ctKV(维度 d c d_c dc)还原到模型原始维度 d d d。并且通过上投影矩阵的线性变换后,输出结果被拆分为 n h n_h nh 个注意力头对应的子键向量 k t , i C \mathbf{k}_{t,i}^C kt,iC,每个子键向量的维度为 h d = d / n h h_d = d / n_h hd=d/nh,从而使得每个注意力头能够关注输入序列的不同语义特征。

    • 生成位置键向量:将潜在向量 c t K V \mathbf{c}^{KV}_t ctKV权重矩阵 W K R \mathbf{W}^{KR} WKR的结果通过旋转位置嵌入操作函数 RoPE \text{RoPE} RoPE转换成包含位置信息的键向量 k t R \mathbf{k}_t^R ktR k t R = RoPE ⁡ ( W K R h t ) (3) \mathbf{k}_{t}^{R}=\operatorname{RoPE}\left(W^{K R} \mathbf{h}_{t}\right)\tag{3} ktR=RoPE(WKRht)(3)相比传统的绝对位置嵌入那样直接加到向量上,旋转位置嵌入操作可以保持位置信息的相对性,有助于模型更好地处理长序列数据

    • 拼接键向量:将前面计算得到的内容相关键向量 k t , i C k_{t,i}^{C} kt,iC位置相关键向量 k t R k_{t}^{R} ktR 进行拼接,得到键向量 k t , i k_{t,i} kt,i k t , i = [ k t , i C ; k t R ] , (4) \mathbf{k}_{t,i} = [\mathbf{k}_{t,i}^C; \mathbf{k}_t^R], \tag{4} kt,i=[kt,iC;ktR],(4)

    • 生成值向量集合:在计算注意力时,通过 键和值维度的上投影矩阵 W U V \mathbf{W}^{UV} WUV,将潜在向量 c t K V \mathbf{c}^{KV}_t ctKV 还原各头的键和值 v t C \mathbf{v}_t^C vtC,再参与计算注意力分数和输出 [ v t , 1 C ; v t , 2 C ; … ; v t , n h C ] = v t C = W U V c t K V , (5) [\mathbf{v}_{t,1}^C; \mathbf{v}_{t,2}^C; \ldots; \mathbf{v}_{t,n_h}^C] = \mathbf{v}_t^C = W^{UV} \mathbf{c}_t^{KV}, \tag{5} [vt,1C;vt,2C;;vt,nhC]=vtC=WUVctKV,(5)

    • 在推理过程中,单个token同时缓存每个 时间步t d c + d h R d_{c}+d_{h}^{R} dc+dhR(潜在向量维度+解耦键维度)

      • 压缩后的潜在向量 c t K V \mathbf{c}^{KV}_t ctKV:用于动态重构键值细节,通过低维潜在向量保留重要信息,减少计算复杂度
      • 解耦后的键向量 k t R \mathbf{k}^{R}_t ktR :独立保存位置特征,通过RoPE操作将位置编码的计算与键值压缩解耦
    • 键和值在注意力机制中表示不同的信息

      • 键主要用于计算注意力分数,表示输入向量的相关性
      • 值则用于加权求和,表示输入向量的实际内容。
  4. 采用KV低秩联合压缩的优点
    • 降低内存占用(核心):相比MHA明显减少了显存需求,KV缓存压缩率达93.3%
    • 提升推理效率:减少计算复杂度和内存访问次数,推理速度提升(如吞吐量提升576%)
    • 支持长序列处理:增强了模型对长文本的理解能力,尤其在资源受限的环境中表现突出
    • 性能保持:压缩后的MLA仍保持与标准MHA相当的性能,如在数学推理和代码生成任务中效果稳定

内存优化的计算:假设原始键值维度为 d h n h d_h n_h dhnh(每个头维度 d h d_h dh,头数 n h n_h nh),相比传统MHA需要缓存 2 ⋅ d h n h ⋅ T 2 \cdot d_h n_h \cdot T 2dhnhT 个元素(键值各一份),而MLA仅需缓存 d c ⋅ T d_c \cdot T dcT 个元素。例如当 d c = 8 d_c = 8 dc=8 d h n h = 128 d_h n_h = 128 dhnh=128 时,内存占用量可减少至原来的 1 16 \frac{1}{16} 161(约93.3% )。

  1. 查询优化
    • 对于注意力查询(Query)部分,模型同样采用低秩压缩技术降低训练过程中的激活值内存占用
    • c t Q ∈ R d c ′ \mathbf{c}_t^Q \in \mathbb{R}^{d_c'} ctQRdc 表示查询的压缩潜在向量
    • d c ′ ( ≪ d h n h ) d_c' (\ll d_h n_h) dc(dhnh) 表示查询压缩维度
    • W D Q ∈ R d c ′ × d W^{DQ} \in \mathbb{R}^{d_c' \times d} WDQRdc×d W U Q ∈ R d h n h × d c ′ W^{UQ} \in \mathbb{R}^{d_h n_h \times d_c'} WUQRdhnh×dc 分别为查询的维度降维和升维变换矩阵
    • W Q R ∈ R d h n h × d c ′ W^{QR} \in \mathbb{R}^{d_h n_h \times d_c'} WQRRdhnh×dc 用于生成携带旋转位置编码的解耦查询矩阵
      c t Q = W D Q h t , [ q t , 1 C ; q t , 2 C ; … ; q t , n h C ] = q t C = W U Q c t Q , [ q t , 1 R ; q t , 2 R ; … ; q t , n h R ] = q t R = RoPE ( W Q R c t Q ) , q t , i = [ q t , i C ; q t , i R ] , \begin{aligned} \mathbf{c}_t^Q &= W^{DQ} \mathbf{h}_t, \\ [\mathbf{q}_{t,1}^C; \mathbf{q}_{t,2}^C; \ldots; \mathbf{q}_{t,n_h}^C] &= \mathbf{q}_t^C = W^{UQ} \mathbf{c}_t^Q, \\ [\mathbf{q}_{t,1}^R; \mathbf{q}_{t,2}^R; \ldots; \mathbf{q}_{t,n_h}^R] &= \mathbf{q}_t^R = \text{RoPE}(W^{QR} \mathbf{c}_t^Q), \\ \mathbf{q}_{t,i} &= [\mathbf{q}_{t,i}^C; \mathbf{q}_{t,i}^R], \end{aligned} ctQ[qt,1C;qt,2C;;qt,nhC][qt,1R;qt,2R;;qt,nhR]qt,i=WDQht,=qtC=WUQctQ,=qtR=RoPE(WQRctQ),=[qt,iC;qt,iR],最终,通过组合注意力查询( q t , i \mathbf{q}_{t,i} qt,i)、键( k j , i \mathbf{k}_{j,i} kj,i)和值( v j , i C \mathbf{v}_{j,i}^C vj,iC),得到注意力机制的最终输出 u t \mathbf{u}_t ut
      o t , i = ∑ j = 1 t Softmax j ( q t , i T k j , i d h + d h R ) v j , i C , u t = W O [ o t , 1 ; o t , 2 ; … ; o t , n h ] , \begin{aligned} \mathbf{o}_{t,i} &= \sum_{j=1}^t \text{Softmax}_j \left( \frac{\mathbf{q}_{t,i}^T \mathbf{k}_{j,i}}{\sqrt{d_h + d_h^R}} \right) \mathbf{v}_{j,i}^C, \\ \mathbf{u}_t &= W^O [\mathbf{o}_{t,1}; \mathbf{o}_{t,2}; \ldots; \mathbf{o}_{t,n_h}], \end{aligned} ot,iut=j=1tSoftmaxj dh+dhR qt,iTkj,i vj,iC,=WO[ot,1;ot,2;;ot,nh],其中 W O ∈ R d × d h n h W^O \in \mathbb{R}^{d \times d_h n_h} WORd×dhnh 为输出维度变换矩阵。

DeepSeekMoE

基础架构
  1. 在前馈网络(Feed-Forward Networks, FFN)部分,DeepSeek-V3 采用了 DeepSeekMoE 架构,相比传统MoE,DeepSeekMoE有以下改进:
    • 专家划分的细粒度化:将专家按照更多维度进行细粒度划分,从而增加专家数量专业性,避免传统传统MoE的专家数量少且划分较粗,导致的知识冗余
    • 混合专家设计共享专家对所有token开放,负责通用任务。路由专家由动态门控网络选择激活,提升专业化能力,从而减少参数冗余,使训练成本降低42.5%。
    • 无辅助损失的负载均衡:对于 MoE 模型,不平衡的专家负载将导致路由崩溃,并降低专家并行计算效率。传统解决方案通常依赖辅助损失来避免不平衡负载,但过大的辅助损失可能会损害模型性能,而DeepSeek-V3通过细粒度路由机制Top-K路由策略,根据输入特征动态选择亲和度最高的部分专家)在671B的总参数中单token仅稀疏激活37B(占比约5.5%)远低于传统MoE的全参数激活模式,推理速度提升2.1倍
  2. 专家分配算法原理
    • 计算更新向量:将输入向量 u t \mathbf{u}_t ut分别通过 静态前馈神经网络组 FFN i ( s ) \text{FFN}_i^{(s)} FFNi(s))和动态加权前馈神经网络组 FFN i ( r ) \text{FFN}_i^{(r)} FFNi(r))进行静态特征增强动态特征融合生成更新向量 h t ′ \mathbf{h}_t' ht
      • 静态特征提取和增强:使用 N s N_s Ns 个( FFN i ( s ) \text{FFN}_i^{(s)} FFNi(s))对输入数据进行线性变换提取特征,并通过非线性激活函数(如ReLU)进一步增强特征,从而增强模型的表达和泛化能力
      • 动态加权融合:通过 N r N_r Nr 个( FFN i ( r ) \text{FFN}_i^{(r)} FFNi(r))处理输入向量,并结合动态特征加权系数 g i , t g_{i,t} gi,t 对输出进行筛选与加权,从而根据上下文或时间变化动态调整特征权重,实现更精准的特征融合
        h t ′ = u t + ∑ i = 1 N s FFN i ( s ) ( u t ) + ∑ i = 1 N r g i , t FFN i ( r ) ( u t ) (1) \mathbf{h}_t' = \mathbf{u}_t + \sum_{i = 1}^{N_s} \text{FFN}_i^{(s)}(\mathbf{u}_t) + \sum_{i = 1}^{N_r} g_{i,t} \text{FFN}_i^{(r)}(\mathbf{u}_t) \quad \tag{1} ht=ut+i=1NsFFNi(s)(ut)+i=1Nrgi,tFFNi(r)(ut)(1)其中, FFN i ( s ) \text{FFN}_i^{(s)} FFNi(s) 表示第 i i i 个标准的前馈神经网络, N s N_s Ns 是标准前馈神经网络的数量; FFN i ( r ) \text{FFN}_i^{(r)} FFNi(r) 表示第 i i i 个用于处理动态特征的前馈神经网络, N r N_r Nr 是处理动态特征的前馈神经网络的数量; g i , t g_{i,t} gi,t 是动态特征的加权系数,用于控制动态特征对更新向量的贡献程度。
    • 计算加权系数:将动态特征加权系数 g i , t ′ g_{i,t}' gi,t 通过归一化操作转换为归一化加权系数 g i , t g_{i,t} gi,t g i , t = g i , t ′ ∑ j = 1 N r g j , t ′ (2) g_{i,t} = \frac{g_{i,t}'}{\sum_{j = 1}^{N_r} g_{j,t}'} \quad \tag{2} gi,t=j=1Nrgj,tgi,t(2)其中,归一化操作使得所有动态特征的加权系数之和为 1,即 ∑ i = 1 N r g i , t = 1 \sum_{i = 1}^{N_r} g_{i,t}=1 i=1Nrgi,t=1,从而避免因加权系数过大或过小导致某些动态特征的影响被过度放大或忽略
    • 计算动态特征加权系数:将动态特征评分 s i , t s_{i,t} si,t 通过 Top-k选择二值化操作转换为动态特征加权系数 g i , t ′ g_{i,t}' gi,t。公式如下:
      g i , t ′ = { s i , t , s i , t ∈ Topk ( { s j , t ∣ 1 ⩽ j ⩽ N r } , K r ) 0 , otherwise (3) g_{i,t}' = \begin{cases} s_{i,t}, & s_{i,t} \in \text{Topk}(\{s_{j,t} | 1 \leqslant j \leqslant N_r\}, K_r) \\ 0, & \text{otherwise} \end{cases} \quad \tag{3} gi,t={si,t,0,si,tTopk({sj,t∣1jNr},Kr)otherwise(3)
      其中, Topk ( { s j , t ∣ 1 ⩽ j ⩽ N r } , K r ) \text{Topk}(\{s_{j,t} | 1 \leqslant j \leqslant N_r\}, K_r) Topk({sj,t∣1jNr},Kr) 表示从所有 N r N_r Nr 个动态特征评分中选取评分最高的 K r K_r Kr 个评分组成的集合,并将其评分作为加权系数,其余动态特征的加权系数为 0,从而实现了对动态特征的筛选和加权,使得模型更加关注那些与输入向量相关性较强的动态特征。
    • 计算动态特征评分:将输入向量 u t \mathbf{u}_t ut动态特征向量 e i \mathbf{e}_i ei 通过 Sigmoid 函数计算动态特征评分 s i , t s_{i,t} si,t。公式如下: s i , t = Sigmoid ( u t T e i ) (4) s_{i,t} = \text{Sigmoid}(\mathbf{u}_t^T \mathbf{e}_i) \quad \tag{4} si,t=Sigmoid(utTei)(4)其中,Sigmoid 函数的表达式为 Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x)=\frac{1}{1 + e^{-x}} Sigmoid(x)=1+ex1,它将输入向量和动态特征向量的内积 u t T e i \mathbf{u}_t^T \mathbf{e}_i utTei 转换为 0 到 1 之间的评分。评分越高,表示该动态特征与输入向量的相关性越强,即该动态特征在后续的特征融合过程中可能起到更重要的作用。
  3. 无辅助损失的负载均衡
    • 引入偏置项:为每个专家引入可学习的偏置项 b i b_i bi,将其添加到 token 与专家的原始亲和度分数 s i , t s_{i,t} si,t 中,形成调整后的路由分数 s i , t ′ = s i , t + b i s'_{i,t} = s_{i,t} + b_i si,t=si,t+bi,具体如下:
      • 路由选择:基于调整后的路由分数 s i , t ′ s_{i, t}' si,t选择 top-K专家,决定 token 的分配路径。
      • 计算门控:基于调整前的路由分数 s i , t s_{i, t} si,t计门控值(用于加权专家输出),避免偏置项影响模型输出质量。
    • 动态偏置调整:在每个训练步骤中,系统监控所有批次内专家的负载分布(即分配给各专家的 token 数量),进行动态负载调整
      • 专家过载:若某专家负载过高,其偏置项减少 γ \gamma γ(即 b i ← b i − γ b_i \leftarrow b_i - \gamma bibiγ)以降低被选中的概率
      • 专家低载:若某专家负载不足,其偏置项增加 γ \gamma γ(即 b i ← b i + γ b_i \leftarrow b_i + \gamma bibi+γ)以提高被选中的概率
      • 超参数控制 γ \gamma γ是控制调整速度的超参数,需根据实验调优。
    • 序列级辅助损失补充机制:引入对序列级平衡损失的补充,防止单个序列中出现显著的负载不均衡现象
      • 归一化处理:将第 i i i 个特征在 时间步 t t t 的值 s i , t s_{i,t} si,t 归一化为 s i , t ′ s'_{i,t} si,t, 使其在时间 t t t 上形成一个概率分布 s i , t ′ = s i , t ∑ j = 1 N r s j , t (1) s'_{i,t} = \frac{s_{i,t}}{\sum_{j=1}^{N_r} s_{j,t}}\tag{1} si,t=j=1Nrsj,tsi,t(1)
      • 概率因子计算:计算第 i i i 个样本的在所有时间步t上的平均归一化得分概率 P i P_i Pi s i , t ′ s'_{i,t} si,t 在所有时间步上的平均值),表示该类别在整个序列中的平均重要性 P i = 1 T ∑ t = 1 T s i , t ′ (2) P_i = \frac{1}{T} \sum_{t=1}^{T} s'_{i,t} \tag{2} Pi=T1t=1Tsi,t(2)
      • 频率因子计算:计算第 i i i个元素的得分 s i , t s_{i,t} si,t位于 K r K_r Kr个最高得分集合的频率 f i f_i fi,即在所有时间步中第 i i i个元素的得分 s i , t s_{i,t} si,t位于前 K r K_r Kr的次数占总时间步数的比例
        • N r N_r Nr 是元素或样本的总数。
        • K r K_r Kr是在每个时间步中选择的前 K r K_r Kr个元素的数量。
        • T T T 是时间步的总数。
        • 1 ( s i , t ∈ Topk ( { s j , t ∣ 1 ≤ j ≤ N r } , K r ) ) 1(s_{i,t} \in \text{Topk}(\{s_{j,t} \mid 1 \leq j \leq N_r\}, K_r)) 1(si,tTopk({sj,t1jNr},Kr))是一个指示函数,当 s i , t s_{i,t} si,t在时间步 t t t中进入前 K r K_r Kr时取值为 1,否则取值为 0。
          f i = N r K r T ∑ t = 1 T 1 ( s i , t ∈ Topk ( { s j , t ∣ 1 ⩽ j ⩽ N r } , K r ) ) (3) f_i = \frac{N_r}{K_r T} \sum_{t=1}^{T} \mathbf{1}(s_{i,t} \in \text{Topk}(\{s_{j,t} \mid 1 \leqslant j \leqslant N_r\}, K_r)) \tag{3} fi=KrTNrt=1T1(si,tTopk({sj,t1jNr},Kr))(3)
      • 计算平衡损失 L Bal \mathcal{L}_{\text{Bal}} LBal: 对前 N r N_r Nr个特征的频率因子 f i f_i fi概率因子 P i P_i Pi进行求和,再与超参数 α \alpha α相乘得到平衡损失,从而解决训练过程中不同样本或区域贡献不均衡的问题 L Bal \mathcal{L}_{\text{Bal}} LBal L Bal = α ∑ i = 1 N r f i P i \mathcal{L}_{\text{Bal}} = \alpha \sum_{i=1}^{N_r} f_i P_i LBal=αi=1NrfiPi
    • 节点约束路由机制限制 token 的分配节点数量优化节点选择依据,提升整体的训练效率和计算性能。
      • 限制分配:限制每个 token 最多分配 M M M 个计算节点(如 M = 4 M = 4 M=4),从而减少跨节点通信开销提高计算和通信的并行度
      • 选择依据:选择每个节点上专家的最高 K r M \frac{K_{r}}{M} MKr 相关度分数总和作为依据,即token 会被分配到与之最匹配的计算节点上,从而提高计算效率和准确性。
      • 作用 :在这种约束下,MoE 训练框架能够实现计算与通信的近乎完全并行处理。
    • 完整的 Token 保留机制:通过高效的负载均衡策略和特定的推理部署策略,确保了在训练和推理阶段均实现 100% token 保留,提高了模型训练的稳定性
      • 训练阶段:基于无辅助损失负载均衡,使得所有 token 均可被分配给专家处理,并通过节点限制路由优化跨节点通信开销,实现了近乎完全的计算-通信并行处理
      • 推理阶段:通过细粒度专家分配策略和路由优化,确保每个 token 的激活路径与训练阶段一致,避免推理时因负载突变导致 token 丢弃
  4. 多 token 预测机制 (Multi-Token Prediction, MTP)
    • 与传统模型的区别:与传统自回归模型的单Token预测生成模式(每次只关注当前位置的下一个token)不同,MTP模型在同时能够预测多个后续Token,训练信号的密度显著增加,提高了单位数据的利用率,并且能提前规划表征,从而更准确预测后续 token
    • 顺序预测:模型按照一定的顺序逐步生成或预测后续的元素
    • 因果链保持:模型在预测后续元素时,会考虑之前元素对后续元素的影响,确保预测结果符合因果逻辑
      在这里插入图片描述

共享参数架构:MTP模块与主模型共享Embedding层和Output Head,仅通过独立的Transformer层实现多步预测,大幅减少参数量与计算开销。
动态适应性
引入动态预测视距机制,根据模型置信度调整每步预测的Token数量,平衡速度与准确性

MLA结构
在这里插入图片描述
多token预测
在这里插入图片描述


计算动态特征加权系数

计算动态特征评分


二级标签


少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。
不如点赞·收藏·关注一波


🚩点此跳转到首行↩︎

参考博客

  1. 【LLM技术报告】《DeepSeek-R1:通过强化学习提升LLM的推理能力》——DeepSeek-R1技术报告(全文)
  2. Deepseek v3 技术报告万字硬核解读
  3. 待定引用
  4. 待定引用
  5. 待定引用
  6. 待定引用
  7. 待定引用
  8. 待定引用

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

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

相关文章

只需三步!5分钟本地部署deep seek——MAC环境

MAC本地部署deep seek 第一步:下载Ollama第二步:下载deepseek-r1模型第三步:安装谷歌浏览器插件 第一步:下载Ollama 打开此网址:https://ollama.com/,点击下载即可,如果网络比较慢可使用文末百度网盘链接 注:Ollama是…

力扣hot100刷题第一天

哈希 1. 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意…

Linux(CentOS)安装 Nginx

CentOS版本:CentOS 7 Nginx版本:1.24.0 两种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过编译源码包安装,需具备配置相关操作。 最后附:设置 Nginx 服务开…

项目6:基于大数据校园一卡通数据分析和可视化

1、项目简介 本项目是基于大数据的清华校园卡数据分析系统,通过Hadoop,spark等技术处理校园卡交易、卡号和商户信息数据。系统实现消费类别、男女消费差异、学院消费排行和年级对比等分析,并通过Web后端和可视化前端展示结果。项目运行便捷&…

Django项目中创建app并快速上手(pycharm Windows)

1.打开终端 我选择的是第二个 2.运行命令 python manage.py startapp 名称 例如: python manage.py startapp app01 回车,等待一下,出现app01的文件夹说明创建成功 3.快速上手 1.app注册 增加一行 "app01.apps.App01Config"&#…

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…

信创领域的PostgreSQL管理员认证

信创产业,全称为信息技术应用创新产业,是中国为应对国际技术竞争、保障信息安全、实现科技自立而重点发展的战略性新兴产业。其核心目标是通过自主研发和生态构建,逐步替代国外信息技术产品,形成自主可控的国产化信息技术体系。 发…

jemalloc的malloc案例来分析GOT表和PLT表有关流程

一、背景 在之前的博客 跟踪jemalloc 5.3.0的第一次malloc的源头原因及jemalloc相关初始化细节拓展-CSDN博客 里,我们分析了在preload jemalloc的库之后,main之前的一次malloc分配(分配72704字节)的源头原因并做了jemalloc的初始…

Centos Ollama + Deepseek-r1+Chatbox运行环境搭建

Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好! 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…

使用sunshine和moonlight串流时的音频输出问题

设备:电脑和平板串流,把平板当副屏使用 1.如果启用安装steam音频驱动程序,则平板有声,电脑无声,在moonlight端可以设置平板和电脑同时发声,但是有点卡 2.只想电脑发声,平板无声 禁用安装steam…

微信小程序案例2——天气微信小程序(学会绑定数据)

文章目录 一、项目步骤1 创建一个weather项目2 进入index.wxml、index.js、index.wxss文件,清空所有内容,进入App.json,修改导航栏标题为“中国天气网”。3进入index.wxml,进行当天天气情况的界面布局,包括温度、最低温、最高温、天气情况、城市、星期、风行情况,代码如下…

如何在WPS和Word/Excel中直接使用DeepSeek功能

以下是将DeepSeek功能集成到WPS中的详细步骤,无需本地部署模型,直接通过官网连接使用:1. 下载并安装OfficeAI插件 (1)访问OfficeAI插件下载地址:OfficeAI助手 - 免费办公智能AI助手, AI写作,下载…

数字电路-基础逻辑门实验

基础逻辑门是数字电路设计的核心元件,它们执行的是基本的逻辑运算。通过这些基本运算,可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门(AND)、或门(OR)、非门(NOT)、异或门…

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…

C++,STL 迭代器简介:概念、分类、操作

文章目录 引言一、迭代器的基本概念1.1 什么是迭代器?1.2 迭代器的意义二、迭代器的分类2.1 示意图:迭代器能力层级2.2 示例:不同迭代器的操作三、迭代器的常用操作3.1 基本操作3.2 随机访问迭代器专用操作示例代码:随机访问迭代器四、迭代器的通用用法4.1 遍历容器4.2 配合…

EasyExcel 导出合并层级单元格

EasyExcel 导出合并层级单元格 一、案例 案例一 1.相同订单号单元格进行合并 合并结果 案例二 1.相同订单号的单元格进行合并2.相同订单号的总数和总金额进行合并 合并结果 案例三 1.相同订单号的单元格进行合并2.相同订单号的商品分类进行合并3.相同订单号的总数和总金额…

常用的python库-安装与使用

常用的python库函数 yield关键字openslide库openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image库 PIL.Image.Imagedetectron2库数据增强…

C++基础系列【8】如何解决编译器报的错误

博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<8>

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 今天我们复习前面学习的指针知识 目录 关于指针数组和数组指针的区别指针数组(Array of Poi…

UE5.5 PCGFrameWork--GPU CustomHLSL

在上一篇UE5.5 PCGFrameWork使用入门-CSDN博客 大致介绍了UE5 PCG框架的基本使用. 本篇探索PCGFrame的高级应用--GPU点云。也就是利用GPU HLSL编程对点云进行操纵,可以大幅度提升点云生成效率。 目前在UE5 PCG框架中,点云GPU的应用大致分为三类: Point…