26Bモデルが8GB MacBook Airで動く——その衝撃
2026年7月29日、独立系iOS/MetalエンジニアのAndrey MikhaylovがリリースしたTurboFieldfareがHacker Newsで1位(218ポイント)を獲得した。このプロジェクトが注目を集めた理由は単純明快だ:26BパラメータのGemma 4 26B-A4B命令チューニングモデルを、最も安価な8GB MacBook Airで約2GBのメモリ消費で動作させるという、従来の常識を覆す成果を達成したからだ。
筆者もこれまでGemma 4をローカルで動かす実践ガイドやGemma 4 12Bガイドを公開してきたが、26B MoEモデルのローカル実行は「最低でも16-18GBの空きメモリが必要」という壁が常に存在していた。TurboFieldfareはこの前提を根本から覆す。
TurboFieldfareのGitHubレポジトリはdrumih/turbo-fieldfareで公開されており、コードはApache 2.0ライセンス(モデル重みはGoogle Gemma規約に従う)。
なぜ2GBで動くのか——MoEとSSDストリーミングの巧妙な設計
Gemma 4 26B-A4Bの構造
Gemma 4 26B-A4BはMixture-of-Experts (MoE) アーキテクチャを採用している。「A4B」は Active 4 Billion の略であり、26Bの総パラメータのうち、各トークンに対して実際に活性化されるのは約15%(約3.88B) に過ぎない。残りの85%のパラメータ(エキスパート重み)は、トークンごとにルーターが選択したエキスパートだけが使われる。
従来のOllamaやLM Studioなどの推論フレームワークは、この「活性化率15%」という特性を無視し、全14.3GBの重みをRAMにロードしていた。24GB以上のMacなら問題ないが、16GB以下のマシンではメモリプレッシャーが発生し、快適な動作は期待できない。
TurboFieldfareの3つの革新
TurboFieldfareはこの「15%しか使わないのに100%をRAMに乗せる」という非効率に、3つの技術で挑戦する:
-
常駐コアの最小化:全モデルのうち、共有コア(1.35GB)とFP16 KVキャッシュ(4Kコンテキスト分) のみをRAMに常駐させる。ここに約2GBが使われる。
-
SSDからのエキスパートストリーミング:ルーターが選択したtop-8エキスパートの重みを、必要になった瞬間にSSDからストリームする。各トランスフォーマー層には16スロットのLFU(Least Frequently Used)キャッシュが用意され、同一エキスパートが連続して選択された場合の読み取りを最適化する。測定によると、同一エキスパートが次のトークンでも再選択される確率は約41%、2トークン以内では約57%に達する。
-
GPU/CPUのオーバーラップ実行:Metalが常駐重みを使ってアテンションとルーター演算を実行している間に、CPUがルーターのtop-8エキスパートIDを元にキャッシュミスを計算し、並列
pread呼び出しで欠落エキスパートをMetal可視バッファに読み込む。Metalが共有エキスパートの演算を終えた時点でルーティング先のエキスパート重みが準備完了しており、待ち時間ゼロで合成演算に移行する。
この設計により、mmapを使ったナイーブな実装(約0.50 tok/s)から8〜12倍の改善(4-6 tok/s) を達成している。開発者は103件の実験結果をレポジトリ内で公開しており、mmap、madvise、F_RDADVISE、Markovエキスパート予測器、ディスク再配置など失敗した試行も含めた「実験ノート」そのものが貴重な知見となっている。
パフォーマンスベンチマーク
TurboFieldfareの実測値はハードウェアによって大きく変わる。ボトルネックがメモリ帯域幅からSSDスループットに移行する点が特徴的だ。
| ハードウェア | デコード速度 (tok/s) | 備考 |
|---|---|---|
| M2 MacBook Air (8GB) | 5.1 – 6.3 | 8GBマシンの限界。非同期タスクには十分実用的 |
| M5 Pro (24GB) | 31 – 35 | 十分なRAMによりページキャッシュが効き、実質的なディスクI/Oが減少 |
| M4 Max (64GB) | ~48 (コミュニティ報告) | ほとんどのエキスパートがページキャッシュに常駐 |
重要なのは、「未使用RAM=ディスクキャッシュ」という点だ。 マシンに余剰RAMがあれば、TurboFieldfareはOSのページキャッシュを活用して実質的なディスク読み取りを最小化する。一方、RAMが逼迫している環境ではトークン速度が生のSSD速度に近づく。
プリフィルは128トークンのチャンクに分割され、1回のエキスパートフェッチが複数行の処理に再利用される。デコードはトークン単位のルーティングループとなる。
セットアップガイド:4コマンドで始める
TurboFieldfareはmacOS 26+、Metal 4、Swift 6.2+、Apple Silicon(arm64のみ)が必要。Xcode 26のインストールが前提となる。
Macアプリ(推奨)
git clone https://github.com/drumih/turbo-fieldfare.git
cd turbo-fieldfare
swift build -c release
open .build/release/TurboFieldfareMac
初回起動時はDownloadボタンをクリックしてモデルをダウンロード(約15GB、.gturbo形式に約14.3GBにリパック)。インストーラはHugging Faceから必要なバイトレンジだけをストリームし、完全なチェックポイントをメモリ上に展開することなく直接.gturboレイアウトに変換する。
ダウンロード完了後、Load Model → プロンプト入力 → Generate の3ステップで会話が始まる。
CLI版
# モデルのインストール
swift run -c release TurboFieldfareRepack \
--output scratch/gemma4.gturbo --overwrite
# チャット
swift run -c release TurboFieldfareCLI \
--model scratch/gemma4.gturbo \
--messages-file messages.json
# 生テキスト補完
swift run -c release TurboFieldfareCLI \
--model scratch/gemma4.gturbo \
--prompt "日本の首都は"
CLIでは--temperature(デフォルト0.2)、--top-k(64)、--top-p(0.95)、--repetition-penalty、--seed、--stopなどのオプションが利用可能だ。
OpenAI互換ローカルサーバ
TurboFieldfareの最も実用的な機能の1つが、ループバックOpenAI互換サーバである。
swift build -c release --product TurboFieldfareServer
.build/release/TurboFieldfareServer --model scratch/gemma4.gturbo
# http://127.0.0.1:8080/v1 で待機
このエンドポイントはChat Completions API、ストリーミング、関数ツール宣言をサポートしており、既存のOpenAIクライアントコードのベースURLをhttp://127.0.0.1:8080/v1に変更するだけで利用できる。リモート接続は設計上拒否されるため、APIキーもTLSも不要で、データがマシンから流出することはない。
例えばVS CodeのContinue拡張やOpenCode(Kimi K3の記事で紹介)のカスタムエンドポイントとして設定すれば、クラウドAPI費用ゼロでコーディング支援が可能になる。
既存手法との比較
| 手法 | 必要RAM | 対応モデル | 速度 (M2 Air) | セットアップ |
|---|---|---|---|---|
| Ollama + Gemma 4 26B Q4 | ~16-18GB | 全Gemma 4 | 読み込み時にOOM | ollama pull |
| MLX + Gemma 4 26B | ~15GB | Gemma + MLX対応 | ~5 tok/s (全量ロード) | pip install mlx |
| LM Studio | ~16-18GB | GGUF全般 | 〜5-8 tok/s | GUI |
| TurboFieldfare | ~2GB | Gemma 4 26B-A4Bのみ | 5.1-6.3 tok/s | Swift build |
TurboFieldfareが対応するモデルはGemma 4 26B-A4B一つだけであり、汎用性ではOllamaに劣る。しかし「26BクラスのMoEモデルを8GB Macで動かす」というユースケースに特化した場合、現時点で唯一の実用的な選択肢となる。
注意すべき点として、このSSDストリーミング手法はMoEモデルにのみ有効である。Llama 3やMistralなどのDenseモデルでは全パラメータがすべてのトークンに関与するため、同様の手法は適用できない。一方、QwenのMoEバリアントなど他のMoEモデルへの展開は原理的に可能であり、今後のコミュニティによる移植が期待される。
技術的制約と注意点
TurboFieldfareを導入する前に認識しておくべき制約をまとめる:
| 項目 | 制約 |
|---|---|
| 対応モデル | Gemma 4 26B-A4B(命令チューニング版)のみ。他のGemmaサイズやモデルファミリーは非対応 |
| モダリティ | テキストのみ。画像・音声・動画の入力は不可 |
| ハードウェア | arm64 Apple Silicon専用。Intel Macや非Apple環境では動作しない |
| 並行プロセス | モデルを所有するプロセスは同時に1つだけ |
| OS要件 | macOS 26 + Metal 4必須(macOS 25ではアップグレードが必要) |
| SSDの負荷 | 読み取りは実質的にNANDを摩耗させないが、一晩中の連続デコードではファンレスAirの熱スロットリングに注意 |
ローカルLLMを利用したコーディングエージェント環境の構築でも指摘した通り、ローカル推論の実用性はタスクの性質に大きく依存する。5-6 tok/sはリアルタイム対話には遅いが、バッチ文書分析、コードレビュー、プライベートQ&A、コンプライアンス重視の内部ツール用途では十分実用的な速度だ。
比較:ローカルLLM推論の2026年
TurboFieldfareの登場は、ローカルLLMのエコシステムにおける興味深い位置づけを持つ。2026年現在、ローカル推論の手法は大きく分けて3つの方向に分化している:
- Ollama / llama.cpp(汎用GGUFエコシステム)— あらゆるモデルを手軽に実行。ただしRAM消費は素直。
- MLX(Appleネイティブ最適化)— Metal Performance Shaders経由で高いトークン速度。全量ロードが前提。GLM-5.2の2bit量子化ガイドなどで紹介した通り、量子化技術の進歩によりローカル実行の敷居は着実に下がっている。
- TurboFieldfare(MoE特化型SSDストリーミング)— 速度よりメモリ制約の突破に特化。26Bクラスを8GBマシンで動かす唯一の方法。
Ollamaが「RAMに収まるモデル」に$65Mの資金を集めたのに対し、TurboFieldfareは「RAMに収まらないモデル」に焦点を当てている——この対比は業界の方向性を象徴している。
AMD Ryzen AI Haloの200BローカルデモやThinking Machines LabのInkling、そして中国のオープンウェイト戦略が示す通り、2026年のトレンドは「より大きなモデルを、より制約のある環境で動かす」方向に確実に進んでいる。TurboFieldfareはこの流れの最先端に位置するプロジェクトと言える。
まとめ
TurboFieldfareが示したのは、MoEモデルの「15%活性化」という構造的特性をハードウェアレベルで活用するという、シンプルでありながら見落とされがちなアイデアの力だ。Ollama、MLX、llama.cppのいずれも行わなかった「エキスパートのSSDストリーミング」というアプローチは、8GB MacBook Airでも26Bクラスのモデルが動作するという事実を証明した。
現在はGemma 4 26B-A4Bという単一モデルに特化しているが、MoEアーキテクチャを採用するモデルは増加傾向にある。同様の手法がQwenのMoEバリアントや今後のオープンウェイトMoEモデルに応用されれば、ローカルLLMの「RAMの壁」はさらに低くなるだろう。
ローカル環境で26Bクラスのモデルを動かしたいが、16GB以上のメモリを確保できない——そんな開発者にとって、TurboFieldfareは2026年7月時点で最も実用的な選択肢の一つである。Apache 2.0ライセンスで公開されており、今後のコミュニティによる発展も期待できる。
この記事はAIによって生成され、人間の編集を経て公開されています。 Appwright AI は AI によるコンテンツ制作の可能性を探求する実験的プロジェクトです。