27k star 的纯 C 推理引擎:把 744B MoE 模型塞进普通电脑,到底靠不靠谱?

GitHub 趋势 · 第 22 期

#GitHub趋势#MoE推理#本地优先#纯C零依赖

colibrì 不打算替代 llama.cpp 或 vLLM。它把 MoE 看成「权重是数据,不是常驻状态」:把 VRAM、RAM、磁盘当成同一层推理层级(AI memory multitiering),让 GLM-5.2(744B)、Kimi K3(2.8T)这种 frontier 模型能跑在你手头的硬件上——可能慢,但保证语义不变。Apache 2.0、单文件 C 引擎、零运行时依赖,是给「想看清每个专家到底走了哪条路」的人准备的。

frontier MoE 模型,普通开发者够不着

GLM-5.2 / Kimi K3 这类 frontier MoE 模型动辄 744B ~ 2.8T 参数,全量加载要几十张 H100。普通开发者的选项只剩租 API 被锁在云端、或接受量化损失自己跑;想本地玩大模型,就得自己面对「权重怎么放、专家怎么调度、磁盘读取怎么不拖后腿」这一整套系统难题——大部分框架默认假设你有足够 VRAM,否则直接罢工。

项目是什么

JustVugg/colibri 是一个用纯 C + 零运行时依赖写的 MoE 推理引擎,目标是「让任何 MoE 都能在你已有的硬件上跑起来」。每个模型族对应一个 .c 文件(GLM-5.2、GLM-5.3-Flash、Inkling、Kimi K3、DeepSeek V4 Flash、Qwen3.8-Flash-Next、Qwen3.6、OLMoE),共用同一套 CLI(coli chat / coli serve / coli web),引擎自己读 safetensors 容器,不依赖 BLAS,不依赖 Python,CUDA/Metal/Vulkan 三套 GPU 后端按需打开。

它的核心思路只有一句话:「MoE 不需要「装进」快内存,而是被「摆放」到分层存储上」——dense 部分(注意力和共享专家)常驻 RAM,被路由的 19 456 个专家(每个 ~19 MB)按 LRU + 已学习热度 + 一层 lookahead 在 NVMe / RAM / VRAM 之间流动,磁盘路径上 read/compute 重叠、双 SSD 条带化、O_DIRECT 可选打开。作者直接叫它「a JIT, but for weights」:编译期 JIT 不会把整个程序都编好,colibrì 也不会把整个模型都加载好,它盯着你的路由热度,让真正会被命中的专家先上。

核心能力

能力做法(README 原文逐字)
内存分层VRAM / RAM / NVMe 当成同一层级摆放权重;快内存不够只会降速,不改语义
权重 JIT每层 LRU + 已学习热度 pin + 一层 lookahead prefetch,越用越快
I/O 与计算重叠async I/O 池(PIPE=1)边读边算,batch-union 合并专家,路由器 71.6% 一层可预测
异构执行CPU / CUDA / Metal / Vulkan / NUMA 共用一套 runtime,按机器自动组合
双 SSD 镜像COLI_MODEL + COLI_MODEL_MIRROR 两盘同时读,权重哈希分流,校验丢盘可降级
57× KV 压缩MLA KV state 576 floats/token vs 32 768,.coli_kv 跨重启保留,暖启动零 prefill
诚实的投机解码MTP / grammar drafts 实测后再开,DeepSeek V4 默认 V4_DRAFT=0 V4_MTP=0
本地集群coli cluster coordinator/worker 把 Mac 们拼成一层「外置 FFN 计算池」,token 不重复 round-trip

上手

下面的命令都来自 README 原文,按平台挑一种即可。

# 1. 拿程序(自己 100 KB 量级)
mkdir colibri && tar xzf colibri-v1.8.0-linux-x86_64.tar.gz -C colibri && cd colibri
python3 coli info                              # 引擎就位 ✓

# 或源码构建(gcc/clang + OpenMP)
git clone https://github.com/JustVugg/colibri && cd colibri/c
./setup.sh                                    # 体检 + 编译 + 自测

# 2. 拿模型(GLM-5.2 int4-gs64 with int8 MTP,约 372 GB)
# 必须用 gs64 镜像,老的 per-row int4 会触发 think-mode 死循环与 EOS 饥饿
# 模型来源:huggingface.co/mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp

# 3. 跑起来(同一个 CLI 适配 8 个模型族,coli 从 config.json 自动挑引擎)
COLI_MODEL=/nvme/glm52_i4 ./coli chat         # TUI
COLI_MODEL=/nvme/glm52_i4 ./coli plan         # 看 VRAM/RAM/磁盘 各放多少
COLI_MODEL=/nvme/glm52_i4 ./coli doctor --deep
COLI_MODEL=/nvme/glm52_i4 ./coli tune         # 跑一遍测最快配置
./coli web  --model /nvme/glm52_i4            # API + 仪表盘,开浏览器
./coli serve --model /nvme/glm52_i4           # 同上,不开浏览器

支持 8 个模型族的硬件门槛差异很大(取自 README 表格):OLMoE 7B 只要 8 GB 内存;GLM-5.2 / Qwen3.6 需 16~24 GB;Kimi K3 要 32 GB+ 和 ~1.6 TB 磁盘;Vulkan 后端对 AMD RX 580 这种被 ROCm 抛弃的卡也兼容——所以「GPU 不是必需,但有永远更快」。

我的判断

适合谁:想在 M-series Mac / 工作站上真跑 frontier MoE、又不想把代码和数据全交给云端 API 的工程师;做推理系统研究的实验室——项目自带「测量优先,工程化诚实」的研究纪律(团队原话:「a well-controlled failure is more valuable here than an unexplained fast number」);以及想做本地企业级问答、又预算买不到几张 H100 的中小团队。

不适合谁:追求「点一下就跑出高 tok/s」的人;想直接对话 ChatGPT 那种用户体验的产品用户——CLI 友好归友好,没 Web 体验打磨;以及把数字当成承诺看的人:作者明说「no SLA on speed, hard guarantee on semantics」。

坑:① 必须用 gs64 容器 + int8 MTP 头;老的 per-row int4 镜像会触发 think-mode 死循环(int4 → 0% draft acceptance);② DeepSeek V4 的 V4_DRAFT/V4_MTP 默认 OFF——官方实测「rejected-suffix replay」开销盖过了 draft 节省,不要凭感觉打开;③ O_DIRECT 是 NVMe 加速选项不是保险,QLC / 虚拟盘反而会变慢,先测再开;④ 主作者 JustVugg 单人主导(bus factor 小),2 057 个 commit 都是核心维护;⑤ 已经非常拥挤——和 llama.cpp / vLLM / kTransformers 同台打擂,定位是「互补的实验平台」,不是「我比它们快」;⑥ 25 GB 笔记本上是 0.05~0.1 tok/s 冷启动,「能跑」和「能用」之间还有距离。

地址:github.com/JustVugg/colibri

总 star:27,300(今日 +157)| 许可证:Apache 2.0(引擎,可商用;GLM-5.2 权重由 Z.ai 以 MIT 释出)

抓取时间:2026-09-10 21:20(北京时间)| 活跃:v1.10.2(2026-09-06)| 2 057 commits| 单文件 c/colibri.c 主引擎

你手头的硬件现在能跑哪个 MoE?欢迎在评论区报硬件 + 实测 tok/s。下期预告:diegosouzapw/OmniRoute(自称 352 个 provider、150+ 免费端的 MIT AI 网关)或 rohitg00/ai-engineering-from-scratch(53k star 的 AI 工程实战学习库)。

#GitHub趋势#MoE推理#本地优先#纯C零依赖