
一、问题当模型大到装不进内存2026 年大语言模型已经膨胀到令人绝望的地步。GLM-5.2 有 744B 参数Kimi K3 达到 2.8T即便是小模型也动辄上百 B。传统推理引擎的逻辑很简单把模型塞进显存或内存然后跑。但当模型本身就有 1.5TB而你的显卡只有 24GB、内存只有 128GB 时这条路走到了尽头。Colibrì 要解决的问题是如何在消费级硬件上运行前沿的超大 MoE 模型答案不是把模型变小而是重新思考模型该放在哪里。二、核心洞察MoE 模型的稀疏性是金矿Mixture-of-ExpertsMoE架构有一个反直觉的特性虽然总参数量巨大但每个 token 实际激活的参数极少。以 GLM-5.2 为例总参数744B每个 token 激活的参数~40B仅 5.4%其中跨 token 变化的部分路由专家~11GB这意味着什么模型不需要fits in memory它需要的是placed correctly。这个洞察是 Colibrì 的基石既然每次推理只需要一小部分参数那为什么不把不用的参数放在慢速但大容量的存储上按需加载呢三、AI Memory Multitiering把存储层级变成推理层级传统推理引擎把内存当作一个二元状态要么模型在内存里快但贵要么跑不起来。Colibrì 打破了这个二分法提出了AI Memory Multitiering——将 VRAM、RAM、NVMe SSD 视为统一的推理层级同一个模型的权重可以在三个层级间流动。具体来说Colibrì 把 GLM-5.2 的权重这样放置常驻层RAM~10GB密集部分注意力、共享专家、嵌入约 17B 参数量化到 int4 后约 9.9GB这部分每个 token 都要用必须常驻流式层NVMe SSD~370GB19,456 个路由专家每个约 19MBint4按需从磁盘读取使用 per-layer LRU 缓存 学习的 pin 集合加速层VRAM可选最热的专家可以提升到显存在 GPU 上计算CPU 负责其余部分这种设计的核心保证是快速内存不足只影响速度绝不改变模型语义。无论专家从 VRAM、RAM 还是磁盘回答路由器的决策和权重的精度完全相同。这不是一个近似推理引擎而是一个精确推理智能放置的引擎。四、权重的 JIT像编译器一样思考Colibrì 的核心算法可以类比为权重的 JIT 编译。传统的编译器 JIT如 Java 的 HotSpot不会一次性编译整个程序。它观察哪些代码路径真正被执行然后及时编译热路径。冷代码永远保持解释执行节省编译时间和内存。Colibrì 对 744B 参数空间做了同样的赌注参数不是要持有的状态而是要分阶段的数据。工作流程是这样的路由器提前一层运行在计算第 L 层时路由器已经预测第 L1 层需要哪些专家预取隐藏延迟专用 I/O 线程提前读取下一层的专家与当前层的计算重叠学习你的工作负载引擎记录你实际路由到哪些专家.coli_usage 文件启动时自动 pin 最热的专家结果是你使用 Colibrì 越多它就越快。这不是营销话术而是字面意义上的——学习缓存会记住你的使用模式。实测数据对 layer L 的后注意力状态应用 layer L1 的路由器可以召回71.6%的真实 top-8 专家对比和上一个 token 相同的专家只有 41.3%。路由在时间上是可预测的而可预测性意味着可缓存性。五、永不等待磁盘两次磁盘读取是昂贵的所以 Colibrì 把大部分聪明才智花在避免和重叠磁盘等待上。批处理专家联合Batch-Union当多个 token 位置路由到同一个专家时Colibrì 只读取一次。这听起来显而易见但实现起来需要精细的调度——要在路由完成后、计算开始前把所有唯一专家收集起来。异步 I/O 池PIPE1一个有界的异步 I/O 池在常驻专家计算时加载缺失的专家。当 CPU 在计算已经在内存中的专家时磁盘在后台读取下一批。这是经典的生产者-消费者模式但应用在了权重加载上。路由器前瞻预取PILOT1这是 Colibrì 最巧妙的优化之一。既然路由是 71.6% 可预测的为什么不提前一层开始读取呢专用 I/O 线程在当前层计算时已经在读取下一层的专家。实测在大型缓存主机上这带来了11 个百分点的命中率。O_DIRECT 双 SSD 条带化O_DIRECT 绕过操作系统的页缓存直接在驱动器和应用之间传输数据。在有 DRAM 缓存的 NVMe 驱动器上这带来了34% 的解码速度提升在 Blackwell/Windows 主机上实测。如果你有两个独立的 NVMe 驱动器Colibrì 可以在两个驱动器上条带化读取根据测量的带宽加权分配。实测37.5% 的解码速度提升。这些优化的效果是累积的。在一个调优的系统上磁盘服务时间可以被计算完全掩盖——你看不到等待因为等待已经在别处发生了。六、异构执行CPU、GPU、Metal、Vulkan 的协奏曲Colibrì 不假设你有一块特定的显卡。它支持多种后端可以根据你的硬件组合CPU 后端默认纯 C 实现使用 OpenMP 并行化。支持 AVX2、AVX-512、VNNI 等指令集。在一个调优的 AVX-512 CPU 上专家矩阵乘法可以匹配一块 5090 的速度。CUDA 后端可选常驻的量化张量密集权重上传到 GPU 一次然后重复使用。流式专家仍然走 CPU 路径——把专家从 NVMe 复制到 GPU 上只会用 PCIe 瓶颈替换磁盘瓶颈。但最热的专家可以 pin 在 VRAM 中在 GPU 上计算。在 6× RTX 5090 主机上Colibrì 实现了176.7GB VRAM 层 191.3GB RAM 层所有 19,456 个专家都常驻。解码速度达到5.8-6.8 tok/s。Metal 后端Apple Silicon在统一内存的 Mac 上Metal 后端利用 GPU 做批处理专家数学。在 M5 Max128GB 统一内存上实测从 CPU 的 1.06 tok/s 提升到1.83 tok/s专家命中率从 23% 提升到 66%。Vulkan 后端通用 GPU这是最实验性的后端但也是最激进的——它支持任何有 Vulkan 1.2 驱动的 GPU包括通过 Mesa/RADV 的 AMD 显卡。甚至是厂商已经放弃支持的旧卡如 RX 580。在 RDNA4 上Vulkan 后端与 ROCm 竞争。关键设计原则是GPU 只在它能赢得速度时介入从不改变输出。所有 GPU 后端都保证与 CPU 路径位相同bit-identical。七、压缩状态但不压缩模型Colibrì 在状态压缩上做了大量工作但有一个硬性保证永不悄悄改变模型精度或路由器语义。MLA 压缩 KV 状态GLM-5.2 使用 Multi-head Latent AttentionMLAColibrì 存储压缩的 KV 状态——每个 token576 个浮点数而不是传统的 32,768 个。这是57 倍更小。跨重启持久化KV 缓存持久化在 .coli_kv 文件中。当你关闭对话然后重新打开时Colibrì 恢复缓存对话以热的状态重新开始——零重填字节相同就像会话从未中断过。DSA 稀疏注意力的忠实实现GLM-5.2 的 lightning indexer 使用 DSADynamic Sparse Attention。Colibrì 忠实实现了它并通过强制全键选择来验证——精确复现密集注意力的结果。这不是近似而是精确。投机解码诚实地测量GLM-5.2 的原生 MTPMulti-Token Prediction头可以起草 token主模型在一次批处理前向中验证。实测每个前向可以生成2.2-2.8 个 token。但 Colibrì 对投机解码持谨慎态度。两个硬性规则是默认值MTP 头必须是int8int4 头会崩溃到 0-4% 的接受率起草和验证必须计算相同的函数SPEC_PIN1 保证这一点语法强制起草GRAMMARfile.gbnf在约束 JSON 输出上可以增加几乎免费的接受率。但投机解码是否净收益取决于你的缓存温度——Colibrì 鼓励你测量而不是盲目启用。八、学习缓存越用越快这是 Colibrì 最有人情味的特性。持久化使用历史引擎记录你的工作负载实际路由到哪些专家保存在模型目录旁边的 .coli_usage 文件中。每个对话轮次都会更新这个文件。自动 Pin启动时Colibrì 读取使用历史自动把最热的专家 pin 到空闲 RAM 中。PINauto 直接从实时使用历史播种 pin 集合。实时适应使用 --repin N可选在安全的轮次边界衰减的会话热度图会替换不够热的 pin 专家为更热的流式专家。25% 的滞后和 4 个交换的限制防止层级抖动。自动调整缓存大小专家缓存自动调整到你的 RAM 预算。引擎会提高LRU 上限来填充你的 --ram 预算而不是只降低它。效果是什么在一个真实的使用场景中第 1 次运行专家命中率 3-4%解码速度 0.07 tok/s经过几轮对话后命中率提升到 11%速度提升到 0.11 tok/s在大型缓存主机上命中率可以达到 66-78%速度提升到 1.5-2.0 tok/s这不是缓存预热这是学习。Colibrì 记住了你的使用模式下次你来的时候它已经准备好了你最可能需要的专家。九、纯 C零依赖极简主义的胜利在一个充斥着 Python、PyTorch、CUDA 的 AI 世界里Colibrì 选择了最朴素的路线纯 C零引擎依赖。单个 C 文件核心引擎是 c/colibri.c加上一些共享头文件st.h 读 safetensorsquant.h 解码容器expert_ffn.h 路由专家 FFN ok.h 分词器等等。没有复杂的构建系统没有依赖地狱。编译即运行ash make -C c glm COLI_MODEL/path/to/model ./coli chat就这样。没有 pip install没有 conda activate没有环境变量配置。跨平台同一个引擎可以在 Linux、macOS、Windows 上编译和运行。Windows 需要 MSYS2 或 w64devkit 提供 POSIX shell 环境但引擎本身是纯 C。为什么这很重要可审计性你可以读懂整个引擎。没有黑盒没有信任框架。可移植性从笔记本到服务器从 x86 到 ARM编译就能跑。性能可预测性没有垃圾回收没有解释器开销没有运行时反射。你看到的就是你得到的。研究友好下一个有用的优化可以来自任何愿意测量它的人。引擎足够小不会吓跑贡献者。这种极简主义不是教条而是实用主义。Colibrì 的目标是降低硬件门槛而依赖越少门槛越低。十、实测数据从 0.05 到 6.8 tok/sColibrì 不承诺速度它承诺可测量性。同一个引擎同一个 int4 容器硬件只改变专家住在哪里。社区实测数据截至 2026 年 9 月主机配置实测速度Intel Core Ultra 7 270K24GB RAMWSL2默认0.07 tok/sApple M5 Max128GB 统一内存MetalMetal 开启46.9GB pin2.06 tok/sMac Mini M4 Pro48GB 统一内存MetalMetal 开启0.30 tok/s对比 CPU 的 0.18Apple M3基础款16GB 统一内存OLMoE int8cap 163.69-4.18 tok/sRyzen AI 9 HX 370128GB RAM46.7GB 自动学习 pin0.37 tok/s命中率 66%6× RTX 5090251GB 主机完全常驻5.8-6.8 tok/s这些数字说明了什么硬件决定速度但不决定可能性。即使是最弱的 25GB 开发箱也能跑 744B 模型。只是慢但不是不能。RAM 是最有价值的旋钮。更多 RAM 意味着更多热专家可以缓存命中率提升速度提升。GPU 只在它能赢得速度时介入。在调优的 AVX-512 CPU 上专家矩阵乘法可以匹配一块 5090。学习缓存的效果是真实的。命中率从 3% 提升到 66%速度可以提升 10 倍以上。十一、九个模型家族同一套哲学Colibrì 不是只跑 GLM-5.2 的单一引擎。它支持九个 MoE 模型家族每个都有自己的 C 文件但共享相同的前端coli chat / coli serve / coli web和相同的多层级放置哲学。模型列表GLM-5.2/5.3744B/40B参考模型~372GB 磁盘16GB RAM 起GLM-5.3-Flash321B/40B带视觉~195GB25GB RAMInkling975B/41B~469GB25GB RAM需要 int4 密集容器Kimi K32.8T/104B~1.6TB32GB RAM原生 MXFP4 专家DeepSeek V4 Flash284B/13B~167GB16GB RAM 起原生 fp4 专家DeepSeek V4.1 Flash552B/16B官方 checkpoint无需转换203GB 是 n-gram 内存Qwen3.8-Flash-Next125B51B n-gram/6B~185.5GB16GB RAM 起原生 block-FP8Qwen3.635B/3B~20GB24GB RAM混合 Gated Attention Gated DeltaNetOLMoE7B/1B~7GB8GB RAMint8 容器统一的前端ashmake -C c glm # GLM-5.2make -C c kimi_k3 # Kimi K3make -C c qwen36 # Qwen3.6COLI_MODEL/path/to/glm52_i4 ./coli chatCOLI_MODEL/path/to/kimi_k3 ./coli chatCOLI_MODEL/path/to/qwen36_i4 ./coli chat命令行不变前端不变只有引擎二进制和模型目录变化。coli 读取模型的 config.json自动选择匹配的引擎。每个模型都有自己的个性Kimi K3 的 MXFP4 专家直接从原始 checkpoint 流式加载无需转换Qwen3.8 的 PLEPLE table从不物化在 RAM 中每个 token 读取 16 行 160 字节的 FP8DeepSeek V4.1 的 203GB n-gram 内存每次只从磁盘读取几百字节Qwen3.6 的混合架构25% 注意力 75% DeltaNet需要不同的状态管理但底层哲学是一样的参数是数据不是状态放置决定速度不改变语义。十二、Brio 模式让模型停止写作大多数时候人们问模型的是选择题不是论述题哪个队列、哪个判决、哪个字段值。但传统模型总是生成一段文字然后你从文字里提取答案。Brio 模式颠覆了这个流程给模型一个文档和一组选项它读取每个选项的概率不生成任何 token然后报告一个熵值告诉你模型有多确定。ash./coli chat --model /path/to/qwen36_i4_gs64/brio merge | request changes | close340 lines, 8 files, no tests. CI is green but nothing covers that path.结果equest changes99.9% 概率熵0.005非常确定读取的 token4生成的 token0为什么这很重要速度快不生成文本只读取概率。在 CPU 主机上Brio 比生成相同答案快 2.4-5.7 倍。答案不会超出你的选项模型不能幻觉出一个你没列出的答案。不确定性是可量化的熵值告诉你模型有多确定。如果熵很高你知道模型在猜。Brio 模式在所有九个模型家族上都可用在同一个服务器上每个请求可选启用。不启用 Brio 的聊天字节相同。十三、开放假设研究永无止境Colibrì 把每个优化都当作一个假设直到受控的端到端 A/B 测试证明 otherwise。当前主要的开放问题假设目前证据仍需要的实验路由历史可以比纯 LRU 更好地放置专家学习的 pin 在重复工作负载上有效但可能过拟合跨会话、跨工作负载的 A/B 测试多个 SSD 可以把独立带宽转化为解码速度两个独立 NVMe 实测 37.5%第三个慢驱动器在中性跨驱动器速度、控制器布局、缓存状态复现硬件感知规划器可以自动接近每台机器的最佳配置今天可以检测 RAM/VRAM 预算和多个后端跨笔记本、工作站、NUMA 主机、多 GPU 系统的受控参数扫描无损或有界质量的表示可以减少权重移动格式和量化消融存在有正确性/质量门控复现质量、移动的字节、延迟、每个有用 token 的成本路由感知的投机解码可以在接近完全常驻之前获得收益MTP 和语法起草有效但 MTP 在 85% 专家命中率时也测量到 32% 的损失映射接受率、专家命中率、批处理联合、起草深度的盈亏平衡面CPU/GPU 重叠可以隐藏传输和同步CUDA 和 Metal 有收益但快速 CPU 和低常驻可以抹平它们跨 PCIe、统一内存、完全常驻主机的每阶段分析和单变量 A/B如何贡献选一行发布负面结果。记录硬件、提交、模型/容器、精确命令、提示、缓存状态、吞吐量、TTFT、专家命中率、读取字节、质量检查。改变一个变量重复运行附上原始日志。一个受控的失败比一个无法解释的快速数字更有价值。十四、为什么叫Colibrì蜂鸟只有几克重可以在空中悬停每天访问一千朵花。这个引擎在蜂鸟的口粮下养活了一个 744B 参数的巨兽25GB RAM12 个 CPU 核心以及大量的磁盘耐心。Tiny engine, immense model.十五、可及性是产品Colibrì 不是最快的推理引擎。在 6× RTX 5090 上它达到 6.8 tok/s在 25GB 开发箱上它只有 0.05 tok/s。但它的目标不是速度而是可及性。当你可以在你已经拥有的硬件上运行一个 744B 参数的模型实时观察每个专家触发改变做这件事的代码——这不再是在 API 后面租用智能而是持有它探测它测量它改进它。Colibrì 是一个你今天就可以运行的推理引擎也是一个开放的研究平台。它的首要目标是在整个软件/硬件边界上追求推理端的性能——模型格式、内存层级、存储 I/O、放置、调度、内核、推测、CPU/GPU 重叠——这样大模型就不那么依赖稀缺的硬件运行成本更低。下一个有用的优化可以来自任何愿意测量它的人。这就是 Colibrì。项目地址https://github.com/JustVugg/colibri