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

[论文品鉴] DeepSeek V3 最新论文 之 MTP

继续介绍DeepSeek最近发布的关于V3的论文【Insights into DeepSeek-V3: Scaling Challenges and Reflections on Hardware for AI Architectures】,且依然会结合年初的论文 【DeepSeek-V3 Technical Report】 一起。

下面DeepSeek-V3的这张架构图,前两篇文章已经分别介绍了 偏底层MLAMoE,剩下最后的一块内容就是 偏头部MTP 了。
在这里插入图片描述

MTP

MTP(Multi-Token Prediction)多token预测,与之相对应的就是普通LLM的NTP(Next-Token Prediction),很显然MTP尝试解决的问题是一次性的预测多个token。

还是那就老话,“不是所有的牛奶都是特仑苏”,在深入 DeepSeek MTP 前,先来看看 普通的 MTP

它的思想很简单,先看下 训练阶段,下面这张图从下往上看:

在这里插入图片描述

  1. 首先,input token t 1 t_1 t1 通过 embedding 后送入了 Transformer block,就和正常 LLM 的 NTP 一样
  2. 但注意这里只到 倒数第二层,并非最终的输出层;且这一部分,所有输出头 共享
  3. 假设预测 next 3 个token
  4. 那么,首先会有一个 main head,它的定位和正常 LLM 的 NTP 的输出头一样,输出 t 2 t_2 t2 下一个 token,也是准确率最高的 head
  5. 同时,倒数第二层也会把数据传入 另外两个 MTP Head,去预测 t 3 、 t 4 t3、t4 t3t4
  6. 这3个输出头,共享参数,在训练的时候都参与loss计算,只不过 main head 的权重最大

再来看 推理阶段

  1. 同样的,对于输入 “恒电的饭菜”,去预测下3个token在这里插入图片描述
  2. 但由于预测的越远,预测的越不准,所以需要通过 验证 确保符合预期
  3. 首先, t 2 t2 t2 也就是下一个 token (“真”字)准确率最高,可以直接采纳
  4. 然后,看 t 3 t3 t3 的 token(“好”字),在这里插入图片描述 也可以采纳
  5. 最后,看 t 4 t4 t4 的 token(“吃”字),在这里插入图片描述,个人表示完全无法接受 😃
  6. 所以此时,虽然预测了next 3 token,但通过 验证 只采纳了 next 2 ,也就是输出为 “恒电的饭菜真好”
  7. 然后再作为输入,进入下一轮 MTP 递归,继续生成 next 3 token,继续 验证,直到 EOS

DeepSeek MTP

普通的 MTP 的主要问题在于:多头相互间是独立预测的,准确率低,严重依赖后期验证。

DeepSeek MTP 的解法是:给每个头传入额外的信息,帮助它们进行预测。

在这里插入图片描述

论文中的原图不太容易理解,可以看我的这张图(再和上面普通MTP对比着看):

在这里插入图片描述

  1. 首先,和普通MTP最大的不同是,input token t 1 t1 t1 会经过 main head 这个头的完整的 transformer block 输出 token t 2 t2 t2,而不是只到共享的 − 1 -1 1 倒数第二层,再经过最后一层
  2. 经过完整 transformer block 输出 token t 2 t2 t2 的特征,会作为 mtp head 的一分部输入
  3. 再结合 token t 2 t2 t2 本身经过 embedding 后 的输入
  4. 进入一个线性层,进行 降维,然后进入 这个 mtp head 自己的 transformer block 进行 t 3 t3 t3 的预测
  5. 同样的,MTP head 的预测结果,也参与 loss 计算

所以,通过 传入上一个head用于预测的特征,可以 帮助下一个head去预测下一个token,预测的会更准确。

同时,对于 DeepSeek MTP 首先需要强调一点的是,DeepSeek MTP 只用于 训练阶段 去提高 main model 的性能,所以在 推理阶段,完全舍弃掉了 MTP

DeepSeek-V3 Technical Report

图:DeepSeek-V3 Technical Report


以上,介绍了普通 MTP,以及 DeepSeek MTP ,下一篇继续介绍另外一块重要内容 FP8混合精度训练

http://www.xdnf.cn/news/638047.html

相关文章:

  • python期末速成
  • SpringBoot+MyBatis
  • 深入探索AI模型工程:算法三大门派与监督学习的魅力
  • 财管-1-财务分析、评价和预测
  • 渗透测试靶场PortSwiggerLabs-xss(1-10)lab详解
  • QTableWidgetItem函数的介绍
  • 新闻推荐预测系统实战指南
  • 【编程实践】利用open3d对点云进行聚类并可视化
  • 02.Embedding:数字变矩阵
  • Android-flutter学习总结
  • 计算机基础核心课程
  • Java线程同步:从多线程协作到银行账户安全
  • day28JS+Node-JS打包工具Webpack
  • 智能办公系统 — 审批管理模块 · 开发日志
  • Llama 4中文调优全流程解
  • Linux Kernel调试:强大的printk(三)
  • Kotlin Native与C/C++高效互操作:技术原理与性能优化指南
  • 论文审稿之我对SCI写作的思考
  • 聊一聊接口测试如何设计有效的错误响应测试用例
  • Multivalued Dependencies
  • CMake指令:find_package()
  • 【HarmonyOS5】DevEco Studio 使用指南:代码阅读与编辑功能详解
  • Java 接口
  • Flink 常用算子详解与最佳实践
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用图像类)
  • 运维Linux之Ansible详解学习(更新中)
  • 【linux篇】系统世界跳跃的音符:指令
  • SheetMetal_Unfold方法 FreeCAD_SheetMetal deepwiki 源码笔记
  • 【时时三省】Python 语言----牛客网刷题笔记
  • 【电路笔记】-音频变压器(Audio Transformer)