清华大学开源项目突破大模型算力瓶颈:RTX 4090 单卡实现 DeepSeek-R1 满血运行

xxn 阅读:16896 2025-02-15 20:01:55 评论:0
特别感谢 IT之家网友 小星_14地板轰鸣 以及 有鲫雪狐 提供的线索!

IT之家 2 月 15 日报道,当前用户主要通过云服务和“本地部署”来使用 DeepSeek-R1,然而其官网服务器频繁宕机,而个人部署的版本参数数量减少了 90%。普通用户想在标准硬件上运行 DeepSeek-R1 完整版本面临许多困难,而租用服务器的费用即使对开发者来说也是一笔不小的压力。

清华大学的 KVCache.AI 团队与趋境科技联手推出的开源项目 KTransformers(也称作 Quick Transformers)本周发布了重要更新,该研究已经成功解决了千亿级大模型的本地部署难题,这一突破标志着大模型推理从“云端垄断”向“普惠化”迈出了重要一步。

如图所示,KTransformers 团队于 2 月 10 日在配置了 24 GB 显存和 382 GB 内存的 PC 上成功实现了 DeepSeek-R1、V3 的 671B 完整版本的本地运行,速度提升达到 3~28 倍。

今天,KTransformers 宣布支持更长上下文(单显卡 24GB 可支持 4~8K),并实现了 15% 的加速(每秒可处理最多 16 个 Tokens)。

根据官方资料,KTransformers 是一个灵活的、以 Python 为主的框架,设计核心强调可扩展性,透过简单的代码一行即可应用优化模块,用户可享用兼容 Transformers 的界面,符合 OpenAI 和 Ollama 标准的 RESTful API,甚至还有类似 ChatGPT 的简化网页界面。

这一技术首次支持在单张 24GB 显存的消费级显卡(如 RTX 4090D)上运行 DeepSeek-R1 / V3 的 671B 完整版,预处理速度最高可达 286 tokens/s,推理生成速度有 14 tokens/s,打破了 AI 大模型对昂贵云服务器的依赖。

DeepSeek-R1 基于混合专家(MoE)架构,核心理念是将任务分配给不同专家模块,推理时仅激活部分参数。团队创新性地将非共享稀疏矩阵的处理转移至 CPU 内存,并通过高速算子优化,将显存需求从传统的 320GB A100 降低至单显卡的 24GB。

借凭 KTransformers,普通用户即可仅用 24G 显存在本地运行 DeepSeek-R1、V3 的 671B 完整版。预处理速度最高能达到 286 tokens/s,推理生成速度可达 14 tokens/s

针对 MoE 架构的特点,KTransformers 团队通过 Marlin GPU 算子实现量化矩阵的计算,效率提升了 3.87倍;加上 CPU 端的突破,采用 llamafile 实现多线程并行,并结合英特尔 AMX 指令集优化,使得 CPU 预填充速度较 llama.cpp 提升了 28 倍,长序列任务的响应时间从几分钟缩短到几秒。

此外,通过减少 CPU 与 GPU 的通讯瓶颈,实现单次解码仅需完整的一次 CUDA Graph 调用,使生成速度优化至 14 tokens/s,功耗仅为 80W,整体成本大约 2 万元,大大低于传统 8 卡 A100 方案的 2%。

经过开发者实测,结合 RTX 3090 显卡和 200GB 内存配置,以及 Unsloth 优化,Q2_K_XL 模型的推理速度达到了 9.1 tokens/s,真正实现了千亿级模型的“家庭化”运行。

需要指出的是,KTransformers 并不仅是一个推理框架,同时也能够兼容各种 MoE 模型和算子,支持多种算子组合的测试,并提供 Windows 和 Linux 平台的支持,感兴趣的用户可以尝试。

当然,要顺利运行 KTransformers,有些硬件条件是不可或缺的,不仅仅是拥有一张 RTX 4090 即可流畅运行。必须满足以下条件:

  • CPU:Intel Xeon Gold 6454S 1T DRAM(2 个 NUMA 节点)

  • GPU:RTX 4090D(24G VRAM)

  • 内存:标准 DDR5-4800 服务器 DRAM(1 TB)

  • CUDA 12.1 或更高版本

RTX 4090D + 双路 Xeon Gold 的实测数据:

任务类型

KTrans V0.3 (6 位专家)

KTrans V0.2 (8 位专家)

llama.cpp (FP16)

8K 上下文预填充

207.20 tokens/s

195.62 tokens/s

7.43 tokens/s

短文本解码

13.69 tokens/s

8.73 tokens/s

4.51 tokens/s

长序列吞吐量

19.8GB / 秒

15.2GB / 秒

4.8GB / 秒

对于 Linux-x86_64 系统,您需要安装 gcc、g++ 和 cmake,可使用以下命令:

sudo apt-get updatesudo apt-get install gcc g++ cmake ninja-build

强烈建议通过 Conda 创建一个包含 Python 3.11 的虚拟环境,您可以使用以下命令进行创建和激活:

conda create --name ktransformers python=3.11conda activate ktransformers # 可能需要运行 ‘conda init’

安装 PyTorch、packaging、ninja、cpufeature 和 numpy:

pip install torch packaging ninja cpufeature numpy

接着安装 KTransformers:

pip install ktransformers --no-build-isolation

快速使用:

python -m ktransformers.local_chat --model_path <your model path> --gguf_path <your gguf path> --prompt_file <your prompt txt file> --cpu_infer 65 --max_new_tokens 1000 <当您看到聊天时,按回车加载文本提示文件>

参数说明:

  • model_path:模型的路径。gguf_path:gguf 文件的路径。

  • prompt_file:包含提示文本的文件的路径。

  • cpu_infer 65:指定用于推理的 CPU 核心数,如果使用双路 CPU,就设为 65。

  • max_new_tokens 1000:设置生成 token 的最大数量。

参考链接

  • GitHub 地址:https://github.com/ kvcache-ai / ktransformers

  • 本地化 671B DeepSeek-Coder-V3 / R1 指南:https://github.com/ kvcache-ai / ktransformers / blob / main / doc / en / DeepseekR1_V3_tutorial.md

广告声明:文中包含的外部链接(如超链接、二维码、口令等形式)旨在提供更多信息以节省时间,结果仅供参考。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容