当前位置:首页 > 技术分析 > 正文内容

突破大模型推理极限:1张4090跑满血671B的DeepSeek-V3/R1大模型!

ruisui884个月前 (02-16)技术分析29

在AI大模型推理领域,硬件资源往往是限制性能的关键因素。KVCache.AI团队近日宣布了一项令人瞩目的技术突破:他们成功在仅24GB显存的单GPU(4090D)环境下运行了DeepSeek-V3/R1(671B参数量)模型,并通过创新优化实现了最高28倍的速度提升!这一成果不仅颠覆了传统大模型对硬件资源的高需求,还为本地化AI推理提供了全新的可能性。接下来,让我们深入了解这项技术背后的秘密及其带来的革命性影响。

GitHub:https://github.com/kvcache-ai/ktransformers

发布博客:
https://github.com/kvcache-ai/ktransformers/blob/main/doc/en/DeepseekR1_V3_tutorial.md

2025年2月10日,KTransformers团队(之前以本地CPU/GPU混合推理开源项目DeepSeek-V2而闻名)发布了一项新的技术成果,宣布支持DeepSeek-R1/V3模型,并展示了其在本地运行时的卓越性能。通过使用仅14GB显存和382GB内存的配置,他们成功运行了DeepSeek-Coder-V3/R1模型的Q4_K_M版本,并实现了高达3~28倍的速度提升。

性能亮点

  • 预填充速度(Prefill Speed, tokens/s):
    • KTransfermor: 单路(32核)为54.21 → 双路(64核)为74.362 → 使用Intel AMX优化的MoE内核(V0.3版)为255.26 → 选择性激活6个专家(V0.3版)为286.55。
    • 相较于llama.cpp在双路配置下的10.31 tokens/s,KTransfermor实现了最高27.79倍的速度提升。
  • 解码速度(Decode Speed, tokens/s):
    • KTransfermor: 单路(32核)为8.73 → 双路(64核)为11.26 → 选择性激活6个专家(V0.3版)为13.69。
    • 相较于llama.cpp在双路配置下的4.51 tokens/s,KTransfermor实现了最高3.03倍的速度提升。

架构核心

KTransformers 的核心是一个用户友好、基于模板的注入框架。它使研究人员能够轻松地将原始的 PyTorch 模块替换为优化后的变体,同时简化了多种优化方法组合使用的流程,从而支持开发者探索不同优化技术之间的协同效应。

鉴于 vLLM 已在大规模部署优化领域表现出色,KTransformers 特别专注于资源受限的本地化部署场景,尤其关注异构计算机会(例如量化模型的 GPU/CPU 协同卸载)。例如,我们分别针对 CPU 和 GPU 提供了高效的 Llamafile 和 Marlin 内核支持。

技术优化

团队通过以下两项关键技术实现了性能飞跃:

  1. Intel AMX指令集加速: 针对Intel CPU的AMX指令集进行了深度优化,使计算效率远超现有的llama.cpp实现。
  2. 专家选择策略: 基于离线分析结果,减少了推理过程中激活的专家数量,从而显著提升了速度,同时保持输出质量不变。

版本对比

  • V0.2版: 支持DeepseekV3-q4km(int4量化),需要至少14GB显存和382GB内存。
  • V0.3-Preview版: 支持DeepseekV3-BF16模型,并通过在线量化适配CPU(int8)和GPU(int4)。预填充速度比V0.2版快3.45倍,比llama.cpp快27.79倍。

建议模型:


如何运行

团队提供了详细的运行指南,包括单路(32核)和双路(64核)配置的命令示例。用户可以通过克隆GitHub仓库并安装依赖来运行模型。需要注意的是,双路配置需要设置USE_NUMA=1环境变量以充分利用NUMA节点的优势。

V0.2 Showcase Single socket version (32 cores)

git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule init
git submodule update
numactl -N 1 -m 1 python ./ktransformers/local_chat.py --model_path  --gguf_path   --prompt_file   --cpu_infer 33 --max_new_tokens 1000


V0.3 Showcase Dual socket version (64 cores)

wget https://github.com/kvcache-ai/ktransformers/releases/download/v0.1.4/ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311-linux_x86_64.whl
pip install ./ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311-linux_x86_64.whl
python -m ktransformers.local_chat --model_path  --gguf_path   --prompt_file   --cpu_infer 65 --max_new_tokens 1000

具体参见:
ktransformers/doc/en/DeepseekR1_V3_tutorial.md at main · kvcache-ai/ktransformers

注意事项

  • 内存消耗: 在双路配置下,模型需要644GB内存和至少14GB显存。
  • 参数调整: --cpu_infer参数用于指定使用的CPU核心数,但超过物理核心数并不会带来额外收益。
  • R1模型问题: 如果测试DeepSeek-R1模型时跳过思考阶段,可以添加--force_think true参数强制启用思考。

未来展望

团队计划进一步优化内存占用,并开源基于Intel AMX的加速内核,同时考虑将其贡献给llama.cpp社区。此外,他们还将在后续版本中继续改进专家选择策略和其他性能优化技术。


——完——

@北方的郎 · 专注模型与代码

喜欢的朋友,欢迎赞同、关注、分享三连 ^O^

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1994.html

标签: gitsubmodule
分享给朋友:

“突破大模型推理极限:1张4090跑满血671B的DeepSeek-V3/R1大模型!” 的相关文章

git的几种分支模式

编写代码,是软件开发交付过程的起点,发布上线,是开发工作完成的终点。代码分支模式贯穿了开发、集成和发布的整个过程,是工程师们最亲切的小伙伴。那如何根据自身的业务特点和团队规模来选择适合的分支模式呢?本文分享几种主流 Git 分支模式的流程及特点,并给出选择建议。分支的目的是隔离,但多一个分支也意味着...

GitLab 14.6发布,优化Geo高可用,安全更新等

昨天,GitLab官方按照管理发布了有一个月度版本GitLab 14.6的发布,这也是本年度收官版本。14.6中在安全合规性方面,在Geo方面以及MD代码块一键复制等方便做了优化,另外还在UI图标方面发布了一套全新的图标。详细情况请和虫虫一起学习。GitLab 14.6主要改进使用 Geo 实现无缝...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

VUE 技术栈

官网链接:https://cn.vuejs.org/什么是vue:渐进式JavaScript 框架vue-cli链接:https://cli.vuejs.org/vue-cli安装:npm install -g @vue/clivue -V创建一个项目:vue create xxxxxx模版语法:文...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...

在vue项目中封装WebSockets请求

在Vue项目中封装WebSocket请求包括以下步骤:1. 安装WebSocket库:首先,导入WebSocket库,例如`vue-native-websocket`或`socket.io-client`。根据项目需求选择适当的库,并根据官方文档进行安装和配置。2. 创建WebSocket服务:在V...