1.8 万 Star 的狠项目:一台笔记本,跑起了 7440 亿参数的 GLM-5.2

前几天刷 GitHub Trending,前排冒出来一个眼生的项目:colibri。

仓库 7 月 1 日才建,Star 已经冲到 1.8 万,它就干一件事:GLM-5.2,7440 亿参数的 MoE 模型,在一台 25GB 内存的普通电脑上跑起来,不要 GPU 也行。

虽然听着像吹牛,但是实践证明,先不管跑的性能怎么样,它确实能跑通!

这是个什么项目

colibri 是一个专门跑 MoE 大模型的推理引擎,纯 C 写的,零依赖,Apache 2.0 开源。作者 JustVugg 是个人开发者,项目起步用的机器就是一台 12 核、25GB 内存的笔记本。

GLM-5.2 是智谱(Z.ai)开源的旗舰模型,MIT 协议,744B 参数。MoE 架构有个特点:每生成一个 token,模型只激活约 400 亿参数,占 5.4%,剩下 7000 多亿在那睡觉。而且激活的部分里,相邻两个 token 之间真正换掉的只有 11GB 左右,就是路由器挑中的那批专家。

colibri 赌的就是这一点:模型不用整个塞进内存,放对位置就行。

稠密部分(注意力、共享专家、嵌入层,约 170 亿参数)int4 量化后约 9.9GB,常驻内存。19456 个路由专家放硬盘上,占 370GB 上下,用到谁就从盘里读谁。

它能干什么

硬盘当内存用,还越用越快

专家放硬盘,最怕的就是读取慢拖累生成,colibri 在这上面堆了不少功夫。

每个专家的三组矩阵在盘上挨着存,一次 pread 读完。路由器能提前一层猜到下一层要用哪些专家,实测猜中率 71.6%,引擎趁当前层还在算的时候偷偷预取。它还会把我们常用的专家记进一个学习缓存,每轮对话更新,最热的自动钉在内存里。

手里有第二块 SSD 的话,可以放一份模型镜像上去,两块盘一起读,带宽叠加。官方实测 9GB/s 加 3GB/s 的组合,读专家比单用那块快盘快 33%。镜像盘坏了或者中途拔掉也不崩,自动退回主盘。

命令行、API、网页面板都给了

./coli chat 直接命令行聊天。./coli serve 起一个 OpenAI 兼容的 API,任何支持自定义 OpenAI 端点的客户端都能接。

./coli web 是个网页控制台,实时显示 token 速度、每轮耗时拆解、显存内存硬盘三层占用。里面有两个可视化页面:

  • • Brain:把 19456 个专家画成一张活的"大脑皮层图"。颜色代表存在哪一层,亮度代表路由热度,这轮用到的专家会闪一下白色。
  • • Atlas:把专家按主题聚类成 3D 星系,诗歌、法律、中文、SQL 各自抱团,鼠标拖着能转。

大脑(Brain)页面

大脑(Brain)页面
图谱(Atlas)页面
图谱(Atlas)页面

关机重启,对话还能接着聊

KV 缓存压缩了 57 倍,每个 token 只存 576 个浮点数,原来是 32768 个。压缩完还会写进硬盘。重启机器后打开旧对话,不用重新预填充,接着聊,输出和没重启过一模一样。

投机解码,但有个坑

GLM-5.2 自带 MTP 头,可以先打草稿,主模型一次前向验证 2.2 到 2.8 个 token。

坑在精度上,作者踩过了:MTP 头必须 int8,int4 的草稿接受率会掉到 0 到 4%,等于白开。所以我们下载模型时,要认准带 int8 MTP 头的版本,下文会讲。

从 25GB 笔记本到 6 卡 5090,一套引擎通吃

同一套引擎,同一个 int4 模型文件,硬件只决定专家住哪一层,不决定能不能跑。

官方和社区测出来的数据:

硬件 速度
6× RTX 5090,专家全驻留 5.8 到 6.8 tok/s,首 token 约 13 秒
128GB 内存纯 CPU 台式机 约 1.8 tok/s
单卡 RTX 5070 Ti 约 1.07 tok/s
25GB 开发机 0.05 到 0.1 tok/s

快速开始

我们要准备两样东西:程序几百 KB,模型 372GB。

拿到程序有两条路,省事的路是去 Releases 页下预编译包,Linux、macOS、Windows 都有,解压即用,机器上装好 Python 3 就行,引擎本体是纯 C,Python 只负责启动器和 API 网关。

想自己编译的话,clone 仓库进 c 目录,跑 ./setup.sh,需要 gcc 或 clang 加 OpenMP,脚本会自己检查环境、编译、自测。

git clone https://github.com/JustVugg/colibri && cd colibri/c
./setup.sh

模型在 Hugging Face 上有转好的 int4 版本,约 372GB,地址是 mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp

注意认准名字里带 int8-mtp 的这个,原始镜像的 int4 MTP 头会让投机解码完全失效。也可以自己从 FP8 源转换,./coli convert 一条命令,分片下载分片转,不用一次性腾出 756GB。

模型就位后:

COLI_MODEL=/nvme/glm52_i4 ./coli chat     # 直接开聊,内存预算和缓存自动检测
COLI_MODEL=/nvme/glm52_i4 ./coli plan     # 先看一眼显存/内存/硬盘的放置方案
COLI_MODEL=/nvme/glm52_i4 ./coli doctor   # 跑前体检,只读不改
./coli web --model /nvme/glm52_i4         # API 加网页控制台
./coli serve --model /nvme/glm52_i4       # 只要 OpenAI 兼容 API

Windows 下把 COLI_MODEL=... ./coli 换成 python coli chat --model D:\glm52_i4 这种写法,命令一样。

适合谁用

注重隐私的场景: 合同、病历、内部文档不想让第三方 API 经手,现在 744B 这个级别的模型也能关起门来本地处理。

做模型研究的人: Brain 和 Atlas 两个页面把 MoE 的路由行为摊开来给人看,哪个专家管诗歌、哪个管 SQL,全是实测数据。以前想看这种东西,得先有张能装下整个模型的卡。

不想按 token 付费、又愿意折腾的个人玩家: 手里有台 128GB 内存的机器,1.8 tok/s 慢慢跑批处理任务,凑合能用。

还有接工具链的玩法:serve 起的是 OpenAI 兼容接口,支持自定义端点的客户端都能拿它当后端。

我的看法

25GB 内存跑 GLM-5.2 是事实,但 0.05 到 0.1 tok/s,一分钟出不了几个字。这个配置只证明能跑,别指望拿来干活。真想日常用,128GB 内存起步,或者上显卡。冲着"25GB 畅玩 744B"来的,会失望。

但这个项目我还是愿意推荐,它这个思路绝对牛:内存不够就慢,但默认策略绝不偷偷降模型精度,也不改路由行为,量化损失全部测出来公开。工程上也干净,引擎就是一个 C 文件加几个小头文件,没有 BLAS 依赖,运行时没有 Python。一个 7 月 1 日才创建的个人项目,24 天收了 1.8 万 Star。

路线图里写着接下来要支持 Kimi K2、Qwen3 MoE、MiniMax,现在 GLM-5.2 和 OLMoE 已经能跑,等 Kimi K2 的支持落地,我找台机器实测一篇。

官网:https://justvugg.github.io/colibri/
Github 开源:https://github.com/JustVugg/colibri

转自:https://mp.weixin.qq.com/s/8LfZye-rE3G1MvcI6uqmug