支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


仅需10万不到,DeepSeek R1 671B大模型本地部署实战指南

发布日期:2025-04-09 05:32:39 浏览次数: 1626 作者:口袋大数据
推荐语

低成本本地部署DeepSeek R1 671B大模型的详细实战指南。

核心内容:
1. 选择合适服务器配置实现低成本部署
2. 使用Ktransformers框架进行高效部署
3. 详细安装步骤及环境配置要求

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
最近帮一个朋友部署本地的671b版本的deepseek r1,需求是要完全本地部署,但是又不想花太高的成本,没有并发要求,我一想,用ktransformers框架来部署完全合适。
关于机器配置,在挑挑拣拣评比之后,设备选择如下,最终选择的是其中的服务器配置。
这套设备下来总成本不到10万,相比如动辄几百万的满血版deepseek R1或者花个五六十万买个deepseek 70b的一体机要值当的多,且不说70b并不是真正的deepseek r1,效果还不如32b的QWQ,就光说一体机的升级也是个麻烦事,买了机器基本就和模型绑定了,以后新模型出来后想升级就难了。
说起这个,我上个月去给政府某部门培训大模型时,还听到一个八卦,说有个公司,花了几百万让某个大厂私有化部署了一套定制的模型,但是deepseek r1出来后,直接弃用了,又去买了一套deepseek一体机。
而且这些公司买了一体机后,也还是不知道怎么用,就是搞个接口和页面,让员工来问下问题,就没了其他用途了。只能说,公司是真有钱。
基础配置
先说结论,使用Ktransformers框架,在上述图片的服务器配置上,速度能达到5token/s, 考虑到Ktransformers目前还并不支持并发,本地私有化部署给少数人使用,这个速度还是勉强可以接受。
ktransformers官网文档的安装方式我之前已经写过一篇文章,ktransformers部署详细笔记。此处不再赘述。
这里我介绍一个这次我安装时发现的一个新的教程 r1-ktransformers-guide,提供了基于uv的预编译的环境,可以避免很多环境的依赖的报错。
同时要注意ubuntu版本要使用ubuntu22及以上,python版本为3.11。
NVIDIA驱动版本570.86.1x , CUDA版本12.8
然后Ktransfomers要使用0.2.2版本,目前最新版本0.3还存在很多的bug
git clone https://github.com/kvcache-ai/ktransformers.gitcd ktransformers git submodule init git submodule update git checkout 7a19f3b git rev-parse --short HEAD #应显示 7a19f3b

注意的是,git submodule update 主要是为了更新third_party中的项目
如果网络不好,可以直接github中下载这些项目并放到到third_party文件夹中 
[submodule "third_party/llama.cpp"]        path = third_party/llama.cpp        url = https://github.com/ggerganov/llama.cpp.git[submodule "third_party/pybind11"]        path = third_party/pybind11        url = https://github.com/pybind/pybind11.git


下载模型

然后下载量化后的deepseek r1模型,这里我下载的是int4量化版本,因为网络问题,使用阿里的魔塔下载模型
modelscope download unsloth/DeepSeek-R1-GGUF --include "DeepSeek-R1-Q4_K_M/*" --cache_dir /home/user/new/models
--cache_dir /home/user/new/models   是制定模型下载路径的位置


uv安装

uv是一个用Rust语言编写的现代Python包管理工具,被称为"Python的Cargo",它是pip、pip-tools和virtualenv等传统工具的高速替代品。速度比pip更快,而且还支持可编辑安装、git依赖、本地依赖、源代码分发等pip的高级功能。

安装uv工具链
curl -LsSf https://astral.sh/uv/install.sh | sh

创建虚拟环境
uv venv ./venv --python 3.11 --python-preference=only-managedsource  venv/bin/activate

然后我们就可以按照教程中的使用uv工具进行安装。


uv安装预编译版本
flashinfer-python是一个专为大型语言模型(LLM)推理服务设计的高性能GPU加速库。它主要提供以下功能
 $ uv pip install flashinfer-python
这是安装ktransformers库的预编译版本
$ export TORCH_CUDA_ARCH_LIST="8.6"uv pip install https://github.com/ubergarm/ktransformers/releases/download/7a19f3b/ktransformers-0.2.2rc1+cu120torch26fancy.amd.ubergarm.7a19f3b.flashinfer-cp311-cp311-linux_x86_64.whl
这是安装flash_attn库的预编译版本
uv pip install https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.0.5/flash_attn-2.6.3+cu124torch2.6-cp311-cp311-linux_x86_64.whl
这里的预编译版本其实是这个文档的作者直接编译好的,虽然这个教程说明中提到仅适合RTX 3090Ti 24GB显存 + 96GB DDR5-6400内存 + Ryzen 9950X处理器 。
但是我使用4090 24显存 + 500 DDR5-4800内存 ,使用这个预编译版本也可以安装成功的。如果这个预编译版本可以安装成功的话,很多潜在的因为版本不对造成的报错都可以避免掉了。

源码运行ktransformers


如果上面的预编译版本运行不了的话,又不想接着安装ktransfomers,其实也可以直接用源码来跑的,命令如下:


 支持多GPU配置及通过 `--optimize_config_path` 进行更细粒度的显存卸载设置PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python3 ktransformers/server/main.py      --gguf_path /mnt/ai/models/unsloth/DeepSeek-R1-GGUF/DeepSeek-R1-UD-Q2_K_XL/     --model_path deepseek-ai/DeepSeek-R1 --model_name unsloth/DeepSeek-R1-UD-Q2_K_XL --cpu_infer 16 --max_new_tokens 8192 --cache_lens 32768 --total_context 32768--cache_q4 true--temperature 0.6 --top_p 0.95 --optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-R1-Chat.yaml --force_think --use_cuda_graph --host 127.0.0.1 --port 8080
是的,其实即使不编译ktransfomers,也是可以跑起来的。直接把项目下好,运行上面的命令,准备好相应的文件,就能正常运行了。
如果要继续编译ktransfomers的话,则可以按照下面的流程进行操作:
# 安装额外编译依赖项,包括CUDA工具链等,例如:# sudo apt-get install build-essential cmake ...source venv/bin/activateuv pip install -r requirements-local_chat.txtuv pip install setuptools wheel packaging# 建议跳过可选网站应用,使用`open-webui`或`litellm`等替代方案cd ktransformers/website/npm install @vue/clinpm run buildcd ../..# 如果拥有充足的CPU核心和内存资源,可显著提升构建速度# $ export MAX_JOBS=8# $ export CMAKE_BUILD_PARALLEL_LEVEL=8# 安装flash_attnuv pip install flash_attn --no-build-isolation# 可选实验性使用flashinfer替代triton# 除非您是已经成功上手的进阶用户,否则暂不建议使用# 使用以下命令安装:# $ uv pip install flashinfer-python# 仅适用于以下情况:# 配备Intel双路CPU且内存>1TB可容纳两份完整模型内存副本(每路CPU一份副本)# AMD EPYC NPS0双路平台可能无需此配置?# $ export USE_NUMA=1# 安装ktransformersKTRANSFORMERS_FORCE_BUILD=TRUE uv pip install . --no-build-isolation

如果想自己编译好后供其他环境使用的,则可以使用下面的命令进行环境编译。
KTRANSFORMERS_FORCE_BUILD=TRUE uv build

然后把生成的文件移动到其他环境安装则输入下面命令即可
uv pip install ./dist/ktransformers-0.2.2rc1+cu120torch26fancy-cp311-cp311-linux_x86_64.whl

ktransformers运行
接口运行命令
ktransformers --model_path /home/user/new/ktran0.2.2/ktransformers/models/deepseek-ai/DeepSeek-R1  --gguf_path /home/user/new/models/unsloth/DeepSeek-R1-GGUF/DeepSeek-R1-Q4_K_M   --port 8080


如果想运行网页版本,则再最后增加 --web True参数即可。


其他问题

如果使用了不支持amx的cpu, 可能会遇到下面的报错
/tmp/cc8uoJt1.s:23667: Error: no such instruction: `vpdpbusd %ymm3,%ymm15,%ymm1'的报错,File "<string>", line 327, in build_extension     File "/usr/local/python3/lib/python3.11/subprocess.py", line 571, in run       raise CalledProcessError(retcode, process.args,   subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--verbose', '--parallel=128']' returned non-zero exit status 1.   [end of output]


这是因为CPU架构不支持这些指令:编译时使用了-march=native参数,这会让编译器生成针对当前CPU优化的代码,包括使用特定的指令集。但如果当前CPU不支持AVX-VNNI指令集,就会出现这个错误。
解决方案:在CMake配置中添加以下选项:
-DLLAMA_NATIVE=OFF -DLLAMA_AVX=ON -DLLAMA_AVX2=ON -DLLAMA_AVX512=OFF -DLLAMA_AVXVNNI=OFF
就可以让cpu不使用amx指令集,从而避免这个报错了。

另外,如果需要我环境的requirements.txt, 可以在后台回复330获取。

写在最后


2025年的今天,AI创新已经喷井,几乎每天都有新的技术出现。作为亲历三次AI浪潮的技术人,我坚信AI不是替代人类,而是让我们从重复工作中解放出来,专注于更有创造性的事情,关注我们公众号口袋大数据,一起探索大模型落地的无限可能

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询