最近帮一个朋友部署本地的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 submodule update 主要是为了更新third_party中的项目
如果网络不好,可以直接github中下载这些项目并放到到third_party文件夹中
下载模型
然后下载量化后的deepseek r1模型,这里我下载的是int4量化版本,因为网络问题,使用阿里的魔塔下载模型
--cache_dir /home/user/new/models 是制定模型下载路径的位置
uv安装
uv是一个用Rust语言编写的现代Python包管理工具,被称为"Python的Cargo",它是pip、pip-tools和virtualenv等传统工具的高速替代品。速度比pip更快,而且还支持可编辑安装、git依赖、本地依赖、源代码分发等pip的高级功能。
安装uv工具链
创建虚拟环境
然后我们就可以按照教程中的使用uv工具进行安装。
uv安装预编译版本
flashinfer-python是一个专为大型语言模型(LLM)推理服务设计的高性能GPU加速库。它主要提供以下功能:
这是安装ktransformers库的预编译版本:
这是安装flash_attn库的预编译版本:
这里的预编译版本其实是这个文档的作者直接编译好的,虽然这个教程说明中提到仅适合RTX 3090Ti 24GB显存 + 96GB DDR5-6400内存 + Ryzen 9950X处理器 。
但是我使用4090 24显存 + 500 DDR5-4800内存 ,使用这个预编译版本也可以安装成功的。如果这个预编译版本可以安装成功的话,很多潜在的因为版本不对造成的报错都可以避免掉了。
源码运行ktransformers
如果上面的预编译版本运行不了的话,又不想接着安装ktransfomers,其实也可以直接用源码来跑的,命令如下:
是的,其实即使不编译ktransfomers,也是可以跑起来的。直接把项目下好,运行上面的命令,准备好相应的文件,就能正常运行了。
如果要继续编译ktransfomers的话,则可以按照下面的流程进行操作:
如果想自己编译好后供其他环境使用的,则可以使用下面的命令进行环境编译。
然后把生成的文件移动到其他环境安装则输入下面命令即可
ktransformers运行
接口运行命令
如果想运行网页版本,则再最后增加 --web True参数即可。
其他问题
如果使用了不支持amx的cpu, 可能会遇到下面的报错
这是因为CPU架构不支持这些指令:编译时使用了-march=native参数,这会让编译器生成针对当前CPU优化的代码,包括使用特定的指令集。但如果当前CPU不支持AVX-VNNI指令集,就会出现这个错误。
解决方案:在CMake配置中添加以下选项:
就可以让cpu不使用amx指令集,从而避免这个报错了。
另外,如果需要我环境的requirements.txt, 可以在后台回复330获取。
写在最后
2025年的今天,AI创新已经喷井,几乎每天都有新的技术出现。作为亲历三次AI浪潮的技术人,我坚信AI不是替代人类,而是让我们从重复工作中解放出来,专注于更有创造性的事情,关注我们公众号口袋大数据,一起探索大模型落地的无限可能!