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