ローカルLLMのCPU・GPU分担計画
Blackwell 96GBとEPYC 9175Fで、非同期処理と対話を分けるLLM導入計画です。60以上のモデルの試行履歴と、未実装のDagster・日次LoRA構想を示します。
計画と試行の状況
Blackwell 96GB と、12ch メモリ帯域を持つ EPYC 9175F で、CPU と GPU の役割を分ける計画を立てました。
計画: CPU は Dagster の冪等・非同期パイプラインで、大きい MoE モデルを動かします。GPU は対話窓口として、より小さい専門モデルを置きます。毎日の Dagster asset から LoRA を作り、対話モデルを更新する構想です。
試行中の構成: ik_llama.cpp で部分オフロードし、メモリ帯域が競合しにくいモデルの組み合わせを探しています。Dagster + LoRA パイプラインは未実装です。
CPUとGPUの役割
CPUの非同期処理
CPU の12ch メモリ帯域で、100B〜400B 級の MoE を非同期で動かす計画です。
- Dagster でパイプラインを冪等に構成する。asset ベースでジョブを管理し、失敗しても再実行で同じ結果が得られる
- 用途はリポジトリ全体の解析、ドキュメント生成、テストコード生成、大規模リファクタリングの思考など、時間をかけて品質を出す仕事
- 即応性は求めない。Fire & Forget で投げて、結果を待つ
MoE は active parameter が小さくても、total parameter が大きいと GPU 1枚に入りません。CPU の12ch メモリ帯域を使い、即応性を求めない処理に回す方針です。
GPUの対話と日次LoRA
GPU は対話窓口に使う予定です。
- パラメータ 30B 前後の、応答性の高いモデルを置く
- fine-tuning で専門性を上げる。自分のコードベース、設計パターン、使う言語に特化させる
- Dagster asset から LoRA アダプタを日次で生成し、ベースモデルに適用する計画です。CPU 側の処理結果を、GPU 側の対話に反映することを目指します
CPU 側の処理結果を LoRA に反映し、GPU 側の対話品質を改善することを狙っています。日次更新の効果はまだ確認していません。
計画時のパイプライン図
CPU (EPYC 12ch):
Dagster Pipeline → MoE 100B-400B (ik_llama.cpp / vLLM)
→ asset: コード解析結果、テスト生成、リファクタ提案
→ asset: LoRA 学習データ
→ 日次 LoRA アダプタ生成
GPU (Blackwell 96GB):
対話サーバー → Dense 30B 級 (vLLM) + LoRA アダプタ
→ Zed MCP / Aider / CLI
→ 即時レスポンス
→ 日次で LoRA 更新(CPU 側の asset から)
部分オフロードの検証
記事時点では ik_llama.cpp の部分オフロードで、CPU と GPU のメモリ帯域が競合しにくい組み合わせを検証しています。
確認する項目
- GPU に載せる重みの量を調整して、対話の応答性と CPU 側の帯域確保のバランスを取る
- 同時に複数モデルを立てるとき、メモリ帯域の競合で両方遅くなるパターンを避ける
- 量子化の選択(GGUF IQ, NVFP4, FP8)がモデルごとに品質と速度にどう影響するかを実測する
ツール構成(現状)
| ツール | 役割 |
|---|---|
| ik_llama.cpp | メインの推論サーバー。GPU 部分オフロード対応 |
| Zed + MCP | 対話フロント。OpenAI 互換 API 経由 |
| Aider | CLI コード編集。DIFF ベースで既存リポジトリ修正 |
| ctree + pathfinder | MCP ツールとしてコンテキスト効率を改善 |
vLLM も計画にありますが、組み合わせを柔軟に変えられる ik_llama.cpp を主に使っています。
モデル試行履歴
2026年1月〜3月に試したモデルの履歴です。cold storage のアーカイブをもとにしています。
2026年1月
| 日付 | モデル | 備考 |
|---|---|---|
| 01/04 | Qwen3-VL-32B-Instruct | GUI Agent、Tool Use 検証 |
| 01/04 | IQuest-Coder-V1-40B-Instruct (GGUF) | SWE-Bench 高スコア、Dense コーディングモデル |
| 01/04 | Hermes-4.3-36B | 指示忠実度、Function Call 安定性検証 |
| 01/05 | gpt-oss-120b (GGUF) | CPU レーン候補、120B Dense |
| 01/05 | Hermes-4-70B-FP8 | 70B FP8、GPU 単体で載るか検証 |
| 01/05 | Llama-4-Scout-17B-16E-Instruct (GGUF) | MoE、17B active |
| 01/09 | Llama-3.3-70B-Instruct-NVFP4 | NVFP4 量子化の品質検証 |
| 01/09 | Llama-4-Scout-17B-16E-Instruct-NVFP4 | NVFP4 版比較 |
| 01/09 | Command-A-Reasoning-NVFP4 | 推論特化モデル |
| 01/09 | IQuest-Coder-V1-40B-Loop-Instruct-NVFP4 | Loop 版 NVFP4 |
| 01/09 | MiroThinker-v1.5-30B | 30B 思考モデル |
| 01/09 | IQuest-Coder-V1-40B-Loop-Instruct | Loop 版オリジナル |
| 01/09 | IQuest-Coder-V1-40B-Instruct | Dense オリジナル |
| 01/11 | Llama-4-Maverick-17B-128E-Instruct (GGUF) | 128 expert MoE |
| 01/11 | plamo-2-translate | 翻訳特化モデル |
| 01/11 | functiongemma-270m-it | 軽量 Function Call テスト |
| 01/11 | gemma-3-270m-it-NVFP4 | 超軽量 NVFP4 |
| 01/11 | gemma-3-27b-it-NVFP4A16 | 27B NVFP4 |
| 01/11 | gpt-oss-20b | 20B Dense |
| 01/11 | gemma-3-27b-it | 27B オリジナル |
| 01/11 | Qwen3-Coder-30B-A3B-Instruct-NVFP4 | MoE コーダー、3B active |
| 01/11 | gpt-oss-120b | 120B オリジナル重み |
| 01/11 | Monstral-123B-v2-NVFP4 | 123B MoE NVFP4 |
| 01/11 | LTX-2 | 動画生成モデル |
| 01/12 | Mixtral-8x22B (imatrix GGUF) | 8x22B MoE |
| 01/20 | Nemotron-3-Nano-30B-A3B-NVFP4 | NVIDIA MoE 30B |
| 01/20 | Qwen3-Coder-30B-A3B-Instruct-FP8 | FP8 版比較 |
| 01/22 | GLM-4.7-Flash | 7B Flash モデル |
2026年2月
| 日付 | モデル | 備考 |
|---|---|---|
| 02/05 | Nemotron-3-Nano-30B-A3B-NVFP4 (nvidia公式) | 公式 NVFP4 再検証 |
| 02/13 | Qwen3-Next-80B-A3B-Thinking (GGUF) | 80B MoE Thinking |
| 02/14 | Step-3.5-Flash (GGUF) | Flash 系 |
| 02/15 | Kimi-K2.5 (GGUF) | 1T MoE 量子化 |
| 02/15 | GLM-5 (GGUF) | GLM 次世代 |
| 02/15 | GLM-4.7-Flash (GGUF) | GGUF 版 Flash |
| 02/15 | GLM-4.7-Flash-Uncensored (imatrix GGUF) | 検閲なし版 |
| 02/15 | Qwen3-Coder-Next (GGUF) | Next 世代コーダー |
| 02/16 | DeepSeek-V3.2-Speciale (GGUF) | V3.2 特化版 |
| 02/16 | gpt-oss-120b-NEO (imatrix GGUF) | NEO imatrix 版 |
| 02/17 | MiniMax-M2.5 (GGUF) | 230B MoE |
| 02/17 | Qwen3-Coder-Next-NVFP4 | NVFP4 版 |
| 02/18 | Step-3.5-Flash (GGUF, ubergarm) | 別量子化 |
| 02/18 | Ace-Step1.5 | 音楽生成モデル |
| 02/18 | Voxtral-Mini-4B-Realtime | 音声リアルタイム |
| 02/18 | FLUX.2-klein-9B | 画像生成 |
| 02/18 | GLM-5 (GGUF, ubergarm) | 別量子化 |
| 02/18 | LFM2-8B-A1B | Liquid Foundation Model |
| 02/19 | LFM2-8B-A1B (GGUF) | GGUF 版 |
| 02/19 | LFM2.5-1.2B-Thinking | 超軽量 Thinking |
| 02/19 | LFM2.5-VL-1.6B | 超軽量 Vision-Language |
| 02/19 | LFM2.5-1.2B-Instruct | 超軽量 Instruct |
| 02/19 | Devstral-2-123B-Instruct (GGUF) | 123B コーディング |
| 02/19 | Qwen3.5-397B-A17B (GGUF) | 397B MoE |
| 02/20 | MiroThinker-v1.5-235B (GGUF) | 235B 思考モデル |
| 02/21 | Qwen3.5-397B-A17B (GGUF, ubergarm) | 別量子化 |
| 02/23 | MiniMax-M2.5 (GGUF, AesSedai) | 別量子化 |
| 02/24 | Kimi-K2.5 (GGUF, ubergarm) | 別量子化 |
| 02/24 | Qwen3-Next-80B-A3B-Instruct-NVFP4 | NVFP4 版 |
| 02/24 | Qwen3-Next-80B-A3B-Thinking-NVFP4 | Thinking NVFP4 |
| 02/25 | Qwen3.5-35B-A3B (GGUF) | 35B MoE |
| 02/25 | Qwen3.5-122B-A10B (GGUF) | 122B MoE |
| 02/25 | Qwen3.5-122B-A10B-NVFP4 | NVFP4 版 |
| 02/25 | Qwen3.5-27B | 27B Dense |
| 02/25 | Qwen3.5-122B-A10B (GGUF, ubergarm) | 別量子化 |
2026年3月
| 日付 | モデル | 備考 |
|---|---|---|
| 03/02 | Nemotron-Nano-9B-v2-Japanese (GGUF) | 日本語特化 |
| 03/02 | Nemotron-Nano-9B-v2-Japanese | オリジナル |
| 03/03 | Qwen3.5-27B (GGUF, bartowski) | GGUF 版 |
| 03/03 | Qwen3.5-27B (GGUF, ubergarm) | 別量子化 |
| 03/06 | pplx-embed-context-v1-0.6b | Perplexity 埋め込み |
| 03/06 | pplx-embed-v1-0.6b | Perplexity 埋め込み |
| 03/06 | pplx-embed-context-v1-4b | 4B 埋め込み |
| 03/06 | pplx-embed-v1-4b | 4B 埋め込み |
傾向
3か月の試行内容を整理しました。
- 1月: 基本的なモデル選定。Dense コーディングモデル(IQuest-Coder 40B)と MoE(Scout, Maverick)の比較、NVFP4 量子化の品質検証が中心
- 2月前半: GLM, Kimi, DeepSeek など中国系モデルの評価が増える。Flash 系の軽量モデルも試行
- 2月後半: Qwen3.5 世代の MoE(397B, 122B, 35B)が中心に。量子化手法ごとの比較(同一モデルの GGUF/NVFP4/FP8 を複数試す)が増える
- 3月: 日本語特化モデル(Nemotron-Nano-9B-v2-Japanese)と埋め込みモデル(Perplexity)の検証に移行
同じモデルを複数の量子化形式で取得しています。ik_llama.cpp の部分オフロードで、GPU / CPU の割り当てと速度にどう影響するかを確認するためです。
今後
ローカルLLM導入に向け、まずモデルの組み合わせを決め、その後に次の処理を実装する予定です。Dagster と日次 LoRA 更新はまだ動いていません。
- ik_llama.cpp の部分オフロードで安定したモデル組み合わせを確定させる
- Dagster で冪等パイプラインを構築し、CPU レーンを非同期処理専用にする
- GPU レーンのベースモデルに対して、Dagster asset からの日次 LoRA 適用を開始する
- ctree + pathfinder の MCP ツールを Dagster asset の入力として組み込む
