写在前面

本文记录了我使用colibri(JustVugg/colibri)运行完整DeepSeek V4 Flash 0731模型的尝试。跑确实是能跑起来,但是效率非常非常低,测试下来输出速度只有约0.9tok/s。当作玩具是完全够用了,但是把它作为生产力工具的话还是差得太远了。

但是有一说一,这个结果也属实是远超我的预期了。

使用配置

这个方案对CPU和GPU的要求不高(甚至完全用不到GPU),瓶颈主要在内存容量和SSD读取速度上。

我的配置是:

CPU:Intel Core Ultra 7 251HX

RAM:48GB DDR5 5600MHz

SSD:NVMe TiPlus5000 2TB

OS:Windows 11

下载模型

DeepSeek V4 Flash 0731完整模型大小有足足155GB,下载下来需要费一点功夫。

众所周知,国内直连HuggingFace的速度感人。我知道的有两种加速下载的方法:

1.使用hf-mirror.com

hf-mirror是一个HuggingFace镜像,可以用来加快模型的下载速度。但是不是很稳定,效果时好时坏。

pip install -U huggingface_hub
$env:HF_ENDPOINT = "https://hf-mirror.com"
hf download deepseek-ai/DeepSeek-V4-Flash-0731 --local-dir D:\deepseek\

2.使用modelscope

modelscope是阿里云提供的模型库,下载速度稳定,但是阿里系的东西指不准哪天就给你出点幺蛾子。

pip install modelscope
modelscope download --model deepseek-ai/DeepSeek-V4-Flash-0731 --local-dir D:\deepseek\

下载完成后就可以进行下一步了。

安装MSYS2

在Windows环境下,colibri需要在MSYS环境中编译并运行。

这一部分参考MSYS2安装就行了,这里不做过多赘述。安装完成后,打开MSYS2 MSYS终端,下面的所有操作均在MSYS2终端中进行。

编译colibri

首先安装git,python以及编译工具:

pacman -S git
pacman -S python
pacman -S msys/gcc
pacman -S msys/make
pacman-key --init
pacman -Syu
pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-toolchain

如果下载速度过慢,可参考MSYS2 - USTC Mirror Help配置国内源。

接着把colibri仓库克隆到本地并进行编译:

git clone https://github.com/JustVugg/colibri
cd colibri
make -C c deepseek-v4

根据官方文档来看是可以直接编译成功的,但是我遇到了如下报错:

deepseek_v4.c: In function 'v4_serve_rss_gb':
deepseek_v4.c:8279:19: error: storage size of 'usage' isn't known
 8279 |     struct rusage usage;
      |                   ^~~~~
deepseek_v4.c:8280:9: error: implicit declaration of function 'getrusage' [-Wimplicit-function-declaration]
 8280 |     if (getrusage(RUSAGE_SELF, &usage)) return 0.0;
      |         ^~~~~~~~~
deepseek_v4.c:8280:19: error: 'RUSAGE_SELF' undeclared (first use in this function)
 8280 |     if (getrusage(RUSAGE_SELF, &usage)) return 0.0;
      |                   ^~~~~~~~~~~
deepseek_v4.c:8280:19: note: each undeclared identifier is reported only once for each function it appears in
deepseek_v4.c:8279:19: warning: unused variable 'usage' [-Wunused-variable]
 8279 |     struct rusage usage;
      |                   ^~~~~
make[1]: *** [Makefile.deepseek-v4:72: COLI_V4_UNIT_GENERATE_STATS.o] Error 1
make[1]: Leaving directory '/d/colibri/colibri/c'
make: *** [Makefile:485: deepseek-v4] Error 2

最终的解决方法是在deepseek_v4.c中约6650行位置的

#ifdef COLI_V4_UNIT_GENERATE_STATS

的下面一行加上

#include <sys/resource.h>

之后重新编译,应该就没有问题了。

如果没有报错,生成了deepseek_v4.exe,那么这一步就顺利完成了。

运行colibri

参考colibri/docs/deepseek-v4.zh-CN.md at main · JustVugg/colibri

使用(--ram 32指定使用32GB内存,可根据硬件情况自行调整)

python ./coli chat --model d:/deepseek --ram 32

来进入交互式界面,而若要使用webui则需先在MSYS环境中安装nodejs:

从nodejs官网Node.js — 下载 Node.js®下载.zip文件,解压到喜欢的位置(如D:\nodejs),然后在MSYS2中修改.bashrc:

nano ~/.bashrc
#在文件最底部添加一行export PATH="/d/nodejs:$PATH"
source ~/.bashrc

然后在colibri/web目录中执行

npm install && npm run build
cd ../c
python ./coli web --model d:/deepseek --ram 32

这样就可以开启一个如下图所示的webui:

资源占用

在启用--ram 32参数之后,实际资源占用如下图所示:

内存占用确为32GB,同时colibri会从SSD持续高强度读取数据,长期高强度使用或许会加快SSD的寿命损耗,还是当个玩具玩玩就好。

写在后面

目前来说本地部署这种规模的大模型对于家用设备来说还是过于吃力了,或许现阶段一些小模型会更有优势一些?

我不是这方面的专家,只是在闲暇时间折腾了一下,如果有不准确的地方请见谅。