📚 目录
- 前置说明
- 硬件与系统环境要求
- 准备工作
- 安装依赖
- 部署 KTransformer
- 部署 DeepSeek R1-671B(量化版)
- 适配多GPU并开启满血性能
- 安装并配置 OpenWebUI
- 启动与验证
- 常见问题与优化建议
- 参考资料
🧾 前置说明
本教程旨在帮助你在本地强力机器(如 4090 + 256GB RAM)中部署量化后的 DeepSeek R1-671B 模型,借助 KTransformer 实现推理,并配合 OpenWebUI 提供 Web 界面,支持多GPU并行执行。
模型信息:
- 模型名称:DeepSeek R1-671B
- 量化方式:Q4_K_M / Q5_K_M / Q6_K
- 推理框架:KTransformer(基于 C++ / CUDA)
- 接口层:OpenWebUI(支持自定义后端)
🖥️ 硬件与系统环境要求
项目 | 最低配置 | 推荐配置 |
---|---|---|
操作系统 | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
显卡 | NVIDIA RTX 4090(24G) ×2 | 多卡越多越好 |
内存 | ≥ 128GB(建议 256GB) | 256GB ECC DDR5 |
CPU | Intel Xeon / i9 多核 | 支持 AVX-512 最佳 |
硬盘 | ≥ 1TB NVMe SSD | 2TB+,高速固态 |
驱动 | NVIDIA Driver ≥ 550 | CUDA 12.2 + cuDNN 8.9+ |
⚙️ 准备工作
- 安装系统更新:
sudo apt update && sudo apt upgrade -y
- 安装 NVIDIA 驱动:
sudo ubuntu-drivers autoinstall reboot
- 验证 GPU 驱动加载:
nvidia-smi
🧩 安装依赖
sudo apt install build-essential git cmake libopenblas-dev libomp-dev -y
sudo apt install python3 python3-pip -y
CUDA 与 cuDNN 安装略过,建议用官方 runfile 或 .deb
包完成。
🚀 部署 KTransformer
KTransformer 是一个支持高效多卡部署的大模型推理后端。
1. 克隆项目:
git clone https://github.com/kohya-ss/KTransformer.git
cd KTransformer
2. 编译项目:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
✅ 编译成功后将生成
./ktransformer
可执行文件。
🧠 部署 DeepSeek-R1-671B(量化版)
你可以从 HuggingFace 下载量化后的模型,例如:
- [
deepseek-ai/DeepSeek-VL-7B
] deepseek-ai/deepseek-coder-33b
量化模型支持:
- GGUF 格式(推荐)
- 模型路径建议放入
./models
目录
示例目录结构:
KTransformer/
├── build/
├── models/
│ └── deepseek-r1-671b-q4_k.gguf
🧬 适配多GPU并开启满血性能
KTransformer 默认支持 CUDA + 多GPU,推荐使用如下参数:
./build/ktransformer \
--model ./models/deepseek-r1-671b-q4_k.gguf \
--gpu-split auto \
--threads 16 \
--batch-size 4
参数说明:
参数 | 含义 |
---|---|
--gpu-split | 自动按显存均分模型到多GPU |
--threads | CPU线程数(一般为逻辑核心数) |
--batch-size | 推理时的输入批次,越大性能越强需显存支撑 |
多GPU查看:
nvidia-smi
watch -n 1 nvidia-smi
🌐 安装并配置 OpenWebUI
OpenWebUI 是开源的 Web 前端,可用于对接本地模型。
1. 克隆项目
git clone https://github.com/open-webui/open-webui.git
cd open-webui
2. 安装依赖
npm install
npm run build
前端构建成功后会生成静态资源。
3. 配置本地 LLM 作为后端(例如用 llm_api_proxy
)
你可以启动一个本地 API 接口:
python3 -m llm_api_proxy --port 11434
或者将 KTransformer 封装为一个 HTTP 服务(需自定义 API 层,如用 FastAPI)
✅ 启动与验证
1. 启动推理服务
./build/ktransformer \
--model ./models/deepseek-r1-671b-q4_k.gguf \
--gpu-split auto \
--interactive
或者配合 API 层转发请求给 OpenWebUI。
2. 启动前端界面
npm run dev
# 默认访问地址:http://localhost:3000
确保能通过 Web 界面输入提示词并获取响应。
❗ 常见问题与优化建议
问题 | 解决方法 |
---|---|
CUDA OOM(显存不足) | 降低 batch size / 使用更高量化模型(如 Q5 或 Q6) |
模型启动缓慢 | 使用 --gpu-split auto 并提前热启动 |
卡顿或响应慢 | 启用 KV Cache / 设置 --threads 与 --stream 模式 |
CPU 占用过高 | 合理设置 --threads ,避免线程数大于物理核数 |
OpenWebUI 无法对接 | 检查 API 端口是否暴露、接口返回是否规范(Chat格式) |
📚 参考资料
如果你希望我帮你封装 FastAPI + KTransformer
的 HTTP API 接口,让它可直接接入 OpenWebUI,也可以继续告诉我,我来一步步写接口与结构代码。是否继续?
发表回复