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

Deepseek系列从v3到R易背面经版

deepseek v3 base要点

MTP : Multi-Token Prediction

训练时:

1. 把前一个block中input tokens经过embedding layer和transformer block的输出,进入output head之前的内容记为h,与下一个block的input tokens经过embedding layer输出的内容都经过rmsnorm后concat 再送入projection和block。这是causal chain的连接关系,在embedding层增加了残差链接。

2. 用k个tokens作为一个部分送入1个block然后输出k个output tokens和后移T个序列长度的target tokens做cross entropy loss。

推理时:

推理阶段要用上一个状态的预估值作为下一个状态的输入,和训练时不同。训练时用ground truth做输入;推理用上一个状态的估值。

MLA (多头潜在注意力)

一种注意力架构,通过将键和值联合压缩成一个潜在向量,显著降低了推理过程中的KV缓存。

主要公式:

1. 我的理解就是把KV Q用像lora的方法 拆开 降秩,一个高维度矩阵用两个矩阵表示;但是RoPE部分没有用到!

KV

Q

O

同样可以通过结合律优化矩阵乘

把 (WUQ)TWUK 离线融合成一个矩阵,可以像前面的优化一样,减少矩阵运算,注意力架构 也将MHA 转化成了 MQA

2. 常规的方法就是把 KV 降维到一个潜在向量C,当需要计算时再把C升维到 KV。另外这里对位置信息进行了解耦,原始的RoPE需要在query和key中融入相对位置信息。但在MLA中,由于KV Cache缓存的是压缩后的低秩key-value信息,不能对相对位置信息同样进行低秩处理。

3. 主要逻辑是一种通过改变矩阵乘法的计算顺序来优化注意力机制计算效率的方法。这种方法在DeepSeek-V2模型中得到了应用,特别是在解码阶段,能够有效减少计算量。方案来源于SGlang。在deepseekv3基于V2对MLA进一步改进,对Q矩阵也进行了低秩处理。主要是qk用降秩的向量来计算。

MOE (mixture of expert)

共享专家隔离策略(shared expert isolation)的整合。在这种情况下,一些专家被标记为共享专家,旨在捕捉共同知识并减轻激活专家之间的冗余。这种共享专家隔离策略有助于提高模型的性能和效率。

  • 子图(a):展示了具有传统top-2路由策略的MoE层。在这种情况下,每个令牌被分配给两个专家中的一个,即top-2。这是传统的MoE路由策略,其中每个令牌只与两个专家相关。
  • 子图(b):说明了细粒度专家分割(fine-grained expert segmentation)策略。相比于传统的top-2路由,DeepSeekMoE采用了更细粒度的专家划分,将专家进一步分为多个子专家。这样,每个令牌可以与更多的专家相关,实现更灵活的激活专家的组合。
  • 子图(c):展示了共享专家隔离策略(shared expert isolation)的整合。在这种情况下,一些专家被标记为共享专家,旨在捕捉共同知识并减轻激活专家之间的冗余。这种共享专家隔离策略有助于提高模型的性能和效率。

这里用的是C图方法

F8量化策略

量化精度:FP8(E4M3)

量化粒度:

权重:block-wise量化,shape是[128,128],静态离线量化

激活:per-token-group 量化, 动态在线量化

(1) 对于激活值,我们以 1x128 的 组 为基础对元素进行分组和缩放(每个 token 每 128 个通道);

(2) 对于权重,我们以 128x128 的 块 为基础对元素进行分组和缩放(每 128 个输入通道每 128 个输出通道)。

如图1的a部分input和weight的fp8量化rescale表示就是权重量化还有output部分就是激活量化部分。 b部分是对于下溢和精度损失的处理。使用FP8等低精度格式进行GEMM运算时,中间结果的累加容易出现下溢,导致精度损失。传统的做法是使用FP32进行累加,以保持精度。每当 Tensor Core 累加了 128 个 FP8 结果后,就会将这些结果转换(或缩放)到 FP32 精度,然后在 CUDA Cores 的 FP32 寄存器中进行累加。

图2 是对fp8量化策略使用的解释。 大部分GEMM运算采用FP8提升整体训练速度(前向传播、激活反向、权重反向)对应图中Fprop, Dgard, Wgrad模块。 对精度敏感模块仍保留原有精度(Embedding、RMSNorm) 。权重梯度和优化器状态均采用高精度存储fp32存储。

DualPipe

细粒度的计算通信并行:

• 将PP stage拆分为更细的模块,提升模块交替编排的灵活度

• 参考ZeroBubble,反向传递中权重更新和梯度传递独立操作

• 经细粒度的拆分和编排后,计算流和通信流barrier刚好可重叠

双向管道调度减少PP中的气泡

• 1F1B中每个batch拆分为1个forward和1个backward

• ZeroBubble中把backward拆分为input和weight两个部分

• DualPipe中使用对称处理,不同batch从不同device上流水

deepseek R系列:deepseek R1 zero

GRPO算法

deepseek R1 zero是deepseek v3 base上使用GRPO算法(Group Relative Policy Optimization)进行强化学习训练。 GRPO算法比PPO算法(Proximal Policy Optimization)用更少的算力达到大规模强化学习训练的目的,GRPO 的核心思想是简化这个过程:它不需要批评模型,而是通过组内相对奖励来优化策略模型。具体来说,GRPO 会从当前策略中采样一组输出,然后根据这些输出的相对表现来调整策略,而不是依赖一个单独的批评模型。

图2公式解释:这里O 是模型输出 Reference model用于和policy model的输出计算KL散度。这里r 是reward 是G个输出结果经过reward model得到的奖励,经过group computation得到相对优势A。

通俗解释:目标函数的核心是让模型生成高奖励的输出(通过相对优势 Ai和策略比率),同时避免新策略偏离旧策略太远(通过裁剪和 KL 散度)。

从deepseek R1 zero到deepseek R1

deepseek R1 zero在输出内容和表达方面略微逊色,于是在deepseek R1采用部分长思维链数据来冷启动。然后做强化学习训练。进行拒绝采样推理产出的数据,然后监督微调,最后做全场景的强化学习。全程使用了GRPO算法。

ref:

zomi酱的deepseek系列讲解

从DeepSeek V3的MTP,解析MTP技术的前世今生_deepseek mtp-CSDN博客

DeepSeek-R1-GRPO理解-CSDN博客

https://zhuanlan.zhihu.com/p/20565045592

DeepSeek-R1 技术全景解析:从原理到实践的“炼金术配方” ——附多阶段训练流程图与核心误区澄清 - 腾讯云开发者社区-腾讯云

https://zhuanlan.zhihu.com/p/17565919423 https://zhuanlan.zhihu.com/p/16213202688

https://zhuanlan.zhihu.com/p/20269638568

 https://zhuanlan.zhihu.com/p/16323685381

DeepSeek-V3 技术要点解析_deepseek v3知乎解析-CSDN博客

相关文章:

Deepseek系列从v3到R易背面经版

deepseek v3 base要点 MTP : Multi-Token Prediction 训练时: 1. 把前一个block中input tokens经过embedding layer和transformer block的输出,进入output head之前的内容记为h,与下一个block的input tokens经过embedding layer输出的内容都…...

Redis深入学习

目录 Redis是什么? Redis使用场景 Redis线程模型 Redis执行命令是单线程的为什么还这么快? Redis持久化 Redis 事务 Key 过期策略 Redis 和 mysql 如何保证数据一致? 缓存穿透 缓存击穿 缓存雪崩 Redis是什么? redis是一…...

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十一)-回文日期、移动距离、日期问题

前言 在这篇博客中,我们将通过模拟的方法来解决三道经典的算法题:回文日期、移动距离和日期问题。这些题目不仅考察了我们的基础编程能力,还挑战了我们对日期处理和数学推理的理解。通过模拟算法,我们能够深入探索每个问题的核心…...

在Uniapp中使用阿里云OSS插件实现文件上传

在开发小程序时,文件上传是一个常见的需求。阿里云OSS(Object Storage Service)是一个强大的云存储服务,可以帮助我们高效地存储和管理文件。本文将介绍如何在Uniapp小程序中使用阿里云OSS插件实现文件上传功能。 1. 准备工作 首…...

9 数据流图

9 数据流图 9.1数据平衡原则 子图缺少处理后的数据操作结果返回前端应用以及后端数据库返回操作结果到数据管理中间件。 9.2解题技巧 实件名 存储名 加工名 数据流...

IDEA查看项目依赖包及其版本

一.IDEA将现有项目转换为Maven项目 在IntelliJ IDEA中,将现有项目转换为Maven项目是一个常见的需求,可以通过几种不同的方法来实现。Maven是一个强大的构建工具,它可以帮助自动化项目的构建过程,管理依赖关系,以及其他许多方面。 添加Maven支持 如果你的项目还没有pom.xm…...

【数据结构】_栈与队列经典算法OJ:栈与队列的互相实现

目录 1. 用队列实现栈 1.1 题目链接及描述 1.2 解题思路 1.3 程序 2. 用栈实现队列 2.1 题目链接及描述 2.2 解题思路 2.3 程序 1. 用队列实现栈 1.1 题目链接及描述 1. 题目链接 : 225. 用队列实现栈 - 力扣(LeetCode) 2. 题目描…...

SAP-ABAP:ROLLBACK WORK使用详解

在SAP ABAP 中,ROLLBACK WORK 语句用于回滚当前事务(LUW,Logical Unit of Work),撤销自上次提交或回滚以来的所有数据库更改。它通常与 COMMIT WORK 配合使用,确保数据一致性。 关键点: 回滚作…...

DeepSeek R1 Distill Llama 70B(免费版)API使用详解

DeepSeek R1 Distill Llama 70B(免费版)API使用详解 在人工智能领域,随着技术的不断进步,各种新的模型和应用如雨后春笋般涌现。今天,我们要为大家介绍的是OpenRouter平台上提供的DeepSeek R1 Distill Llama 70B&…...

如何避免大语言模型中涉及丢番图方程的问题

希尔伯特第十问题是一个著名的数学问题,涉及不定方程(又称为丢番图方程)的可解答性。然而在大模型中,我们希望问题都是确定的可解的,或者说要尽可能的想办法避免不确定的不可解问题。由于丢番图方程问题是不可判定问题(即不存在一个有效的算法能够解决该类问题的所有实例…...

flutter 获取网络图片的尺寸

获取网络图片的尺寸 import dart:async;import package:flutter/widgets.dart;/// Image Util. class ImageUtil {late ImageStreamListener _listener;late ImageStream _imageStream;/// get image width height,load error throw exception.(unit px…...

MySQL主从同步+binlog

一、简介 MySQL内建的复制功能是构建大型,高性能应用程序的基础 通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制过程中一台服务器充当主服务器,而…...

实践深度学习:构建一个简单的图像分类器

引言 深度学习在图像识别领域取得了巨大的成功。本文将指导你如何使用深度学习框架来构建一个简单的图像分类器,我们将以Python和TensorFlow为例,展示从数据准备到模型训练的完整流程。 环境准备 在开始之前,请确保你的环境中安装了以下工…...

蔚来C++面试题及参考答案

栈了解吗? 栈在计算机科学中是一种重要的数据结构,在 C++ 编程里有不同层面的体现,分别是数据结构层面和内存管理层面。 从数据结构角度来看,栈遵循后进先出(LIFO)的原则。就像一摞盘子,最后放上去的盘子总是最先被拿走。在 C++ 标准模板库(STL)中,提供了std::stac…...

C# Winform怎么设计串口,客户端和相机控件界面显示

首先我们必须把这个类创建好 INIAPI using System; using System.Text; using System.Runtime.InteropServices;namespace Ini {public class IniAPI{#region INI文件操作/** 针对INI文件的API操作方法,其中的节点(Section)、键(KEY&#x…...

C++字符串相关内容

字符串 字符串,本质上是一个接一个字符的一组字符。字母、数字、符号等。 const char* 字符串名 字符后面会有一个空终止符,为0。 字符串从指针的内存地址开始,然后继续下去,直到它碰到0,然后意识到字符串终止了。 …...

利用二分法进行 SQL 时间盲注

什么是时间盲注? SQL 盲注(Blind SQL Injection)是一种常见的 Web 安全漏洞,其中时间盲注是基于查询延迟的 SQL 注入方式。当服务器不返回可见的错误信息时,我们可以利用 SLEEP() 函数来判断查询结果是否符合预期。 …...

数据库管理-第293期 奇怪的sys.user$授权+(20250210)

数据库管理293期 2025-02-10 数据库管理-第293期 奇怪的sys.user$授权(20250210)1 清空shared pool2 SR反馈总结 数据库管理-第293期 奇怪的sys.user$授权(20250210) 作者:胖头鱼的鱼缸(尹海文&#xff09…...

react实例与总结(一)

目录 一、简单认识 1.1、特点 1.2、JSX语法规则 1.3、函数组件和类式组件 1.4、类组件三大属性state、props、refs 1.4.1、state 1.4.2、props 1.4.3、refs 1.5、事件处理 1.6、收集表单数据—非受控组件和受控组件 1.7、高阶函数—函数柯里化 1.8、生命周期—新旧…...

电路研究9.3——合宙Air780EP中的AT开发指南(含TCP 示例)

根据合宙的AT研发推荐, AT指令基本上也简单看完了,这里开始转到AT的开发了。 AT 命令采用标准串口进行数据收发,将以前复杂的设备通讯方式转换成简单的串口编程, 大大简化了产品的硬件设计和软件开发成本,这使得几乎所…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

django filter 统计数量 按属性去重

在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

蓝桥杯 冶炼金属

原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...