DeepSeek 优化方式


这是系列博客,记录了我学习DeepSeek V3/R1时的学习笔记。其他博客:

  1. DeepSeek 简介
  2. DeepSeek R1原理
  3. DeepSeek V3原理
  4. DeepSeek 优化方式
  5. 在Deepseek-R1-ZERO出现前,为何无人尝试放弃微调对齐,通过强化学习生成思考链推理模型?
  6. MoE硬件部署

DeepSeek 优化方式

参考资料:4090单卡跑满血版DeepSeek-R1,清华团队开源项目再破模型推理门槛

MoE架构的稀疏性

DeepSeek-R1/V3均采用了MoE(混合专家)架构,这种架构的核心是将模型中的任务分配给不同的专家模块,每个专家模块专注于处理特定类型的任务。MoE结构的模型具有很强的稀疏性,在执行推理任务的时候,每次只会激活其中一部分的模型参数。

在这里插入图片描述

因此,MoE架构需要大量的存储空间,但是并不需要很多的计算资源。

基于此,团队采用了GPU/CPU的异构计算划分策略:仅将非Shared部分的稀疏MoE矩阵放在CPU/DRAM上并使用llamafile提供的高速算子处理,剩余稠密部分放在GPU上使用Marlin算子处理。

  1. 矩阵部分划分

非 Shared 部分的稀疏 MoE 矩阵:稀疏矩阵是指矩阵中大部分元素为零的矩阵。在 MoE 模型的语境下,非 Shared 部分可能是指那些特定于某些 “专家”(expert)或者计算分支,不被其他部分共享的数据。这部分矩阵的特点是稀疏,即大部分元素为零,在存储和计算上有独特的优化需求。

剩余稠密部分:与稀疏矩阵相对,稠密矩阵指矩阵中大部分元素不为零。在整个稀疏 MoE 矩阵中,除了上述非 Shared 部分的稀疏矩阵外,剩下的就是稠密部分。

  1. 计算资源分配

CPU/DRAM 处理非 Shared 稀疏部分:CPU(中央处理器)和 DRAM(动态随机存取存储器)通常具有较高的通用性和相对较大的内存容量,适合处理稀疏矩阵这类不规则数据结构。因为处理稀疏矩阵时,需要频繁地进行随机访问和逻辑判断,CPU 在这方面具有优势。同时,llamafile 提供的高速算子专门用于处理这种稀疏矩阵,能够提高在 CPU/DRAM 上的处理效率。

GPU 处理稠密部分:GPU(图形处理器)擅长处理高度并行的计算任务,对于稠密矩阵的乘法、加法等运算,GPU 能够利用其大量的计算核心进行并行计算,从而快速完成计算。Marlin 算子是专门针对 GPU 上稠密矩阵处理进行优化的算子,能够更好地发挥 GPU 的性能。

在这样的情况下,同样使用4bit量化,GPU上的参数只需要24GB的显存环境,这样的消耗只需要一张4090就能满足。

此外通过这样的组合,还能够大幅度提升整个推理的性能,达到286 token/s的预填充和14 token/s的生成速度,比llama.cpp快28倍。

技术实现

具体到技术实现中,团队采用了基于计算强度的offload策略、高性能的CPU和GPU算子、CUDA Graph加速的多种方式来加速推理速度。

基于计算强度的offload策略

在这里插入图片描述

  1. 基于计算强度的offload策略

    offload策略指的是将计算任务从一个计算资源转移到另一个计算资源的策略,通常是从计算能力较弱的资源转移到较强的资源,或者从当前资源转移到其他更适合处理该任务的资源。基于计算强度的offload策略就是根据任务的计算强度(即单位时间内执行的计算操作数量)来决定如何分配计算任务。计算强度高的任务优先分配到计算能力强的设备(如GPU)上执行,以充分利用设备的性能,提高整体计算效率。

  2. Attention

    Attention:在深度学习中,Attention机制(注意力机制)是一种让模型能够聚焦于输入数据不同部分的技术,它可以帮助模型在处理序列数据(如文本、语音)时,动态地分配对不同位置元素的关注度,从而更好地捕捉数据中的重要信息。例如在机器翻译中,Attention机制可以让模型在翻译一个单词时,关注原文中与之相关的部分,而不是同等对待所有单词。

  3. MLA在官方开源v2版本中的问题

    在官方开源的v2版本中,将MLA展开成MHA(Multi - Head Attention,多头注意力机制,是Attention机制的一种扩展,通过多个头并行计算注意力,然后将结果拼接起来,以捕捉更丰富的信息)进行计算。这个过程带来了两个负面结果:一是扩大了KV cache大小,KV cache是在计算Attention过程中用于存储键值对的数据缓存区,扩大它会占用更多的内存资源;二是降低了推理性能,推理性能指模型在对新数据进行预测时的速度和准确性,这里由于计算方式的改变导致速度变慢。

  4. KTransformers推理框架中的优化

    为了发挥MLA的真正性能,在KTransformers推理框架中,团队将矩阵直接吸收到q_proj(query投影,在Attention计算中,将输入数据投影到query空间的操作)和out_proj(output投影,将Attention计算后的结果投影到输出空间的操作)权重中。这样做的好处是压缩表示不需要解压缩来计算Attention,从而显著减少了KV缓存大小,并增加了该运算符的算术强度(单位时间内执行的算术运算数量)。算术强度的增加意味着在相同时间内可以执行更多的计算操作,进而优化了GPU计算能力的利用率。

  5. 计算强度与划分策略

    由于MLA和Expert的计算强度相差数千倍,团队依据计算强度来决定划分策略。按照计算强度从高到低的顺序为MLA > Shared Expert > Routed Expert,优先将计算强度高的任务放入GPU,直到GPU的计算资源放不下为止。这样可以确保GPU始终在处理最能发挥其性能的高计算强度任务,提高整体计算效率。

引入CPU和GPU的高性能算子

在CPU算子中,团队使用llamafile作为CPU内核,使用expert并行和其他优化,组成高性能算子框架CPUInfer。此外增加多线程、任务调度、负载均衡、NUMA感知等优化。

在GPU算子的使用上,团队引入Marlin算子作为GPU计算的内核,它能够非常高效地进行量化后的矩阵计算,和torch这些计算量化后的矩阵乘法的库相比,使用Marlin算子完成在GPU上面的计算大概可以达到3.87倍的理想加速效果。

CUDA Graph的改进和优化

为了平衡推理性能和框架本身的易用性/可扩展性,基于Python构建KTransformers框架,同时使用CUDA Graph降低Python调用开销是一个必然的选择。

KTransformers中使用CUDA Graph过程中尽可能地减少了CPU/GPU通讯造成的断点,在CUDA Graph中掺杂和CPU异构算子通讯,最终实现一次decode仅有一个完整的CUDA Graph调用的结果。

灵活高效的推理实验平台

值得关注的是,KTransformers不止是一个固定的推理框架,也不只能推理DeepSeek的模型,它可以兼容各式各样的MoE模型和算子,能够集成各种各样的算子,做各种组合的测试。

此外还同时提供了Windows、Linux的平台的支持,方便运行。

GitHub 地址:https://github.com/kvcache-ai/ktransformers
具体技术细节指路:https://zhuanlan.zhihu.com/p/714877271

一、用户管理模块 身份认证 支持学生通过学号 + 密码(或统一身份认证系统)登录,管理员通过专属账号登录 实现密码加密存储、登录状态管理及自动登出功能 支持身份信息绑定(姓名、学院、联系方式等),确保预约身份唯一 权限管理 学生:仅可预约、取消座位及查看个人记录 管理员:拥有座位管理、用户管理、数据统计等全部权限 教师(可选):可申请专属座位或临时占用权限 二、自习室与座位管理模块 自习室基础信息管理 维护校内所有自习室信息:编号、名称、位置(教学楼 + 楼层)、总座位数、开放时间(工作日 / 周末差异化设置)、是否配备电源 / 空调等设施 支持自习室状态设置(正常开放 / 临时关闭 / 维护中),并同步展示给学生 座位信息管理 座位数字化建模:按自习室实际布局生成座位分布图(可可视化展示,如靠窗 / 靠过道、单座 / 连座等) 座位状态实时更新:空闲、已预约、已占用、故障(如桌椅损坏) 支持管理员标记故障座位并暂停预约,修复后恢复可用 三、预约与使用模块 座位预约 预约规则设置:可预约时段(如当天及次日,最多提前 3 天)、单次最长预约时长(如 4 小时)、每日预约次数限制 多方式预约:通过自习室列表选择、座位分布图直接点击选择、筛选条件(如带电源、靠窗)快速查找 预约确认:提交预约后生成唯一预约码(或二维码),同步发送短信 / 系统消息提醒 签到与签退 签到:学生到达后通过扫码(座位二维码)或输入预约码签到,超时未签到(如 15 分钟)自动释放座位 签退:结束使用后主动签退,系统记录实际使用时长;未主动签退则按预约结束时间自动签退 临时调整功能 续时:若座位后续无人预约,支持在结束前 30 分钟申请续时(最多 1 次,不超过场馆关闭时间) 取消预约:预约未开始前可取消,临近预约时间(如 30 分钟内)取消需限制次数(避免恶意占用)
### 使用DeepSeek优化PowerPoint演示的最佳实践和技巧 #### 安装与配置环境 为了利用 DeepSeek Janus 系列来增强 PowerPoint 演示效果,首先需确保已成功安装并配置好所需软件环境。这包括但不限于 Python 开发环境以及必要的依赖包[^1]。 #### 数据准备 收集高质量图片素材作为训练集的一部分对于提升模型表现至关重要。这些数据可以来源于公开图库或是企业内部积累的视觉资源集合。通过标注工具标记重要特征点有助于提高识别精度。 #### 图像理解应用案例 借助于 DeepSeek 提供的强大图像处理能力,在创建幻灯片时能够自动分析上传的照片内容,并据此推荐最合适的布局方案;还可以实现智能裁剪功能,使得每一页都呈现出最佳视角下的精彩瞬间。 #### 自动化设计建议 基于对输入材料的理解,该技术可进一步提供关于色彩搭配、字体选择等方面的专业意见,帮助用户快速构建美观大方又不失个性化的演示文档。此外,针对特定行业领域定制专属风格模板也是可行的方向之一。 #### 实时交互体验改进 当演讲者站在讲台前操作 PPT 时,集成有手势控制模块的系统允许其仅靠简单动作就能完成页面切换等常规任务,极大提升了现场互动性和流畅度。同时,语音指令解析同样不可或缺——让口头表达成为驱动演示进程的新方式。 ```python from transformers import pipeline, set_seed set_seed(42) # 初始化图像分类器实例 image_classifier = pipeline('image-classification', model='nvidia/deepseek-janus') def analyze_image(image_path): predictions = image_classifier(image_path) return predictions ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值