53 分•作者: vforno•3 个月前
几天前,我尝试使用了 GLM 5.2,并对其留下了非常深刻的积极印象。我从这个大语言模型(LLM)获得的能力和安全性与我从 Claude 或 GPT 等模型中获得的能力和安全性非常相似,这让我感到非常惊喜。 然后我想到,“不知道它在我这样的普通电脑上表现如何?”最重要的是,“不知道它在我这样的电脑上是否能在不出现内存溢出(OOM)的情况下运行?”于是,我开始借助代理来测试这种可能性。 我开始将模型转换为 int4,理解 MTP 的使用,并在可能的情况下实现 DSA 以支持长上下文。我测试了 int4 模式下的响应情况,以及质量是否得以保持。最终,在我的 32GB 内存的电脑上,我能够与 GLM 5.2 进行交互,虽然冷启动时的速度(0.1 token/s)当然不算快,但这对我来说并不重要。重要的是我为实现这个目标所付出的努力。我只想让它不惜一切代价运行起来,即使速度很慢。 于是我创建了 Colibrì,它源于一个非常简单的想法,说实话,但经过了各种测试。一个 744B 的混合专家(Mixture-of-Experts)模型,每个 token 只激活约 40B 参数,并且其中只有约 11GB 的参数会从 token 到 token 发生变化(即路由到的专家)。所以: * **密集部分**(注意力机制、共享专家、嵌入层——约 17B 参数)以 int4 格式驻留在内存中(约 9.9 GB)。 * **21,504 个路由专家**(75 个 MoE 层 × 256 个专家 + MTP 头,每个约 19 MB int4 格式)存储在磁盘上(约 370 GB),并按需流式传输,配有每层的 LRU 缓存、可选的固定热存储以及作为免费 L2 的操作系统页面缓存。 该引擎是一个单一的 C 文件(c/glm.c,约 1,300 行)加上一些小头文件。运行时不需要 BLAS、Python 或 GPU。没有 GPU 或高端硬件,因为我没有这些硬件,所以无法在比我的电脑更强大的硬件上进行测试。Colibrì 是一个单人项目,完全在一台拥有 25GB RAM 的 12 核笔记本电脑上编写和测试——以上数字是我在家中能测量的最高值。 欢迎任何反馈!(如果有人想参与该项目,我将非常高兴) 代码库:<a href="https://github.com/JustVugg/colibri" rel="nofollow">https://github.com/JustVugg/colibri</a>