返回

文章详情

展示 HN:在我的慢电脑上运行 GLM 5.2

Hacker News2026年7月9日 08:05

微小的引擎,庞大的模型。在大约 25 GB RAM 的消费级机器上运行 GLM-5.2(744B 参数 MoE)——用纯 C 实现,零依赖,通过从磁盘流式传输专家。$ ./coli chat 🐦 colibrì v1.0 — GLM-5.2 · 744B MoE · int4 · 流式 CPU ✓ 32 秒内准备就绪 · 占用 9.9 GB › 你好!◆ 你好!😊 请问我今天能帮您什么? 这个想法 744B 混合专家模型对每个 token 仅激活约 40B 参数——而且只有约 11 GB 的这些参数从 token 到 token 发生变化(路由专家)。所以:稠密部分(注意力、共享专家、嵌入——约 17B 参数)保持在 RAM 中 ~9.9 GB,21,504 个路由专家(75 MoE 层 × 256 专家 + MTP 头,每个在 int4 约 19 MB)存储在磁盘上(约 370 GB),并根据需要进行流式传输,具有每层 LRU 缓存、可选的固定热存储和操作系统页面缓存作为免费的 L2。 引擎是一个单独的 C 文件(c/glm.c,约 1,300 行)加上小型头文件。没有 BLAS,没有运行时 Python,没有 GPU。 实现的功能 忠实的 GLM-5.2 (glm_moe_dsa) 向前——与 transformer oracle(教师强制 32/32,贪婪 20/20 在一个微小随机模型上与真实架构进行验证)进行精确 token 校验。 MLA 注意力(q/kv-LoRA,交错部分 RoPE)与压缩 KV 缓存:每个 token 576 floats,而不是 32,768(小 57 倍——GLM-5.2 有 64 个头且没有 GQA)。 DeepSeek-V3 风格的 sigmoid 路由器(noaux_tc,routed_scaling_factor),共享专家,前三层稠密层。 原生 MTP 投机解码——GLM-5.2 自有的多 token 预测头(第 78 层)草拟 tokens,主模型在一个批量前向中进行验证。头部必须是 int8(转换器默认这样处理):在 int4 草拟接受率降至 0–4%,投机从未参与;在 int8 中,接受率为 39–59%,每次前向 2.2–2.8 tokens(社区测量,#8)。 无损——并在通过拒绝采样进行采样时保持无损。 同一测量的诚实警告:在冷缓存上,每个验证的草拟路由到额外的专家(约 660 → ~1100 expert-loads/token),因此投机可能是净时间损失,直到缓存/固定存储预热——自适应保护和 DRAFT=0 是为此而设。 真实采样——温度 + 核心,默认调校为 int4 现实(0.7 / 0.90;官方的 1.0 / 0.95 样本从尾部量化噪音)。 整型点核(Q8_0 样式的 int8 激活,AVX2 maddubs):int8 矩阵乘法 1.4–2.5 倍更快(119 GFLOP/s 测量),int4 在批量中 1.8 倍——通过测量决定路由(int4 单行保持 f32:它测量更慢)。 MLA 权重吸收(DeepSeek 技巧)用于解码:无每个 token 的 k/v 重构——查询吸收 kv_b,注意力后上下文被投影。 验证确切:TF 32/32 和生成 20/20,强制全局吸收。 异步专家预读:当一个专家块正在被乘法时,内核已经在读取下一个(WILLNEED)。 量化核:int8 / 打包 int4 / 打包 int2,每行缩放,AVX2,使用时反量化。 打包验证与 int8 容器完全相同。 DSA 稀疏注意力:正在进行中——闪电索引器权重(来自 FP8 仓库的 ~108 GB 提取,--indexer 转换器模式)正在下载;索引器前向将很快到达。在此之前,对于上下文 ≤ 2048 tokens,注意力是稠密且准确的。 批量联合 MoE:在预填充(和 MTP 验证)中,批次的每个独特专家都被读取一次,并应用到每个路由到它的位置。 字节级 BPE 分词器在 C 中(GPT-2 风格的 Unicode 属性正则表达式,320k 合并)。 RAM 安全性:专家缓存在启动时根据 MemAvailable 自动调整大小——诚实的峰值预测(工作集、KV、MTP 行、重构缓存),以便内核 OOM 杀手不会触发。 离线 FP8→int4 转换器(c/convert_fp8_to_int4.py):一次下载一个分片(约 5 GB),反量化(128×128 块缩放),重新量化为引擎的容器,删除分片——756 GB 的 FP8 检查点无需在磁盘上一次性存在。 可恢复。诚实的数字(WSL2,12 核心,25 GB RAM,NVMe 通过 VHDX) 磁盘上的指标值模型(int4 容器) ~370 GB 常驻 RAM (稠密, int4) 9.9 GB 加载时间 ~30 秒 聊天期间的峰值 RSS ~20 GB(自动限制) 冷解码成本 ~11 GB 磁盘读取/token(75 层 × 8 专家) 磁盘上限 (VHDX 随机) ~1 GB/s → ~0.05–0.1 tok/s 冷 MTP 投机 (int8 头) 2.2–2.8 tok/前向测量(#8) 这并不快。它是一个 744B 前沿级模型,在一台成本低于一台 H100 风扇的机器上正确回答。 预热缓存、固定热专家和 MTP 大幅降低了有用响应延迟;磁盘的物理特性负责剩下的。 SSD 注意 冷启动在随机读取上压力很大(~11 GB/token),但读取不会实质性磨损 SSD —— colibrì 的流式传输是只读的。沉重使用下的真正担忧是(1)如果系统内存不足,则交换流量(写入会磨损驱动器——保持合理的 --ram 预算;colibrì 的自动预算旨在避免交换)和(2)持续热量:在完全读取循环下运行几个小时会使低价驱动器过热。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡