Ollama Apple Silicon MLX 引擎更新

Ollama 已更新其 MLX 引擎,透過利用 Apple 的統一記憶體與 Metal 支援的 MLX 框架,在 Apple Silicon 上提供更高的效能。這些更新帶來了更高品質的回答、更快的輸出速度以及更低的記憶體使用量。

透過 NVFP4 支援實現更高品質的推論

Ollama 的 MLX 引擎現在支援 NVIDIA 的模型優化格式 NVFP4。這種 4-bit 量化格式透過更緊密地追蹤模型權重的局部動態範圍,與其他 4-bit 格式相比,減少了品質損失。

對於 Gemma 4 12B 模型,與未量化的 BF16 權重相比,NVFP4 在品質損失(以困惑度衡量)上大約減少了一半,且與 q4_K_M 量化格式相比亦然。此外,此項支援使得資料中心與桌上型電腦之間具備了可移植性,因為針對資料中心部署優化的模型現在可以透過 MLX 引擎進行匯入與執行。

提升輸出效能

更新後的 MLX 引擎可提供高達 20% 的輸出速度提升。這項效能增益是透過兩項主要的技術優化實現的:

  1. Kernel Fusion: 使用 MLX 的即時 (JIT) 編譯器功能,將多個操作融合為單個 Metal kernels。
  2. Sampling Efficiency: Ollama 已重新設計其 GPU 支援的採樣機制,使其運作更有效率。

根據基準測試顯示,在 8,300-token 輸入提示詞的 10 次執行平均輸出速度下,NVFP4 在更新後的引擎上生成 token 的速度比 q4_K_M 快約 20%。

透過狀態快照實現優化的 Agent 工作流

為了處理 Agentic 工作負載中提示詞處理的開銷——在這些工作負載中,工具呼叫與重複的對話紀錄往往會迫使模型重新處理相同的上下文,多達數十次——Ollama 引入了快照系統。此系統會在關鍵點儲存模型狀態,以避免冗餘的處理。

快照系統的應用

  • 多個 Agents: 當一個 Agent 將任務移交給子 Agent 或執行多個並行會話時,每個 Agent 都會從其各自儲存的狀態中恢復。常見的上下文(例如系統提示詞與工具定義)僅會被處理一次。
  • 思考型模型 (Thinking Models): 對於會生成 token 但隨後會從歷史紀錄中移除的推理模型,在回答開始前立即擷取的快照,可讓下一輪對話在無需重新處理整個對話過程的情況下恢復。
  • 分支與重試: 當使用者重新生成回答或選擇不同的後續路徑時,引擎會從對話分歧點的快照恢復,而非重新處理整個歷史紀錄。

技術實作

由於滑動視窗注意力機制 (sliding-window attention) 與遞迴層 (recurrent layers) 攜帶了無法倒回的狀態,Ollama 會在關鍵點選擇性且增量地儲存狀態:例如對話分歧處、長提示詞中的間隔點,以及在每次回答之前。這種選擇性的方法在為模型保留記憶體的同時,確保了回應的即時性。

實作與使用

使用者可以透過下載最新版本的 Ollama 並執行 MLX 優化的模型來體驗這些改進。例如,要使用 MLX 引擎執行 Gemma 4 12B:

ollama run gemma4:12b-mlx

若要整合至程式碼 Agent,則使用 ollama launch 指令:

ollama launch pi --model gemma4:12b-mlx

Sources

相關