清华大学开源项目突破大模型算力瓶颈:RTX 4090 单卡实现 DeepSeek-R1 满血运行
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.作者投稿可能会经我们编辑修改或补充。