DeepSeek v3 技术报告阅读笔记
注
- 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文
- 本文不包括基础的知识点讲解,为笔记/大纲性质而非教程,建议阅读技术报告原文
- 交流可发送至邮箱 henryhua0721@foxmail.com
架构核心
核心:
- MLA 高效推理
- DeepSeekMOE 更经济的训练
- MTP 提高模型性能
架构上看主要改进在于Attention层和FFN层:
MLA
参考deepseekv2的technical report内容
KV cache
类GPT模型的decoder架构在推理时一个个token输出,每一次输出都作为下一次输出的输入,带来大量重复计算。KV cache空间换时间,降低推理复杂度。
w/o KV cache:
每一次推理计算attention时,当前token前的token QK计算在前面步骤被重复计算,结果可以使用KV cache存储而非再次计算。
huggingface/transformers/gpt2的KV cache代码:
if layer_past is not None:past_key, past_value = layer_pastkey_states = torch.cat((past_key, key_states), dim=-2)value_states = torch.cat((past_value, value_states), dim=-2)if use_cache is True:present = (key_states, value_states)else:present = None
KV cache存在的问题:对GPU memory的需求巨大
解决办法:
- Quantization
- (Deepseek)减小输入以减小cache
Letent KV
使用letent KV替代传统KV存储到cache中。对kv压缩:
- 传统attention:k = Wh / v = Wh
- latent KV:使用更小的letent变量c作为中间变量,可以表示 k/v,存储cache
在推理的时候本质上不需要计算出单独的k和v变量:
计算q*kT的时候可以使用线性代数运算使得不需要单独提出参数矩阵,而是可以化为大的参数矩阵(图中 W^ QT 和 W^ UK 相乘)
同样对key压缩:
Decouple RoPE
参考:Multi-Head Latent Attention: Boosting Inference Efficiency
RoPE的引入导致q和k都被R矩阵加权,对KV cache造成的损害:
解决办法:引入新的multi-head queries(和不做低秩分解的q相同)
- 每个 attn 层额外增加 multi-head queries q^R
- 添加共享的key用于 k^R
- 再将 q^ R 和低秩分解的 q、k^R 和低秩分解的k concate起来
huggingface discussion上似乎提供了更sufficient方法:将rope part和none-rope part进行sum up而非concatenate
(链接找不到了qwq)
KV cache存储的:
- c^KV
- k^R
DeepSeekMOE
MOE
大语言模型主要的计算量集中在attention层,参数量集中在FFN层。
MoE的本质是将FFN分组。好处在于模型易于scale up以及降低cost。
Gate将输入计算前往各个FFN分组的概率:
- Dense MoE:计算每个分支的概率,并进行加权
- Sparse MoE:取概率top-k
每个expert是两个MLP层。
传统MoE的问题:学习知识重合、expert之间无法区分 -> DeepSeekMOE
Load Balance
传统MOE训练出现马太效应:某个单个expert训练较好,引导gate划分更多token给它训练,导致单个expert过拟合、其他expert欠拟合。
Load balance的解决办法:
- (Switch transformer) loss control:在损失函数中制约
- (DeepSeek) loss free:添加bias
DeepSeekMOE
- 划分更小的exert
- 设置某些共享expert学习常识
- Fine-grained Expert Segmentation
- N expert -> 2N expert,top2 -> top4。
- 降低每个expert(两层MLP)中间层宽度,使得model整体参数量没有变大,但是减小了模型variance
- Shared Expert Isolation:shared expert
- 具有error correction机制:大多数问题shared expert会回答(通),其他expert(专)进行correct
load balance
- 添加bias
通过添加bias手动提高softmax后某些expert的概率。在训练中,观察后不断进行调整(但是不属于loss的范畴)
- sequence-wise balance loss(区别于传统的token-wise)
- Node-limited Routing:训练时限制每个token只送到M个nodes中,降低通信成本。
- No token-dropping:token-dropping是对于load balance比较高的expert drop掉新的token input(直接过残差层不经过FFN)。这里不使用,因为上面的方法已解决load balance。
MTP
Deepseek MTP参考:
- Meta MTP
- EAGLE
当前language model的训练方式导致的问题:
- teaching force导致training每次输入的都是perfect content
- NTP导致近视👓,planning能力差
- 每次只预测下一个token,training signal较弱
-> 一次预测多个token :MTP
Meta MTP
将head分组,每个head负责一个token
- training singal更强(每一层都有反馈)
- 一次预测4个token,加强planning能力
- 缓解teaching force问题,不再过于local
但是并行heads违背了auto regression的想法,打破前后依赖 -> EAGLE(使用auto regression heads)
Speculative Decoding
LLM inference的问题 -> Slow
- KV cache
- speculative decoding
- quick guess(小模型,快但精度低)
- cheap verification(大模型,慢但精度高)
实现方式
- independent:两个LLM一大一小
- 简化过程:小LM生成sequence后给大LM计算每个token概率,若一致则accept,否则从reject token开始重新生成
- 实际上使用小LM加速大LM生成过程,大LM生成过程中实时纠错
- self:只借助大LLM中间某些head实现
- Medusa / EAGLE 模型
- Medusa / EAGLE 模型
DeepSeek MTP
使用类似EAGLE的casual arc(而不是parallel)替换META MTP中的实现:
相关文章:
DeepSeek v3 技术报告阅读笔记
注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解,为笔记/大纲性质而非教程,建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心: MLA 高效推理DeepSeekMOE 更…...
Python爬虫-猫眼电影的影院数据
前言 本文是该专栏的第46篇,后面会持续分享python爬虫干货知识,记得关注。 本文笔者以猫眼电影为例子,获取猫眼的影院相关数据。 废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) …...
每天五分钟深度学习框架pytorch:搭建谷歌的Inception网络模块
本文重点 前面我们学习了VGG,从现在开始我们将学习谷歌公司推出的GoogLeNet。当年ImageNet竞赛的第二名是VGG,而第一名就是GoogLeNet,它的模型设计拥有很多的技巧,这个model证明了一件事:用更多的卷积,更深的层次可以得到更好的结构 GoogLeNet的网络结构 如图所示就是Go…...
export default与export区别
1.定义: export default:用于导出模块中的默认成员。一个模块中只能有一个export default,通常用于导出模块的主要功能或对象。导入时可以使用任意名称,因为它没有具体的名称 export:用于导出模块中的多个成…...
当Ollama遇上划词翻译:我的Windows本地AI服务搭建日记
🚀 实现Windows本地大模型翻译服务 - 基于OllamaFlask的划词翻译实践 🛠️ 步骤概要1️⃣ python 环境准备2️⃣ Ollama 安装3️⃣ 一个 Flask 服务4️⃣ Windows 服务化封装5️⃣ 测试本地接口6️⃣ 配置划词翻译自定义翻译源7️⃣ 效果展示8️⃣ debug…...
5G与物联网的协同发展:打造智能城市的未来
引言 随着科技的不断进步,智能城市的概念已经不再是科幻小说中的幻想,它正在逐步走进我们的生活。而这背后的两大驱动力无疑是 5G和 物联网(IoT)。5G网络以其高速率、低延迟、大容量的优势,与物联网的强大连接能力相结…...
并发编程---synchronized关键字,以及synchronized同步锁
文章目录 Synchronized 的使用synchronized 在普通方法上的使用(对象锁)synchronized 在静态方法上的使用(类锁)synchronized 在代码块上的使用 JVM 中锁的优化锁的类型自旋锁与自适应自旋锁自旋锁(Spin Lockÿ…...
Vue学习笔记5(Vue3)
Vue3学习笔记 一、create-vue搭建vue3项目 create-vue是vue官方新的脚手架工具,底层切换到了vite 步骤: 查看环境条件 node -v版本需要在16.0及以上创建一个vue应用 npm init vuelatest 这一指令会安装并执行create-vue 二、项目目录和关键文件 in…...
VoIP之音视频会议中的混音技术
在VoIP音视频会议中,需要将多路参会方音频流混合成一路音频流再发送给各参会方,以达到参会方可以听到每个与会人声音的目的,这种技术叫混音。 一、混音基础原理 在实际生活中,我们所处的生活和工作环境就是一个自然的混音场&…...
Baklib一站式云平台:全场景赋能企业知识资产激活
内容概要 在数字化浪潮推动下,企业知识资产的高效管理与价值释放成为核心议题。Baklib作为一站式云平台,以全场景赋能为核心定位,通过构建知识中台架构,为企业提供从资源整合到应用落地的闭环解决方案。该平台不仅支持文本、图像…...
基于nuScenes数据集和DeepSeek模型的端到端自动驾驶解决方案
结合DeepSeek模型进行知识蒸馏,以提高模型性能。这需要将nuScenes中的多模态数据(如摄像头图像、雷达点云、车辆状态等)整合到模型中,同时使用DeepSeek的生成能力进行蒸馏。 接下来,我需要考虑用户可能的背景。用户可能…...
《AI大模型开发笔记》deepseek提示词技巧
为什么你的 AI 助手总是答非所问? 「写篇产品分析」 → 收到一堆不知所云的文字 「做个竞品对比」 → 得到几页没有重点的废话 揭秘:不是 AI 不够聪明,而是你的指令太“高冷”! 一、新手进阶: 5 大法则,让…...
学习笔记-人脸识别相关编程基础
通过编程实现人脸识别功能,需要掌握一定的技术基础,包括编程语言、图像处理、机器学习以及相关的库和框架: 1. 编程语言 Python:Python 是实现人脸识别最常用的语言之一,因为它有大量的库和框架支持,如 Op…...
Java发展史
JavaEE的由来 语言的诞生 Java的前身是Oak语言,其目的是搞嵌入式开发开发智能面包机 叮~~~🍞🍞🍞 产品以失败告终 巅峰 网景公司需要网景浏览器打开网页,Oak->Java,进行前端开发(相关技…...
SAP-ABAP:SAP中REPORT程序和online程序的区别对比
在SAP中,REPORT程序和Online程序(通常指Dialog程序)是两种常见的ABAP程序类型,它们在用途、结构和用户交互方式上有显著区别。以下是它们的详细对比: 1. 用途 REPORT程序Online程序主要用于数据查询、报表生成和批量数…...
【第2章:神经网络基础与实现——2.1 前馈神经网络的结构与工作原理】
老铁们好!今天我们要来一场长达两万字的超详细技术探险,我会像拆解乐高积木一样把前馈神经网络(Feedforward Neural Network)的每个零件摆在台面上,用最接地气的方式让你彻底搞懂这个深度学习基石的工作原理。准备好了吗?我们开始吧! 第一章:神经网络的 “乐高积木” 1…...
Pythong 解决Pycharm 运行太慢
Pythong 解决Pycharm 运行太慢 官方给Pycharm自身占用的最大内存设低估了限制,我的Pycharm刚开始默认是256mb。 首先找到自己的Pycharm安装目录 根据合适自己的改 保存,重启Pycharm...
P6792 [SNOI2020] 区间和 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作分两种: chmax ( l , r , v ) \operatorname{chmax}(l,r,v) chmax(l,r,v):对每个 i ∈ [ l , r ] i \in [l,r] i∈[l,…...
基于ArduPilot开发无人机飞控自动驾驶仪
目录 1、项目参数 2、硬件设计解析 2.1、主控与协处理器架构 2.2、高精度传感器集成 2.3、数据存储与恢复 2.4、电源管理与保护 2.5、通信与接口 本项目基于开源飞行控制固件 ArduPilot 开发,设计并实现了一款高度集成的 自动驾驶仪,可广泛应用于…...
Kotlin Lambda
Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…...
UniApp 中制作一个横向滚动工具栏
前言 最近在用 UniApp 开发项目时,需要一个横向滑动的工具栏。常见的工具栏一般都是竖着的,但横向滑动的工具栏不仅能展示更多内容,还能让界面看起来更加丰富。不过很多朋友可能会发现,如何让内容“横着”展示又不变形、能流畅滚…...
Qt的QListWidget样式设置
以下是关于QListWidget样式设置的详细说明,包含常用样式配置和进阶技巧: 1. 基础列表样式 // 设置整体列表容器样式 listWidget->setStyleSheet("QListWidget {"" background-color: #f5f5f5;" // 背景颜色" borde…...
OpenCV 模板匹配
模板匹配算法是一种在目标图像中寻找与模板图像相似区域的方法,模板匹配就是拿一个模板图片在一张比模板图像要大的搜索图像上寻找与模板图像相似的区域,以此来得到目标在搜索图像上的位置,其核心是将模板图像在待搜索图像上从左到右、从上到下依次逐像素平移滑动,每次滑动…...
Vue 3 30天精进之旅:Day 25 - PWA支持
一、引言 在前面的24天中,我们已经深入探讨了Vue 3的许多核心概念和高级特性。今天,我们将进入一个全新的领域——PWA(Progressive Web App)。PWA是一种现代Web应用程序的开发模式,它结合了Web和原生应用的优点&#…...
arm linux下的中断处理过程。
本文基于ast2600 soc来阐述,内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)…...
Linux上Elasticsearch 集群部署指南
Es 集群部署 Es 集群部署 Es 集群部署 准备好三台服务器。示例使用:110.0.5.141/142/143 1、es用户和用户组创建,使用root账号 groupadd esuseradd -g es es2、将es安装包和ik分词器上传到:/home/es/目录下(任意目录都行&#…...
SpringBoot+shardingsphere实现按月分表功能
SpringBootshardingsphere实现按月分表功能 文章目录 前言 ShardingSphere 是一套开源的分布式数据库中间件解决方案,旨在简化数据库分片、读写分离、分布式事务等复杂场景的管理。它由 Apache 软件基金会支持,广泛应用于需要处理大规模数据的系统中 一…...
如何设置 Nginx 连接超时并进行测试(Nginx优化)
🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年2月15日14点22分 在高并发场景下,如…...
Python实现AWS Fargate自动化部署系统
一、背景介绍 在现代云原生应用开发中,自动化部署是提高开发效率和保证部署质量的关键。AWS Fargate作为一项无服务器计算引擎,可以让我们专注于应用程序开发而无需管理底层基础设施。本文将详细介绍如何使用Python实现AWS Fargate的完整自动化部署流程。 © ivwdcwso (ID…...
ubuntu20.04声音设置
step1:打开pavucontrol,设置Configuration和Output Devices, 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有,就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable),…...
AWS Database Migration Service
AWS Database Migration Service (DMS) 是亚马逊 Web 服务(AWS)提供的一项服务,旨在帮助用户将数据库迁移到 AWS 云环境中。无论是将现有的数据库迁移到 Amazon RDS(关系型数据库服务)、Amazon Aurora、Amazon Redshif…...
ROS学习
1.ROS工作空间 存放项目开发相关文件的文件夹; src:代码空间(Source Space)install:安装空间(Install Space)build:编译空间(Build Space)log:日志空间(Log Space) 2.c…...
【NLP 24、模型训练方式】
你的痛苦,我都心疼,想为你解决 —— 25.2.15 一、按学习范式分类 1. 监督学习(Supervised Learning) 核心思想:使用带有标签(已知输入-输出对)的数据训练模型。 常见任务:分类&…...
【算法】【区间和】acwing算法基础 802. 区间和 【有点复杂,但思路简单】
题目 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] …...
DeepSeek 从入门到精通学习指南,2025清华大学《DeepSeek从入门到精通》正式发布104页pdf版超全解析
DeepSeek 是一款强大的 AI 搜索引擎,广泛应用于企业级数据检索和分析。无论您是初学者还是有经验的用户,掌握 DeepSeek 的使用都能为您的工作带来极大的便利。本文将从入门到精通,详细介绍如何学习和使用 DeepSeek。 链接: https://pan.baid…...
PyQt6/PySide6 的自定义信号实现
一、信号与槽基础概念 核心机制:观察者模式的实现,支持对象间的松耦合通信原生信号:内置控件(如QPushButton)的clicked等预定义信号自定义优势:实现业务逻辑解耦,增强组件复用性 PyQt6/PySide…...
什么是FCC认证
联邦通信委员会(FCC)认证是美国一种强制性的认证,确保电子设备在上市前符合特定标准。 联邦通讯委员会(FCC)----管理进口和使用无线电频率装置,包括电脑、传真机、电子装置、无线电接收和传输设备、无线电…...
共享设备管理难?MDM助力Kiosk模式一键部署
目录 1. 简化设备部署与配置:实现一键式部署 2. 自动化应用更新与内容推送:确保设备始终保持最新状态 3. 权限控制与设备安全:防止滥用与数据泄露 4. 远程管理与故障诊断:保障设备长期稳定运行 5. 数据分析与报告:…...
RAMinit 程序编译运行考古记录
本科的时候浅浅研究了DOSBox,今天看到网上挺多关于雷军代码的新闻,我把雷军代码在web上编译出来了,但是我是业余选手,所以做得比较差,不过大家感兴趣可以关注我的dosplay项目,旨在利用js-dos实现汇编语言在…...
今日AI和商界事件(2025-02-15)
根据2025年2月15日的科技动态,以下是今日AI领域的重要事件及相关进展总结: 1. DeepSeek日活突破3000万,开源生态加速AI普惠 里程碑意义:开源大模型DeepSeek宣布日活跃用户数突破3000万,其R1模型凭借开源策略和低成本优…...
鸿蒙开发:熟知@BuilderParam装饰器
前言 本文代码案例基于Api13。 在实际的开发中,我们经常会遇到自定义组件的情况,比如通用的列表组件,选项卡组件等等,由于使用方的样式不一,子组件是动态变化的,针对这一情况,就不得不让使用方把…...
基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真。可以设置多个不同的中心点。 2.测试软件版本以及运行结果展示 matlab2022a/matlab2024b版…...
word文档提取信息
目录 一、说明二、Aspose-words方式2.1、Aspose-words介绍2.2、Aspose-words使用说明2.3、Aspose-words解析核心代码一、说明 项目中遇到这样的一个需求问题:“一个docx文档,用户根据关键词能搜索定位到文档的哪一页”。docx文档主要有文本、表格、图片、附件这几类组合,为…...
单、双 链 表
数组模拟链表 ①单链表:邻接表{储存图和树} ②双链表:优化某些问题 单链表 // head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx 存储当前已经用到了哪个点 e[i]和ne[i]用下标关联起来ÿ…...
SpringBoot整合easy-es
一、easy-es简介 EasyES是一款基于Elasticsearch官方提供的RestHighLevelClient开发的ORM框架,旨在简化开发流程并提高效率。 EasyES在保持RestHighLevelClient原有功能的基础上进行增强,而不做任何改变。它采用与Mybatis-Plus相似的语法,使得…...
2025年2月15日(ipython 换行-deepseek)
好的,用户现在想知道在IPython中如何换行而不运行代码。之前他们问过关于树莓派安装matplotlib的问题,现在转向IPython的使用,可能他们正在学习Python,并且可能在使用树莓派进行项目开发。需要确定用户的使用场景,可能…...
MyBatis:动态SQL高级标签使用方法指南
一、引言 目前互联网大厂在搭建后端Java服务时,常使用Springboot搭配Mybatis/Mybatis-plus的框架。Mybatis/Mybatis-plus之所以能成为当前国内主流的持久层框架,与其本身的优点有关:支持定制动态 SQL、存储过程及高级映射,简化数…...
Python常见面试题的详解5
1. re 模块中 search () 和 match () 的区别 要点:在 Python 的 re 模块中,re.match() 和 re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:re.match():从字符串的开头开始匹配正则…...
python包的管理
管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。 python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所…...
性能测试流程、主流性能工具
性能测试流程 性能测试流程 测试测试需求分析 性能测试计划和方案 测什么: 测试背景 测试目的 测试范围 谁来测: 进度和分工 交付清单 怎么测: 测试策略 性能测试用例设计 性能测试测试执行 性能分析和调优 性能测试报告 测试报告是…...