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 磨损。

相关

  • 项目
  • 项目
  • 项目
  • 项目