slotstream: 在 48GB Mac 上运行 104GB Qwen3.8-Flash-Next
slotstream 允许 Apple Silicon Mac 用户在显存(RAM)容量远小于模型总大小的硬件上运行 104GB 的 Qwen3.8-Flash-Next (125B MoE, 4-bit) 模型。通过将路由专家(routed experts)从 SSD 流式传输到受管理的内存池中,该工具使得在仅有 8.1 GB 可用内存的机器上进行推理成为可能,尽管性能会随可用 RAM 的大小而变化。
性能与硬件要求
在 48 GB Mac (M5 Pro) 上,slotstream 实现了约 12 tokens/s 的热解码速度,首个 token 的冷启动时间约为 3 秒。系统设计具有弹性,会自动将内存目标大小设定为 33 GB、总 RAM 的 70% 或 Metal 工作集限制中的最小值。
按 RAM 层级估算的性能
| 内存 | 估算速度 |
|---|---|
| 16 GB | ~5 tok/s |
| 24 GB | ~8 tok/s |
| 32 GB | ~10 tok/s |
| 48 GB+ | ~12 tok/s |
磁盘空间是主要的约束条件。 用户需要大约 110 GB 的可用磁盘空间来存储模型权重。由于权重是从 SSD 流式传输的,存储介质的速度直接影响性能;使用外部 USB 磁盘运行模型的用户报告速度低至 0.5 tokens/s。
技术架构:SSD 流式传输
slotstream 避免了加载大型 MoE (Mixture-of-Experts) 模型时通常会出现的内存耗尽问题。虽然标准的 mlx_lm.load() 会尝试将整个模型加载到内存中,但 slotstream 使用了一种自定义的流式传输方法:
- 常驻组件: 稠密主干 (3.8 GB) 和一个 32 GB 的 n-gram 表被保留在内存中。
- 专家流式传输: 68 GB 的路由专家 (每层 512 个) 使用
pread读取到所有 48 层共享的固定缓存槽池中。 - 内存弹性: 系统每 15 秒重新检查一次可用内存,在请求之间调整专家缓存的大小,以便在压力下缩小规模,并在资源充足时扩大规模。
这种架构确保了无论缓存大小如何变化,贪婪解码(greedy decoding)都能保持字节级一致;改变分配的 RAM 量只会影响推理速度,而不会影响输出质量。
安装与 API 兼容性
slotstream 以单个 Swift 二进制文件的形式发布。它需要 macOS 14+ 和 Apple Silicon。
部署
用户可以通过一个 curl 脚本安装该工具,该脚本会将二进制文件放置在 ~/.slotstream/bin 中。该工具包含一个 doctor 命令,用于在下载 104 GB 权重之前预览内存计划和磁盘可用性。
API 与集成
serve 命令在端口 11434 上实现了 Ollama 和 OpenAI 的聊天/生成接口(endpoints)的一个子集。这使得 slotstream 可以与现有的 Ollama 客户端、OpenAI SDK 以及 Open WebUI 配合使用。支持的采样选项包括 temperature, top_p, top_k, min_p, presence_penalty, seed, num_predict, 和 stop。
当前局限性
- 预填充延迟 (Prefill Latency): 长提示词(prompts)的启动速度较慢,因为在生成第一个 token 之前必须处理整个提示词。预填充速度范围从 ~50 tok/s (16 GB Mac) 到 ~125 tok/s (48 GB Mac)。不过,对话中的后续轮次会复用之前的状态,随着对话的增长,首个 token 的生成时间会保持平稳。
- 硬件验证: 虽然该功能源自 48 GB M5 Pro,但针对较小 RAM 层级的性能估算基于测量曲线而非在 16 GB 或 24 GB 硬件上的实际测试。 | OS 兼容性: 安装程序已在 macOS 14 和 15 上进行了测试,但运行时尚未在这些版本上进行充分验证。
社区洞察与不同观点
社区讨论突出了在实现本地 LLM 民主化访问的需求与碎片化实现带来的冗余之间的矛盾。
"There are already a handful of repos doing essentially exactly this... I'd much rather see people collaborate on one of these implementations... instead of producing yet another near-identical repo."
其他用户也指出,虽然 12 tokens/s 的速度是可用的,但流式传输专家模型所需的极高磁盘 I/O 可能会引发对 SSD 磨损的担忧,并且对于使用入门级硬件的用户来说, 8.1 GB 内存底线是一个关键指标。
Sources
相关
- Dispatch
- 项目
- Dispatch
- Dispatch
- Dispatch