slotstream: 在 48GB Mac 上執行 104GB Qwen3.8-Flash-Next
slotstream 讓 Apple Silicon Mac 使用者能夠在記憶體容量遠低於模型總大小的硬體上,執行 104GB 的 Qwen3.8-Flash-Next (125B MoE, 4-bit) 模型。透過將路由專家(routed experts)從 SSD 串流到受管理的記憶體池中,該工具讓機器在僅有 8.1 GB 可用記憶體的情況下也能進行推論,不過效能會隨可用 RAM 而變化。
效能與硬體需求
在 48 GB Mac (M5 Pro) 上,slotstream 達到的熱解碼(warm decode)速度約為每秒 12 個 token,首個 token 的冷啟動時間約為 3 秒。系統設計為具備彈性,會自動將其記憶體目標設定為 33 GB、總 RAM 的 70%,或 Metal working-set 限制中的最小值。
各 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 個 token。
技術架構:SSD 串流
slotstream 避免了加載大型 MoE (Mixture-of-Experts) 模型時通常會發生的記憶體耗盡問題。雖然標準的 mlx_lm.load() 會嘗試將整個模型載入記憶體,但 slotstream 使用了自定義的串流方法:
- 常駐組件: 稠密主幹(dense trunk, 3.8 GB)和一個 32 GB 的 n-gram 表格會保持在記憶體中。
- 專家串流: 68 GB 的路由專家(每層 512 個)使用
pread讀取到一個跨所有 48 層共享的固定快取插槽池中。 - 記憶體彈性: 系統每 15 秒重新檢查一次可用記憶體,在請求之間調整專家快取的大小,以便在壓力下縮減,並在資源充足時擴展。
這種架構確保了無論快取大小如何如何,貪婪解碼(greedy decoding)都能保持位元組一致性(byte-identical);改變分配的 RAM 量只會影響推論速度,而不會影響輸出品質。
安裝與 API 相容性
slotstream 以單一 Swift 二進位檔的形式發行。它需要 macOS 14+ 以及 Apple Silicon。
部署
使用者可以透過一個 curl 腳本安裝該工具,該腳本會將二進位檔放置在 ~/.slotstream/bin。該工具包含一個 doctor 指令來在下載 104 GB 的權重之前預覽記憶體計畫與磁碟可用性。
API 與整合
serve 指令在 port 11434 上實作了 Ollama 和 OpenAI 的聊天/生成端點(endpoints)的子集。這使得 slotstream 可以與現有的 Ollama 客戶端、OpenAI SDK 以及 Open WebUI 搭配使用。支援的採樣選項包括 temperature, top_p, top_k, min_p, presence_penalty, seed, num_predict, 以及 stop。
目前的限制
- Prefill 延遲: 長提示詞(prompts)的啟動速度較慢,因為在產生第一個 token 之前必須先處理整個提示詞。Prefill 速度範圍從 ~50 tok/s (16 GB Mac) 到 ~125 tok/s (48 GB Mac)。然而,對話中的後續輪次會重複使用先前的狀態,隨著對話增長,首個 token 的產生時間會保持穩定。
- 硬體驗證: 雖然是基於 48 GB M5 Pro 進行開發,但針對較小 RAM 層級的效能預估是基於測量曲線而非在 16 GB 或 24 GB 硬體上的實際測試。
- 作業系統相容性: 安裝程式已在 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 個 token 是可用的,但串流專家所需的極高磁碟 I/O 可能會引發對 SSD 磨損的疑慮,以及對於使用入門級硬體的使用者而言,8.1 GB 的記憶體底線是一個關鍵指標。
Sources
相關
- Dispatch
- 專案
- Dispatch
- Dispatch
- Dispatch