jundot/omlx

LLM inference server with continuous batching & SSD caching for Apple Silicon — managed from the macOS menu bar

解決的問題

本地 LLM 的使用往往需要在便利性與控制力之間做出權衡。使用者經常在記憶體管理、保持模型載入狀態或在不耗盡系統資源的情況下處理大型上下文方面遇到困難。oMLX 提供了一種在 Mac 硬體上以高性能且易於管理的方式運行 LLM、視覺語言模型 (VLM) 與嵌入模型的方法。

工作原理

oMLX 運行在 Apple Silicon 上,使用受 vLLM 啟發的分層 KV 快取系統。它在 RAM 中維護一個用於快速存取的「熱」層,並在 SSD 上維護一個用於在記憶體滿時卸載資料塊的「冷」層,從而允許在無需重新計算的情況下跨請求重用上下文。該系統使用連續批處理 (continuous batching) 來處理並行請求,並包含一個記憶體保護機制,透過強制執行總記憶體限制來防止系統崩潰。

適用對象

專為希望運行本地 AI 模型(例如使用 Claude Code 進行程式設計或進行通用聊天)的 macOS 使用者 (M1/M2/M3/M4) 設計,同時為開發者提供命令列介面,並為使用者提供用於輕鬆監控與控制的原生 macOS 選單列應用程式。

亮點

  • 分層 KV 快取:在 RAM 與 SSD 之間持久化上下文,使長對話變得切實可行。
  • 多模型服務:在單一伺服器中支援 LLM、VLM、OCR、嵌入模型與重排序器 (rerankers)。
  • macOS 整合:包括用於監控的原生 SwiftUI 選單列應用程式與用於管理的管理儀表板。
  • API 相容性:提供 OpenAI 與 Anthropic API 的即插即用替代方案。
  • 自動化管理:具有 LRU 驅逐、模型固定與每個模型的閒置逾時功能,以優化記憶體使用。