MacBook 上 397B MoE:4.4 t/s Flash-MoE 引擎
April 03, 2026
分类:
实用开源项目
Flash-MoE:在 MacBook 上运行 397B 参数,速度达 4.4+ 令牌/秒
想象在你的 MacBook Pro 上运行 3970 亿参数的专家混合 (MoE) 模型,输出质量达到生产级水准,速度为 4.4+ 令牌/秒。这正是 Flash-MoE 实现的——无需 Python、无需框架,仅使用纯 C/Objective-C 和手动调优的 Metal 着色器。
巨兽:Qwen3.5-397B-A17B
这不是理论。项目从 SSD 流式传输 209GB 4 位量化模型,同时提供:
| 配置 | 速度 | 质量 | 磁盘 |
|---|---|---|---|
| 4 位 FMA 内核 | 4.36 t/s | 优秀 | 209GB |
| 4 位基准 | 3.90 t/s | 优秀 | 209GB |
| 2 位专家 | 5.74 t/s | 良好* | 120GB |
*2 位会破坏 JSON/工具调用可靠性
硬件现实检查
MacBook Pro M3 Max:48GB 统一内存、40 核 GPU、17.5GB/s SSD。无需数据中心。
突破性技术
1. SSD 专家流式传输 + "信任操作系统"
每层仅加载 K=4 个活跃专家(每个 ~6.75MB)
OS 页面缓存处理 LRU(自然命中率 71%)
通过 GCD 分派组并行 pread()
无需自定义缓存
经验教训:自定义 Metal LRU、LZ4 压缩和 mmap 表现更差。
2. FMA 优化的去量化内核 (+12% 速度)
// 之前:(nibble * scale + bias) * x
// 之后:fma(nibble, scale*x, bias*x)
3. 延迟 GPU 流水线
CMD3(专家前向) → [延迟]
CMD1: 注意力投影
CPU: 路由 + pread 专家
CMD2: 合并 + 归一化
→ 下一层
4. 手写 Metal 内核
- 4 位/2 位去量化 matvec(分块、SIMD、共享缓存)
- 融合 SwiGLU、RMS 归一化、MoE 合并
- 批处理 GPU 注意力 (Q@Kᵀ, softmax, scores@V)
- GPU RoPE + 去交错
5. BLAS 加速的线性注意力
GatedDeltaNet 使用 cblas_sgemv/sger - 比标量代码快 64%。
他们放弃的(58 个实验)
| 失败方法 | 影响 | 原因 |
|---|---|---|
| LZ4 压缩 | -13% | 解压 > 缓存节省 |
| GPU LUT 去量化 | -2% | 寄存器串行化 |
| 专家预测 | -18% | 缓存污染 |
| mmap 专家 | -5x | 页面故障开销 |
生产就绪
cd metal_infer && make
./infer --prompt "Explain quantum computing" --tokens 100
./chat # 交互式 TUI + 工具调用
安全性:6GB 固定内存占用,为 OS + 页面缓存留下 42GB。在主开发机上无 OOM 风险。
论文
完整技术细节 涵盖 90+ 个实验和 24 小时人类+AI 开发故事。这是 最先进的 Apple Silicon 推理 - 开源、经过实战考验、推动硬件极限。
Stars: 3.2k | Forks: 371 - 社区看到真正创新时就知道。
原始文章:
查看原文