t8/hypura

Run models too big for your Mac's memory

解決的問題

Hypura 允許使用者在 Apple Silicon Mac 上執行超出機器物理記憶體(RAM/GPU)容量的大型語言模型(LLM)。它可防止在消費級硬體記憶體容量有限的情況下載入大型模型時通常發生的系統當機與「交換抖動」(swap-thrashing)。

工作原理

Hypura 作為一個具備儲存層級感知能力的推論排程器。它分析模型架構與硬體能力,將模型張量分布在三個層級:GPU(Metal)、RAM 與 NVMe 儲存。

  • GPU(Metal): 儲存關鍵且頻繁存取的元件,如注意力層、歸一化層與嵌入層。
  • RAM: 保存無法放入 GPU 工作集的溢出層。
  • NVMe: 儲存剩餘的層,透過直接 I/O 與預取機制在前向傳播前按需串流傳輸。

對於混合專家(MoE)模型,採用「專家串流傳輸」,僅載入當前 token 所需的特定專家,將 I/O 降低 75%。對於密集模型,採用「FFN 串流傳輸」,透過動態池緩衝區串流傳輸前饋網路張量。還包含一個神經元快取,以最小化對 SSD 的重複讀取。

適用對象

希望在 Apple Silicon Mac 上執行高參數模型(如 Llama 70B 或 Mixtral 8x7B)但受限於可用統一記憶體的開發者與 AI 愛好者。

主要亮點

  • 防止 OOM 崩潰: 使原本在 vanilla llama.cpp 中會崩潰的模型可執行。
  • 零開銷: 已經能裝入記憶體的模型可全速運行在 Metal GPU 上。
  • 硬體感知: 自動分析 GPU、RAM 與 NVMe 帶寬,優化張量分佈。
  • Ollama 兼容: 內建 HTTP API,可作為 Ollama 集成工具的即插即用替代品。
  • SSD 安全: 推論期間僅執行讀取操作,避免 SSD 磨損。

相關

  • 專案
  • 專案
  • 專案
  • 專案