t8/hypura
Run models too big for your Mac's memory
何を解決するか
Hypuraは、Apple Silicon Macで物理メモリ(RAM/GPU)に収まらないほど大きな大規模言語モデル(LLM)を実行できるようにします。消費向けハードウェアの限られたメモリ容量で巨大モデルをロードしようとする際に通常発生するシステムクラッシュや「スワップ・スラッシング」を防ぎます。
動作方法
Hypuraはストレージ・ティアを意識した推論スケジューラとして機能します。モデルアーキテクチャとハードウェア能力を分析し、モデルテンソルを3つのティアに分散します:GPU(Metal)、RAM、NVMeストレージ。
- GPU(Metal): アテンション層、正規化、埋め込みなど、頻繁にアクセスされる重要なコンポーネントを格納。
- RAM: GPUワーキングセットに収まらないオーバーフロー層を保持。
- NVMe: 残りの層を格納し、直接I/Oと事前プリフェッチを用いてフォワードパスの前にオンデマンドでストリーミング。
Mixture-of-Experts(MoE)モデルでは「エキスパート・ストリーミング」を採用し、トークンごとに必要な特定のエキスパートのみをロードすることでI/Oを75%削減します。密度型モデルでは「FFNストリーミング」を用い、フィードフォワードネットワークのテンソルを動的プールバッファ経由でストリーミングします。また、冗長なSSD読み取りを最小限に抑えるためのニューロンキャッシュも搭載しています。
対象ユーザー
Apple Silicon Macを使用し、Llama 70BやMixtral 8x7Bなど、通常では利用可能な統合メモリを超える高パラメータモデルを実行したい開発者やAI愛好家。
特徴
- OOMクラッシュ防止: クランチしたままの llama.cpp では実行不可能なモデルを実行可能に。
- オーバーヘッドゼロ: 既にメモリに収まるモデルは、Metal GPUの最高速度で実行。
- ハードウェア対応: GPU、RAM、NVMe帯域を自動的にプロファイリングし、テンソル配置を最適化。
- Ollama互換: HTTP APIを備えており、Ollamaと統合するツールの即時置き換え可能。
- SSD安全: 推論中に読み取り専用操作のみを実行し、SSDの摩耗を回避。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト