【推理llm论文精读】DeepSeek V3技术论文_精工见效果

先附上原始论文和效果对比https://arxiv.org/pdf/2412.19437
在这里插入图片描述

摘要 (Abstract)

DeepSeek-V3是DeepSeek-AI团队推出的最新力作,一个强大的混合专家(Mixture-of-Experts,MoE)语言模型。它拥有671B的总参数量,但每个token仅激活37B参数,实现了效率和性能的平衡。DeepSeek-V3在架构上采用了多头潜注意力(Multi-head Latent Attention, MLA)和DeepSeekMoE,并在训练策略上进行了创新,引入了无辅助损失的负载均衡和多token预测目标。经过14.8万亿token的预训练,以及监督微调和强化学习阶段,DeepSeek-V3在多项评估中超越了其他开源模型,并在某些任务上达到了与领先闭源模型相媲美的水平。更令人印象深刻的是,DeepSeek-V3的训练成本极低,整个训练过程仅需2.788M H800 GPU小时,且训练过程非常稳定。

1. 引言 (Introduction)

大型语言模型(LLMs)的发展日新月异,不断缩小与通用人工智能(AGI)的差距。DeepSeek-V3的发布,进一步推动了开源模型的发展。它不仅在性能上表现出色,而且在训练效率和成本控制方面也树立了新的标杆。

本文将深入剖析DeepSeek-V3的各个方面,包括模型结构、预训练、后训练和推理部署,揭示其创新之处和实现逻辑。

2. 模型结构 (Architecture)

在这里插入图片描述

DeepSeek-V3的架构设计有两大核心目标:

  1. 高效推理 (Efficient Inference): 通过多头潜注意力(MLA)实现。
  2. 经济训练 (Economical Training): 通过DeepSeekMoE实现。

此外,DeepSeek-V3还引入了多token预测 (Multi-Token Prediction, MTP) 训练目标,进一步提升模型性能。

2.1 多头潜注意力 (Multi-Head Latent Attention, MLA)

MLA是DeepSeek-V2中首次提出的注意力机制,旨在减少推理过程中的KV缓存大小。其核心思想是对Key和Value进行低秩联合压缩。

MLA的计算过程如下:

  1. Key和Value的压缩:

    • 计算潜向量:cKV = WDKV * ht (WDKV是降维矩阵,ht是输入)
    • 计算压缩后的Key:[k1; k2; ...; knh] = k = WUK * cKV
    • 计算解耦Key (用于RoPE):k = ROPE(WKR * ht)
    • 将压缩后的Key和解耦Key拼接: kt,i = [k; k]
    • 计算压缩后的Value:[v1; v2; ...; vnh] = v = WUV * cKV
  2. Query的压缩(训练时):

    • 计算潜向量:c = WDQ * ht
    • 计算压缩后的Query:[q1; q2; ...; qnh] = q = WUQ * c
    • 计算解耦Query (用于RoPE):q = ROPE(WQR * c)
    • 将解耦Query进行切分: qt,i = [q; q]
  3. 注意力计算:

    • ot,i = Softmax( (qt,i * kTi) / sqrt(dh + d) ) * v
    • ut = W0 * [ot,1; ot,2; ...; ot,nh]

MLA的优势:

  • 减少KV缓存: 推理时只需缓存压缩后的潜向量cKV和解耦Keyk,大大减少了KV缓存的大小。
  • 保持性能: 在减少KV缓存的同时,MLA能够保持与标准多头注意力(MHA)相当的性能。

2.2 DeepSeekMoE

DeepSeekMoE是DeepSeek团队提出的一种MoE架构,相比于传统的MoE架构(如GShard),它具有以下特点:

  • 更细粒度的专家 (Finer-grained Experts): 每个专家负责处理更小的计算量。
  • 共享专家 (Shared Experts): 部分专家被所有token共享,处理通用知识。
  • 无辅助损失的负载均衡 (Auxiliary-Loss-Free Load Balancing): 避免了辅助损失对模型性能的负面影响。

DeepSeekMoE的计算过程如下:

  1. FFN输出:
    h = ut + Σ FFN(s)(ut) + Σ git * FFN(r)(ut)
    这里,FFN(s)表示共享专家,FFN(r)表示路由专家(routed experts),git表示路由权重。

  2. 路由权重计算:
    git = { sit , sit ∈ Topk({sj,t | 1 ≤ j ≤ Nr}, Kr); 0, otherwise

sit = Sigmoid( ut * ei )

其中:
*   `Ns`: 共享专家数量
*   `Nr`: 路由专家数量
*   `Kr`: 每个token激活的路由专家数量
*   `ei`: 第i个路由专家的中心向量
*  `Topk`函数选择亲和度(affinity)最高的K个专家。
  1. 无辅助损失负载均衡: DeepSeek-V3使用了一种创新的无辅助损失负载均衡策略。它为每个专家引入一个偏置项bi,并将其添加到亲和度得分sit中,以确定top-K路由:

    s'i,t = { si,t + bi,  si,t + bi ∈ Topk({sj,t + bj | 1 ≤ j ≤ Nr}, Kr); 0, otherwise }
    

    在训练过程,会动态调整每个专家偏置b,过载则减小,负载不足则增加。

  2. 补充序列级辅助损失: 为了防止单个序列内的极端不平衡,DeepSeek-V3还引入了一个非常小的序列级辅助损失。

DeepSeekMoE的优势:

  • 高效训练: 更细粒度的专家和共享专家机制使得计算更高效。
  • 更好的负载均衡: 无辅助损失的负载均衡策略避免了性能损失,同时实现了更好的负载均衡。

2.3 多token预测 (Multi-Token Prediction, MTP)

DeepSeek-V3采用了MTP训练目标,这受到Gloeckle等人(2024)工作的启发。MTP扩展了预测范围,在每个位置预测多个未来的token。

MTP的实现:

  1. MTP模块: DeepSeek-V3使用了D个串行的MTP模块来预测D个额外的token。每个MTP模块包含:

    • 共享的嵌入层(Shared Embedding Layer)
    • 共享的输出头(Shared Output Head)
    • Transformer块
    • 投影矩阵
  2. 计算过程: 对于第i个输入token ti,在第k个预测深度:

    • 组合表示:h = Mk * [RMSNorm(h-1); RMSNorm(Emb(ti+k))]
    • Transformer块:h:T-k = TRMk(h)
    • 预测概率:P = OutHead(h)
  3. MTP训练目标: 对于每个预测深度,计算交叉熵损失LMTP,最终的MTP损失是所有深度损失的加权平均。

MTP的优势:

  • 增强信号: MTP提供了更密集的训练信号,有助于模型学习。
  • 预规划: MTP可能使模型能够预先规划其表示,以更好地预测未来的token。
  • 推理加速: MTP可用于推测解码,以提升推理速度。

3. 预训练 (Pre-Training)

DeepSeek-V3的预训练过程有以下几个关键点:

  • 数据 (Data): 使用了14.8T高质量、多样化的token,并优化了数学和编程样本的比例,扩展了多语言覆盖。
  • FIM (Fill-in-Middle): 采用了FIM策略,提高了模型处理上下文的能力。
  • 超参数 (Hyper-Parameters): 采用了AdamW优化器,并使用了学习率调度和批大小调度策略。
  • 稳定性 (Stability): 预训练过程非常稳定,没有出现不可恢复的损失峰值或回滚。
  • 长上下文扩展: 采用两阶段上下文长度扩展,最终支持128K的上下文长度。

4. 后训练 (Post-Training)

DeepSeek-V3的后训练包括两个阶段:

  1. 监督微调 (Supervised Fine-Tuning, SFT):

    • 数据: 使用了1.5M实例的多领域指令数据集。
    • 推理数据生成: 采用了从DeepSeek-R1模型中蒸馏推理能力的方法。
    • 非推理数据生成: 使用DeepSeek-V2.5生成响应,并由人工标注者进行验证。
  2. 强化学习 (Reinforcement Learning, RL):

    • 奖励模型 (Reward Model, RM): 使用了基于规则的RM和基于模型的RM。
    • 优化算法: 采用了Group Relative Policy Optimization (GRPO)算法。

5. 推理部署 (Inference and Deployment)

DeepSeek-V3的推理部署策略旨在同时保证在线服务的服务水平目标(SLO)和高吞吐量。

  • 分离阶段: 将推理过程分为预填充(Prefilling)和解码(Decoding)两个阶段。
  • 预填充:
    • 采用4路张量并行(TP4)和8路数据并行(DP8)。
    • MoE部分采用32路专家并行(EP32)。
    • 使用冗余专家策略实现负载均衡。
    • 同时处理两个微批次,以提高吞吐量。
  • 解码:
    • 采用TP4和DP80。
    • MoE部分采用EP320。
    • 使用直接点对点传输和IBGDA技术来减少延迟。
    • 也采用冗余专家策略。

6. 创新点总结

DeepSeek-V3的创新点可以归纳为以下几点:

  • 架构创新:
    • MLA: 减少推理时的KV缓存。
    • DeepSeekMoE: 更细粒度的专家、共享专家和无辅助损失的负载均衡。
    • MTP: 多token预测目标,增强训练信号。
  • 训练创新:
    • FP8训练: 首次在超大规模模型上验证了FP8训练的可行性和有效性。
    • DualPipe: 高效的流水线并行算法,实现了计算和通信的高度重叠。
    • 跨节点All-to-All通信优化: 充分利用IB和NVLink带宽,减少通信开销。
    • 内存优化: 通过重计算、CPU中的EMA、共享嵌入和输出头等技术,减少内存占用。
    • 知识蒸馏: 从DeepSeek-R1中蒸馏长CoT(Chain-of-Thought)推理能力。
  • 推理创新:
    • 冗余专家: 动态调整专家部署,实现负载均衡。
    • 分离阶段: 将预填充和解码分离,优化吞吐量和延迟。

7. 实验结果 (Evaluation Results)

DeepSeek-V3在多个基准测试中都取得了优异的成绩,包括:

  • 知识: 在MMLU、MMLU-Pro、GPQA等教育基准测试中,DeepSeek-V3超越了所有其他开源模型,并接近领先的闭源模型。
  • 代码、数学和推理: 在数学和编码基准测试中,DeepSeek-V3取得了SOTA性能。
  • 长上下文: 在长上下文理解任务中,DeepSeek-V3表现出色。
  • 中文能力: 在中文基准测试中,DeepSeek-V3表现出强大的竞争力。
  • 开放式评估: 在Arena-Hard和AlpacaEval 2.0等开放式评估中,DeepSeek-V3也取得了优异的成绩。

8. 局限性与未来方向

论文中承认DeepSeek-V3存在一些局限性,主要是在部署方面:

  • 部署资源要求高: 为了保证高效推理,DeepSeek-V3的推荐部署单元较大。
  • 推理速度仍有提升空间: 虽然推理速度已经比DeepSeek-V2快两倍以上,但仍有优化潜力。

未来的研究方向包括:

  • 进一步优化模型架构: 探索更高效的注意力机制和MoE架构。
  • 数据扩展: 持续迭代训练数据,并探索更多样的训练信号来源。
  • 深度思考能力: 增强模型的推理能力和问题解决能力。
  • 更全面的评估方法: 探索更全面、多维度的模型评估方法。

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

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

相关文章

如何使用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天

手把手教你用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天 目录 文章目录 手把手教你用**Java**语言在**Idea**和**Android**中分别建立**服务端**和**客户端**实现局域网聊天**目录**[toc]**基本实现****问题分析****服务端**Idea:结构预览Server类代码解…

java韩顺平最新教程,Java工程师进阶

简介 HikariCP 是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能,另外,和 druid 一样,HikariCP 也支持监控…

如何在 IDE 里使用 DeepSeek?

近期,阿里云百炼平台重磅推出 DeepSeek-V3、DeepSeek-R1、DeepSeek-R1-Distill-Qwen-32B 等 6 款模型,进一步丰富其 AI 模型矩阵。与此同时,通义灵码也紧跟步伐,全新上线模型选择功能,支持基于百炼的 DeepSeek-V3 和 D…

网络安全技术复习总结

1|0第一章 概论 1.网络安全发展阶段包括四个阶段:通信安全、计算机安全、网络安全、网络空间安全。 2.2017年6月1日,我国第一部全面规范网络空间安全的基础性法律《中华人民共和国网络安全法》正式实施。 3.2021年 6月10日,《中华人民共和…

DedeBIZ系统审计小结

之前简单审计过DedeBIZ系统,网上还没有对这个系统的漏洞有过详尽的分析,于是重新审计并总结文章,记录下自己审计的过程。 https://github.com/DedeBIZ/DedeV6/archive/refs/tags/6.2.10.zip 📌DedeBIZ 系统并非基于 MVC 框架&…

业务开发 | 基础知识 | Maven 快速入门

Maven 快速入门 1.Maven 全面概述 Apache Maven 是一种软件项目管理和理解工具。基于项目对象模型的概念(POM),Maven 可以从中央信息中管理项目的构建,报告和文档。 2.Maven 基本功能 因此实际上 Maven 的基本功能就是作为 Ja…

2.11 sqlite3数据库【数据库的相关操作指令、函数】

练习: 将 epoll 服务器 客户端拿来用 客户端:写一个界面,里面有注册登录 服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正确…

Python(十九)实现各大跨境船公司物流查询数据处理优化

一、前言 之前已经实现了常用 跨境物流船司 基础信息查询功能,如下所示 实现各大跨境船公司[COSCO/ZIM/MSK/MSC/ONE/PIL]的物流信息查询:https://blog.csdn.net/Makasa/article/details/145484999?spm1001.2014.3001.5501 然后本章在其基础上做了一些…

基于微信小程序的博物馆预约系统的设计与实现

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

深度学习框架TensorFlow怎么用?

大家好呀,以下是使用 TensorFlow 的详细步骤,从安装到构建和训练模型: 一、安装 TensorFlow 安装 Python:TensorFlow 基于 Python,确保已安装 Python(推荐 Python 3.8 及以上版本)。可通过 Pyt…

如何在华为harmonyOS上调试软件

1、设置-》关于手机-》HarmonyOS 版本连按多下,输入锁屏密码。显示开发者模式已打开。 2、设置-》搜索“开发人员选项”-》开启“开发人员选项”选项。 3、在 开发者选项 中找到 “USB 调试” 并开启。 4、开启 “仅充电时允许 ADB 调试”。 5、设置中开启 &quo…

fpga系列 HDL:Quartus II JTAG 间接配置文件 Indirect Configuration File (.jic) AS模式烧录

先编译生成pof文件 File->Convert Programming Files 转换文件 Tools->Programer 烧录

Python:凯撒密码

题目内容: 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:A B C D E F G H I J K L M N O P Q R …

【大模型知识点】什么是KV Cache?为什么要使用KV Cache?使用KV Cache会带来什么问题?

1.什么是KV Cache?为什么要使用KV Cache? 理解此问题,首先需理解自注意机制的计算和掩码自注意力机制,在Decoder架构的模型中,每生成一个新的token,便需要重新执行一次自注意力计算,这个过程中…

【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式

【STM32】HAL库Host MSC读写外部U盘及FatFS文件系统的USB Disk模式 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

本地生活服务平台开发进入发展热潮

本地生活服务平台:当下的发展热潮 本地生活服务平台开发模式 在当今数字化时代,本地生活服务平台开发已成为人们日常生活中不可或缺的一部分。只需动动手指,打开手机上的 APP,就能轻松满足各类生活需求。像某团、饿XX这样的平台&a…

LSTM变种模型

GRU GRU简介 门控循环神经网络 (Gated Recurrent Neural Network,GRNN) 的提出,旨在更好地捕捉时间序列中时间步距离较大的依赖关系。它通过可学习的门来控制信息的流动。其中,门控循环单元 (Gated Recurrent Unit , GRU) 是…

微服务与网关

什么是网关 背景 单体项目中,前端只用访问指定的一个端口8080,就可以得到任何想要的数据 微服务项目中,ip是不断变化的,端口是多个的 解决方案:网关 网关:就是网络的关口,负责请求的路由、转发…

二分算法篇:二分答案法的巧妙应用

二分算法篇:二分答案法的巧妙应用 那么看到二分这两个字想必我们一定非常熟悉,那么在大学期间的c语言的教学中会专门讲解二分查找,那么我们来简单回顾一下二分查找算法,我们知道二分查找是在一个有序的序列中寻找一个数在这个序列…

C# OpenCV机器视觉:模仿Halcon各向异性扩散滤波

在一个充满创意与挑战的图像处理工作室里,阿强是一位热情的图像魔法师。他总是在追求更加出色的图像效果,然而,传统的图像处理方法有时候并不能满足他的需求。 有一天,阿强听说了 Halcon 中的各向异性扩散滤波功能,它…