在人工智能领域,深度学习模型的推理需求日益庞大,尤其是在高参数量的巨型模型如DeepSeek-R1面前,资源的短缺尤为明显。然而,清华大学的KVCache.AI团队联合趋境科技带来了令人振奋的消息:KTransformers开源项目的更新使得在本地仅需24GB显存便可运行满血版的DeepSeek-R1和V3,助力开发者们在不破产的情况下探索更为强大的AI模型。
KTransformers是一个开源的大语言模型推理优化框架,旨在通过GPU/CPU异构计算策略和MoE架构的稀疏性,显著提升大模型的推理速度并降低硬件要求。
核心功能:
- 支持超大模型的本地推理:在仅24GB显存的单张显卡上运行DeepSeek-R1等671B参数的满血版大模型,打破传统硬件限制。
- 提升推理速度:预处理速度最高可达286 tokens/s,推理生成速度达14 tokens/s。
- 兼容多种模型和算子:支持DeepSeek系列及其他MoE架构模型,提供灵活的模板注入框架,支持用户切换量化策略和内核替换,适应不同优化需求。
- 降低硬件门槛:将大模型的显存需求大幅降低,让普通用户和中小团队能在消费级硬件上运行千亿级参数模型,实现“家庭化”部署。
- 支持长序列任务:整合Intel AMX指令集,CPU预填充速度可达286 tokens/s,相比传统方案快28倍,将长序列任务的处理时间从“分钟级”缩短到“秒级”。
KTransformers 是什么

KTransformers 是由清华大学 KVCache.AI 团队联合趋境科技推出的开源项目,旨在优化大语言模型的推理性能,降低硬件门槛。它基于 GPU/CPU 异构计算策略,利用 MoE 架构的稀疏性,支持在仅 24GB 显存的单张显卡上运行 DeepSeek-R1、V3 等 671B 参数的满血版大模型,预处理速度最高可达 286 tokens/s,推理生成速度最高能达到 14 tokens/s。
项目通过基于计算强度的 offload 策略、高性能算子和 CUDA Graph 优化等技术,显著提升了推理速度,使得普通用户和中小团队能够在消费级硬件上运行千亿级参数模型,实现“家庭化”部署。
KTransformers 的主要功能
- 支持超大模型的本地推理:支持在仅 24GB 显存的单张显卡上运行 DeepSeek-R1 等 671B 参数的满血版大模型,打破传统硬件限制。
- 提升推理速度:预处理速度最高可达 286 tokens/s,推理生成速度达 14 tokens/s。
- 兼容多种模型和算子:支持 DeepSeek 系列及其他 MoE 架构模型,提供灵活的模板注入框架,支持用户切换量化策略和内核替换,适应不同优化需求。
- 降低硬件门槛:将大模型的显存需求大幅降低,让普通用户和中小团队能在消费级硬件上运行千亿级参数模型,实现“家庭化”部署。
- 支持长序列任务:整合 Intel AMX 指令集,CPU 预填充速度可达 286 tokens/s,相比传统方案快 28 倍,将长序列任务的处理时间从“分钟级”缩短到“秒级”。
技术原理:
- MoE架构:将稀疏的MoE矩阵卸载到CPU/DRAM上处理,稠密部分保留在GPU上,大幅降低显存需求。
- offload策略:根据计算强度将任务分配到GPU和CPU:计算强度高的任务(如MLA算子)优先分配到GPU,计算强度低的任务分配到CPU。
- 高性能算子优化:
- CPU端:使用llamafile作为CPU内核,结合多线程、任务调度、负载均衡等优化,提升CPU推理效率。
- GPU端:引入Marlin算子,专门优化量化矩阵计算,相比传统库(如Torch)实现3.87倍的加速效果。
- CUDA Graph优化:基于CUDA Graph减少Python调用开销,降低CPU/GPU通信的断点,实现高效的异构计算协同。每次decode仅需一个完整的CUDA Graph调用,显著提升推理性能。
- 量化与存储优化:采用4bit量化技术,进一步压缩模型存储需求,仅需24GB显存即可运行671B参数模型。同时优化KV缓存大小,减少存储开销。
- 模板注入框架:提供基于YAML的模板注入框架,支持用户灵活切换量化策略、内核替换等优化方式,适应不同场景的需求。
KTransformers的成功上线不仅为AI模型的本地运算提供了新的解决方案,也为整个行业的成本优化与技术进步提供了新的视角。
如何运行 KTransformers
准备工作
在开始安装和运行 KTransformers 之前,您需要确保系统满足以下依赖项:
1. 安装 CUDA
确保您的系统安装了 CUDA 12.1 或更高版本。如果没有安装,可以从NVIDIA 官方网站
下载并安装。安装完成后,添加 CUDA 到系统路径:
- NVIDIA 官方网站:https://developer.nvidia.com/cuda-downloads
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_PATH=/usr/local/cuda
2. 安装编译工具
确保您的 Linux 系统安装了 GCC、G++ 和 CMake。可以使用以下命令安装:
sudo apt-get update
sudo apt-get install gcc g++ cmake ninja-build
3. 创建 Python 虚拟环境
推荐使用 Conda 创建一个 Python 3.11 的虚拟环境来运行程序。可以通过以下命令创建并激活环境:
conda create --name ktransformers python=3.11
conda activate ktransformers
如果您是首次使用 Conda,可能需要先运行 conda init
并重新打开终端。
4. 安装依赖库
确保安装了 PyTorch、packaging、ninja 等依赖库:
pip install torch packaging ninja cpufeature numpy
安装 KTransformers
1. 下载源代码并编译
首先,克隆 KTransformers 的 GitHub 仓库并初始化子模块:
git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule init
git submodule update
如果您需要运行带有 Web 界面的版本,请先编译 Web 界面(可选):
# 请参考相关文档进行编译
然后根据您的操作系统选择安装方式:
1.1 Linux 系统
对于普通用户,可以使用简单的安装脚本:
bash install.sh
如果您有双 CPU 和 1TB 内存的服务器,可以启用 NUMA 优化:
export USE_NUMA=1
bash install.sh
1.2 Windows 系统
在 Windows 系统上,使用 install.bat
脚本进行安装:
install.bat
2. 使用 Makefile 编译和格式化代码
如果您是开发者,可以使用 Makefile 来编译和格式化代码。Makefile 的详细用法请参考相关文档
。
本地聊天测试
KTransformers 提供了一个简单的命令行本地聊天脚本,用于测试模型。请注意,这是一个非常简单的测试工具,仅支持一轮对话,不保留历史输入。如果您想体验模型的完整功能,建议使用 RESTful API 和 Web UI。
运行示例
- 下载模型权重:
# 在克隆的仓库根目录下执行以下命令
mkdir DeepSeek-V2-Lite-Chat-GGUF
cd DeepSeek-V2-Lite-Chat-GGUF
wget https://huggingface.co/mzwing/DeepSeek-V2-Lite-Chat-GGUF/resolve/main/DeepSeek-V2-Lite-Chat.Q4_K_M.gguf -O DeepSeek-V2-Lite-Chat.Q4_K_M.gguf
cd ..
- 启动本地聊天:
python -m ktransformers.local_chat --model_path deepseek-ai/DeepSeek-V2-Lite-Chat --gguf_path ./DeepSeek-V2-Lite-Chat-GGUF
如果遇到连接 Hugging Face 的问题,可以尝试以下命令:
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/deepseek-ai/DeepSeek-V2-Lite
python -m ktransformers.local_chat --model_path ./DeepSeek-V2-Lite --gguf_path ./DeepSeek-V2-Lite-Chat-GGUF
支持的模型和量化格式
1. 支持的模型
支持的模型 | 已弃用的模型 |
---|---|
DeepSeek-R1 | |
DeepSeek-V3 | |
DeepSeek-V2 | |
DeepSeek-V2.5 | |
Qwen2-57B | |
DeepSeek-V2-Lite | |
Mixtral-8x7B | |
Mixtral-8x22B |
2. 支持的量化格式
支持的格式 | 已弃用的格式 |
---|---|
Q2_K_L | |
Q2_K_XS | |
Q3_K_M | |
Q4_K_M | |
Q5_K_M | |
Q6_K | |
Q8_0 |
推荐的模型配置
模型名称 | 模型大小 | VRAM | 最低 DRAM | 推荐 DRAM |
---|---|---|---|---|
DeepSeek-R1-q4_k_m | 377G | 14G | 382G | 512G |
DeepSeek-V3-q4_k_m | 377G | 14G | 382G | 512G |
DeepSeek-V2-q4_k_m | 133G | 11G | 136G | 192G |
DeepSeek-V2.5-q4_k_m | 133G | 11G | 136G | 192G |
DeepSeek-V2.5-IQ4_XS | 117G | 10G | 107G | 128G |
Qwen2-57B-A14B-Instruct-q4_k_m | 33G | 8G | 34G | 64G |
DeepSeek-V2-Lite-q4_k_m | 9.7G | 3G | 13G | 16G |
Mixtral-8x7B-q4_k_m | 25G | 1.6G | 51G | 64G |
Mixtral-8x22B-q4_k_m | 80G | 4G | 86.1G | 96G |
InternLM2.5-7B-Chat-1M | 15.5G | 15.5G | 8G (32K 上下文) | 150G (1M 上下文) |
RESTful API 和 Web UI(已弃用)
1. 无 Web 界面启动
ktransformers --model_path deepseek-ai/DeepSeek-V2-Lite-Chat --gguf_path /path/to/DeepSeek-V2-Lite-Chat-GGUF --port 10002
2. 带 Web 界面启动
ktransformers --model_path deepseek-ai/DeepSeek-V2-Lite-Chat --gguf_path /path/to/DeepSeek-V2-Lite-Chat-GGUF --port 10002 --web True
3. 使用 Transformers 启动
如果您想使用 Transformers 启动服务器,model_path
需要包含 .safetensors
文件:
ktransformers --type transformers --model_path /mnt/data/model/Qwen2-0.5B-Instruct --port 10002 --web True
访问 Web 界面的 URL 为:http://localhost:10002/web/index.html#/chat
更多关于 RESTful API 服务器的信息,请参考相关文档
。您还可以参考Tabby 集成示例
。
- 相关文档:
https://github.com/kvcache-ai/ktransformers/doc/en/api/server/server.html
- Tabby 集成示例:
https://github.com/kvcache-ai/ktransformers/doc/en/api/server/tabby.html