在 M4 Pro Mac Mini 上搭建本地 LLM
Apple Silicon 上的本地 LLM 基础设施
在配备 48GB 统一内存的 M4 Pro Mac Mini 上运行本地 LLM 服务器,可以实现一个私密、成本可预测的 AI 后端,在不依赖云端 API 的情况下处理约 80% 的日常任务。该设置利用 oMLX 进行推理,使用 Tailscale 进行安全的跨设备联网,并结合混合专家模型 (MoE) 和稠密模型,以平衡推理深度与系统性能。
硬件与软件栈
该设置的核心是作为全天候服务器运行的 M4 Pro Mac Mini (48GB RAM)。软件栈旨在实现快速部署和跨设备访问:
- 推理服务器:oMLX,提供带有内置 HuggingFace 浏览器和 KV 缓存持久化到 SSD 的管理面板,从而减少智能体工作流的重新计算时间。
- 网络:Tailscale,创建一个私有的网格网络 (tailnet),将 Mac Mini 连接到 iPhone 和 MacBook,而无需向公共互联网暴露端口。
- 主要模型:
- Qwen3.6-35B-A3B-OptiQ-4bit:用于复杂的推理和深度任务。作为一个 MoE 模型,它拥有 35B 总参数,但每个 token 的激活参数仅为 3B。
- Gemma-4-E4B-it-OptiQ-4bit:轻量级模型,用于常规格式化和简单的聊天任务。
- 客户端接口:
- Hermes:运行在 Mac Mini 上的智能体后端,通过 MacBook 上的桌面客户端和 iOS 上的 Telegram 进行访问。
- Apollo (iOS):通过 oMLX 端点进行类似 Claude 的快速临时查询。
- Raycast AI:集成在 macOS 中用于处理杂项任务。
- Pi:被用作专门的代码编写智能体。
本地模型的内存管理
有效的本地 LLM 部署取决于对总参数量与激活参数量之间区别的理解,特别是在混合专家模型 (MoE) 架构中。
稠密模型 vs. MoE 内存占用
在稠密模型中,每个 token 都会激活所有参数,这意味着一个 4-bit 量化的 27B 模型仅权重就需要约 14GB 的 RAM。 相比之下,一个像 Qwen3.6-35B-A3B 这样的 MoE 模型拥有 35B 总参数,但每个 token 仅有 3B 激活参数。虽然所有 35B 参数都必须驻留在统一内存中(在 4-bit 下占用约 20GB),但在推理过程中的 GPU/媒体内存占用显著降低,类似于一个 6B 的稠密模型。
硬件兼容性检查清单
为了确定模型是否能适配特定的 Apple Silicon 硬件,建议进行以下计算:
- 量化文件大小:4-bit 模型的大小大致等于参数量(以 GB 为为单位,例如 35B $\approx$ 17-20GB)。
- 操作系统开销:减去 6-8GB 用于 macOS。
- 上下文窗口:为 KV 缓存分配 8-16GB 以支持长对话。
- 缓冲:保持 10-15% 的内存缓冲,以防止系统发生 SSD 交换,这会严重降低性能。
本地推理的战略优势
从云端 API 转向本地计算解决了几个运营和财务风险:
- AI 主权与隐私:本地硬件消除了第三方数据泄露的风险,并能抵御政府强制的模型限制或 API 服务条款的突然变更。
- 成本可预测性:本地推理用固定的硬件购买和电力成本取代了波动的按 token 计费模式。
- 性能:本地设置消除了网络往返延迟,为日常任务提供更低的延迟。M4 Pro 的媒体引擎可以为大多数提示词提供近乎即时的响应。
- 无速率限制:本地计算消除了付费 API 层级中常见的限流问题。
社区洞察与性能基准
虽然 M4 Pro 功能强大,但社区讨论强调了关于性能和硬件限制的几个细微差别。
性能数据
用户报告在 M1 Max (32GB) 上使用 oMLX 的类似设置时,记录了以下 token 生成 (TG) 和提示词处理 (PP) 速度:
- Qwen3.6-35B-A3B-OptiQ-4bit:PP 342.6 tok/s, TG 44.4 tok/s。
- Qwen3.6-35B-A3B-mxfp4:PP 389.6 tok/s, TG 47.6 tok/s。
- Qwen3.8-27B-4bit:PP 66.3 tok/s, TG 11.8 tok/s。
反方观点与局限性
社区成员为尝试此设置的人提出了几项关键考量:
"运行一个大型模型在本地,归根结底在于一件事:它在内存中实际需要多少 RAM。这并不完全准确。它既关乎内存容量,也关乎内存带宽。你可以拥有 1TB 的内存,但如果你的内存带宽很差,你的 tok/s 也会很慢。"
其他用户指出,虽然本地模型在 80% 的任务中表现出色,但与专用 H100/B300 集群相比,Apple Silicon 上的预填充 (prefill) 延迟仍可能是一个瓶颈。此外,一些人对使用 Telegram 作为本地模型的前端是否具有隐私优势提出了质疑,因为 Telegram bot 账号并非端到端加密。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch