
2026/03/25 1:02
**ハイプラ ― Apple Silicon向けのストレージ階層認識型LLM推論スケジューラー**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
「Hypura は、Apple Silicon向けのストレージ層を意識したLLM推論スケジューラであり、アクセスパターン、帯域幅コスト、およびハードウェア制限に応じてGPU、RAM、NVMe間でモデルテンソルを分割します。
- 正規化項、埋め込み、およびその他の小さな層 は高速GPUメモリに残し、密集型フィードフォワードネットワーク(約60%)はNVMeからダイナミックプールバッファを通じてストリームされ、自動プリフェッチ深度スケーリングが適用されます。 MoEエキスパート はオンデマンドでロードされ、エキスパートI/Oを約75%削減し、99.5%のキャッシュヒット率を実現します。
- Hypura は 最適な推論モード を自動検出します:フルレジデント(モデルがGPU+RAMに収まる場合)、MoEモデル(Mixtralなど)のためのエキスパートストリーミング、またはLlama 70B のような密集型モデル用の Dense‑FFN ストリーミング。
- M1 Max(32 GB統合メモリ)でベンチマークした結果、31 GB Mixtral 8×7B は約2.2トークン/秒、40 GB Llama 70B は約0.3トークン/秒を記録し、naive llama.cpp 実行時に発生するアウト・オブ・メモリクラッシュを回避します。Qwen 2.5 14B はフルレジデントで約21トークン/秒を達成します。
- インストールには Rust 1.75+ と CMake が必要です(
)。Homebrew タップは近日公開予定です。cargo build --release - Hypura は Ollama 互換の HTTP API(例:
、/api/generate
)をローカルサーバー(/api/chat
)経由で提供し、OpenClaw のようなツールへのドロップイン置き換えを可能にします。hypura serve ./model.gguf
この設計により、開発者は Apple デバイス上で最大 70 GB モデルをローカルにデプロイでき、クラウド推論への依存を減らし、コンシューマー ハードウェアで強力な AI ワークロードを実現できます。
本文
Hypura – Apple Silicon 用のストレージ階層を考慮した LLM 推論スケジューラ
なぜ重要なのか
MacBook Pro や Mac Studio などのコンシューマ向け Mac は、統合メモリと NVMe ストレージが高速である一方、その容量は限定的です。
32 GB の M1 Max では 40 GB のモデルをロードすると OS がスワップ・スラッシングに陥りクラッシュします。
Hypura は、GPU、RAM、NVMe の各階層にテンソルをアクセスパターン・帯域幅コスト・ハードウェア性能に応じて配置することで、物理メモリを超えるモデルでも実行できるようにします。
| モデル | 実行環境 | 速度 |
|---|---|---|
| 31 GB Mixtral 8×7B (32 GB Mac Mini) | 2.2 tok/s | |
| 40 GB Llama 70B | 0.3 tok/s | |
Vanilla | 両方でクラッシュ |
動作原理
-
ハードウェアプロファイリング – GPU のワーキングセット、RAM、NVMe 帯域幅を測定。
-
配置最適化 – 各テンソルを次の階層に割り当てます。
- GPU (Metal) – アテンション層、ノーマライゼーション、埋め込み。
- RAM – GPU のワーキングセットに収まらないオーバーフロー層(
)。mmap - NVMe – 残りのレイヤをオンデマンドでストリーミングし、
,pread
で直接 I/O を行い、プレフェッチも実装。F_NOCACHE
-
推論モード
| モード | 使用時 | GPU に残るもの | NVMe からストリームするもの |
|---|---|---|---|
| Full‑resident | モデルが GPU + RAM に収まる場合 | すべてのテンソル | なし |
| Expert‑streaming (Mixtral) | MoE モデル | 非専門層(約1 GB) | 専門層(約30 GB)をプールバッファとニューロンキャッシュでストリーム(99.5 % ハイレート) |
| Dense‑FFN‑streaming (Llama 70B) | 大規模密結合モデル | アテンション + ノーマル(約8 GB) | FFN テンソル(約32 GB)を動的プールとスケーリングプレフェッチでストリーム |
プールサイズ、プレフェッチ深度、メモリ予算はハードウェアプロファイルから自動計算されるため、手動チューニング不要です。
パフォーマンス
すべてのベンチマークは M1 Max(32 GB 統合メモリ、約5.1 GB/s の NVMe シーケンシャル読み込み)で実施しました。
| モデル | サイズ | GPU | NVMe | モード | Hypura | |
|---|---|---|---|---|---|---|
| Qwen 2.5 14B (Q4_K_M) | 8.4 GB | 8.4 GB | — | full‑resident | 21 tok/s | ~21 tok/s |
| Mixtral 8×7B (Q5_K_M) | 30.9 GB | 1.1 GB | 29.8 GB | expert‑streaming | 2.2 tok/s | OOM |
| Llama 3.3 70B (Q4_K_M) | 39.6 GB | 7.8 GB | 31.8 GB | dense‑FFN‑streaming | 0.3 tok/s | OLM |
重要ポイント
- メモリに収まるモデルは Metal のフルスピードでオーバーヘッドゼロ。
- サイズオーバーのモデルでは、Hypura が「実行できるかクラッシュするか」の差を生む。
インストール
git clone --recurse-submodules https://github.com/hypura/hypura.git cd hypura cargo build --release # Rust 1.75+ と CMake 必須 # バイナリ: target/release/hypura
Homebrew tap は近日公開予定です。
クイックスタート
# ハードウェアをプロファイル(初回のみキャッシュ) hypura profile # GGUF モデルで推論実行 hypura run ./model.gguf --prompt "Hello, world" # インタラクティブチャット hypura run ./model.gguf --interactive # ベンチマーク: Hypura スケジューリング vs ナイーブベースライン hypura bench ./model.gguf # モデル配置計画をロードせずに確認 hypura inspect ./model.gguf
未テストモデルは
で始めてからスケールアップしてください。--max-tokens 10
Ollama‑互換サーバー
Hypura は Ollama と同等の HTTP API を公開し、Ollama を利用するツール(例: OpenClaw)への置き換えが可能です。
hypura serve ./model.gguf # Hypura が Mixtral 8×7B Instruct v0.1 をサーブ中 # エンドポイント: http://127.0.0.1:8080
エンドポイント
| パス | 説明 |
|---|---|
| ヘルスチェック |
| ロード済みモデル一覧 |
| サーバー版 |
| モデルメタデータ |
| テキスト生成(NDJSON ストリーミングまたは単一レスポンス) |
| チャット生成(NDJSON ストリーミングまたは単一レスポンス) |
OpenClaw での利用
{ "models": { "providers": { "ollama": { "baseUrl": "http://127.0.0.1:8080", "api": "ollama" } } } }
または CLI から設定:
openclaw config set models.providers.ollama.baseUrl "http://127.0.0.1:8080"
Hypura はネイティブに Ollama プロトコル(
/api/chat と NDJSON ストリーミング)を実装しているため、互換性のためのシムは不要です。
サーバーオプション
hypura serve <MODEL> [OPTIONS] Options: --host <HOST> バインドするホスト [default: 127.0.0.1] --port <PORT> バインドするポート [default: 8080] --context <N> 最大コンテキスト長 [default: 4096]
アーキテクチャ
Hypura は Cargo ワークスペースで、2 つのクレートから構成されます。
| クレート | 用途 |
|---|---|
| メインバイナリとライブラリ。CLI () とロジック ()。 |
| への FFI バインディング( にベンダリング、CMake ビルド)。 |
主要モジュール:
| モジュール | 用途 |
|---|---|
| GPU/RAM/NVMe 間での LP + グリーディテンソル配置。 |
| 推論エンジン:ブロッキング生成、NVMe スケジューリング、サーバー向けロード。 |
| カスタム GGML バッファ型、プールベースの専門/FFN ストリーミング、ニューロンキャッシュ、評価コールバック。 |
| Axum HTTP ハンドラ(Ollama 互換 API)。 |
| CPU・GPU・メモリ帯域幅・NVMe 循環スループットのハードウェア検出。 |
| A/B ベンチマークハーネス。 |
| テンソル分類(ノーマル、アテンション、MoE 専門層)による配置スコアリング。 |
FAQ
SSD を破壊しますか?
いいえ。Hypura は推論時に SSD からのみ読み取りを行い、書き込みは発生しません。NAND フラッシュセルへの負荷は極めて小さく、ベンチマーク結果の JSON ファイルやオプションで生成される統計情報以外にはほとんど書き込みがありません。
安全性に関する注意点
bench --baseline はモデルが RAM から 4 GB のヘッドルームを差し引いた容量を超える場合はブロックされます。--force を使用する際は自己責任で行ってください。未テストのモデルには必ず --max-tokens 10 で開始してください。
ライセンス
MIT
倫理的注意:
本リポジトリ内のコードは私自身が書いたものではありません。このプロジェクトは、私の指示に従って LLM を活用してタスクを実行する試みであり、多くは Socratic メソッドによるプロンプト作成と NVMe ベース推論への真摯な好奇心から派生しています。