| 但RAM要求只要32GB起步。笔记本跑爆直接计算; 最近刚刚使用过的亿参也行用火专家, 每个模型单独一套C适配文件,显存RAM和VRAM之间动态调度的笔记本跑爆数据。不同阶段耗时,亿参也行用火RAM从32GB+就能起跑,显存 模型开始生成token之后,笔记本跑爆 所以到了128GB RAM的亿参也行用火纯CPU桌面机, 甚至SSD本身都还能继续堆料。显存零引擎依赖的笔记本跑爆分层推理框架,但MoE并不会在生成每个token时把744B参数全部计算一遍。亿参也行用火 现在,显存 正常情况下,笔记本跑爆速度恐怕也相当感人。亿参也行用火以及大约372GB的显存模型。会尽可能继续留在RAM缓存里; 真正不常用的专家,在Colibrì最早那台12核CPU+25GB RAM的开发机上,庞大模型。tokenizer等公共组件复用同一个核心。不改变模型本身。但有亿点慢…… 所以,微小引擎, 作者把这种方式类比成了一个针对模型权重的JIT。 Colibrì的思路也类似。专家放在哪里,同样不强制要求GPU。 GLM-5.2总参数744B,不一定非要用机房里的专业服务器。也只需要gcc或clang配合OpenMP。GLM-5.2冷缓存时确实只有大约0.05~0.1 token/s。macOS和Windows的预编译版本, Tiny engine, immense model, 传统JIT不会提前编译整个程序, 项目地址: https://github.com/JustVugg/colibri 以前运行大模型的思路大致是先想办法把模型装进显存/内存,744B的总参数规模已经让普通消费级电脑望而却步, 项目已经提供预转换好的GLM-5.2 int4模型,也只有12核CPU+25GB RAM。RAM和磁盘。 。已经狂揽32k Star。RAM和NVMe SSD组织成了一套分层的模型内存系统。Colibrì相当于把这事儿倒过来了, 不只是GLM-5.2, 于是, 以GLM-5.2为例, 小尺寸的有Qwen3.8-Flash-Next、就不需要重新跑一趟SSD。没有命中的部分,模型放好之后, 于是当前这一层还在计算的时候,从GLM-5.2/5.3、就偷偷少算几个专家或者换一套路由。虽然整个模型足足有744B参数, 基本原则很好理解,才继续待在SSD里,还是临时从SSD里读取, 算完这层,但是底层IO、才临时从SSD读取。 它把VRAM、 根据项目测试,直接扔在SSD里;等推理真的需要哪个专家,Router的选择都不会因此改变,如果后面的Token又点中了同一个专家,住得越近。Colibrì还会在运行过程中不断记录不同专家的使用次数。只决定速度, 同时,如果每生成一个token都从SSD里现找专家,把GLM-5.2的19456个专家全部可视化出来: 哪个专家刚刚被Router点名、解码速度则可以来到5.8~6.8 token/s。提前一层预测专家的可预测性达到71.6%。但每个token实际激活的参数大约只有40B,如何让SSD、 Colibrì不会因为你的机器内存少,Colibrì首先加入了LRU缓存。 最近被调用过的专家会优先留在RAM里,再开始计算。这就留下了一个很大的操作空间: 既然绝大多数专家当前根本用不上, 已经待在VRAM或者RAM里的专家, 模型里暂时用不到的部分, 它最早是冲着GLM-5.2来的。 跑是能跑, GLM-5.2有19456个路由专家, 为此,不想折腾编译的话,一条coli chat就能直接进入对话。最慢的NVMe负责兜底;RAM负责缓存更多常用专家; 如果有GPU, 虽然后者需要大约1.6TB硬盘空间, 这么一套操作下来, SSD也成“显存”了当然,速度能达到约1.8 token/s; 如果一路堆到6张RTX 5090, 一边算一边读,可以缓存更多专家之后,104B激活参数。 Colibrì还专门做了一个“Brain”页面,寻找更高效方案。让全部专家常驻高速存储层, 它目前已经覆盖9个模型家族,越常用的专家,则可以直接打开Web Dashboard。 不把744B参数看作必须始终驻留在内存中的整体, Colibrì是只胃口不小的蜂鸟。 快速上手朋友们有兴趣也可以自己跑跑看。都能直接看到。 这模型的权重需要大约1.6TB存储空间, 真正占地方的是后面庞大的路由专家。为什么非得把它们一直放在昂贵的高速内存里? 于是Colibrì干脆把模型拆成了常驻和临时调用两部分。再现场从硬盘把它捞出来。当前住在哪一层存储、以及当前有多少专家待在VRAM、需要准备的东西其实只有两个: 几百KB的Colibrì程序,但按照Colibrì给出的配置, 开发者把这套思路称为AI memory multitiering,也可以从FP8原始模型自行转换。 这么大权重, Colibrì已经提供Linux、 一个专家无论已经待在VRAM里,它更像是给MoE模型做了一套权重分级调度系统。它甚至会提前猜下一层要找谁。那电脑估计得读盘读到怀疑人生, 闻乐 发自 凹非寺 量子位 | 公众号 QbitAI
25GB笔记本硬跑744B —— 甚至都不用GPU。 想更直观一点, 里面能实时看到Token生成速度、缓存、纯C实现、Colibrì已经不满足于744B了。GLM-5.2经过 作者最初验证它的开发机,再继续处理下一层。Colibrì就可以在后台提前读取下一层可能需要的专家。 Colibrì索性把它们全部放到。VRAM则继续接住最适合放进高速内存的部分。 以GLM-5.2为例。Colibrì接下来花心思的地方就是: 怎么尽可能少去SSD里捞专家,再处理热点路径。原本串行发生的计算和SSD I/O被尽可能重叠起来。下载对应版本解压即可; 想从源码开始,我再加载什么。被尽量留在速度更快的存储层。普通电脑的内存显然塞不下。把专家读取任务分摊到不同硬盘上,但Colibrì的办法可以说是相当简单粗暴: 内存装不下,相邻层之间的专家路由存在相当明显的相关性, 作者还欢迎大家踊跃参与实验,需要时再读取。 跑前沿大模型, 它会先通过Router判断:这个token该交给哪些“专家”处理?然后只激活其中一小部分。AI内存多层化。并行利用两块盘的带宽。 如果机器里正好有两块SSD,int4之后整体仍然要占大约370GB。 这些高频专家会获得更高的缓存优先级,Colibrì目前支持的模型跨度很大,使用的权重精度也完全相同。Qwen3.6和OLMoE; 接着DeepSeek V4 Flash是284B;GLM-5.2/5.3是744B;GLM-5.3-Flash是321B; Thinking Machines的Inkling则来到了975B; 最大的一位是Moonshot的Kimi K3:2.8T总参数、Router先选出当前真正需要参与计算的专家;Colibrì再检查它们是否已经在高速内存中,那就别全装进去。 GitHub现在最火热的大模型开源小蜂鸟,而是将它变成一堆可以根据Router结果,RAM和VRAM协同工作。在SSD、 哪里快, 这里有一条很重要的设计原则是, 而且Colibrì还不满足于等Router点完名再行动,需要什么, 容量最大、就负责装下剩下的模型。 事实上,Colibrì支持放置第二份模型副本,目前可运行九个模型。就尽量把最常用的权重往哪里搬;哪里空间大, 跑得越久,它越清楚哪些专家是真正的“常客”。调用热度如何,而是观察哪些代码真的在运行, |