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

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

ruisui883个月前 (02-16)技术分析22

在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大模型!” 的相关文章

7种超轻量级的Linux发行版,能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统,而且有许多版本可以选择。有时候,你需要一种超轻量级的Linux发行版,它可以在资源有限的设备上运行,并且能够快速启动。本文将介绍7种超轻量级的Linux发行版,希望能够帮助你找到适合自己的操作系统。1. Tiny Core LinuxTiny Core Li...

vue中如何在自定义组件上使用v-model和.sync

自定义事件tips推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到)changeData ×change-data √自定义组件的v-model用法:父组件定义数据源(不需要定义修改数据的方法),在子组件标签上通过v-model="data...

2021最全VUE面试题,奥利给

1. vue-router用过没,哪些常用的钩子函数路由钩子的执行流程,钩子函数种类有:全局守卫、路由守卫、组件守卫。首页可以控制导航跳转, beforeEach , afterEach 等,?般?于页? title 的修改。?些需要登录才能调整??的重定向功能。beforeEach 主要有3个参数...

一起学Vue:路由(vue-router)

前言学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。vue-router是什么路由是什么?大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路...

Vue中的路由配置常用属性

router:路由页面跳转的核心库;引入路由:import VueRouter from 'vue-router'; 注册路由:const router = new VueRouter({ })mode:模式路由有hash history两种模式:hash模式URL中包含#,#后边是...

深入理解vue-router原理

说到vue-router就表明他只适合于vue和vue是强绑定的关系;不适合其他框架;现在我们模仿实现一个VueRouter;1.要使页面刷新;借助vue本身的响应式原理;import Home from "./views/Home"; import About from "...