世界を動かす技術を、日本語で。

Codex CLIでローカルモデルとしてGemma 4を実行しました

概要

  • Gemma 4のローカル推論 が実用的か、MacBook ProとDell GB10で検証
  • コスト・プライバシー・レジリエンス の観点からローカルモデル導入を検討
  • セットアップの難易度 やトラブルシューティングの詳細な記録
  • ベンチマーク結果 とモデルアーキテクチャの意外な発見
  • 品質重視の結論 と実践的なハイブリッド運用の提案

Gemma 4ローカル推論比較:MacBook Pro vs. Dell GB10

  • 目的 :Gemma 4が日常的なエージェント的コーディングにおいてクラウドモデルの代替となるか実践検証
  • 利用環境
    • MacBook Pro 24GB(M4 Pro、llama.cppによる26B MoE)
    • Dell Pro Max GB10(128GB、NVIDIA Blackwell、Ollama v0.20.5による31B Dense)
    • 両者ともCodex CLIのカスタムプロバイダーとして設定
  • クラウドモデル :GPT-5.4(Codex CLI標準、比較用)

ローカルモデル導入の動機

  • コスト削減 :API利用料の増大回避
  • プライバシー保護 :機密性の高いコードベースの外部送信防止
  • レジリエンス向上 :クラウドAPIの制限や障害、価格変更リスク回避

過去の課題とGemma 4の進化

  • ツールコール機能 の未熟さが障壁
    • 旧Gemmaはtau2-benchで6.6%(約93%失敗)
    • Gemma 4 31Bは86.4%達成、実用レベルへ進化

セットアップ詳細とトラブル

  • MacBook Pro
    • Ollamaはバグ・フリーズで利用不可
    • llama.cpp(Homebrew経由)で動作
      • 重要フラグ :-np 1(スロット数制限)、-ctk/-ctv q8_0(KVキャッシュ量削減)、--jinja(ツールコールテンプレート)、-m(直接パス指定)
      • Codex CLIのweb_search = "disabled"必須
    • セットアップ所要時間 :半日程度、情報が分散・未整理
  • Dell GB10
    • vLLMはPyTorchバージョン不一致で失敗
    • llama.cpp(CUDAビルド)はCodex CLIとの互換性問題
    • Ollama v0.20.5で即動作
      • SSHトンネルでMacから利用
    • セットアップ所要時間 :1時間程度(モデルDL待ち含む)

ベンチマークと品質比較

  • タスク :parse_csv_summary関数の実装・テスト生成・実行
  • 結果
    • GPT-5.4 :型ヒント・例外処理・補助関数も完璧、65秒、初回全テスト合格
    • GB10 31B Dense :型ヒント・bool判定はなし、堅実な実装、7分、初回全テスト合格
    • Mac 26B MoE :デッドコード残存、型推論ループの書き捨て、テスト5回失敗、10回のツールコール、4分42秒

モデルアーキテクチャによる速度差の理由

  • Macが5.1倍速い (52 tok/s vs 10 tok/s)
    • MoE(Mixture of Experts) :1トークンあたり3.8Bパラメータのみ活性化(1.9GB分)
    • Dense :毎トークン31.2Bパラメータ全読み込み(17.4GB分)
    • 同じメモリ帯域 でも、MoEは圧倒的に軽量・高速
  • プロンプト処理速度も僅差 (531 tok/s vs 548 tok/s)

最大の発見

  • トークン生成速度よりモデル品質が重要
    • Macは5倍速でもリトライやエラーで時短効果限定
    • 品質が高いモデルは一発で正解→結果的に最速
  • ローカルでも実用可能な時代へ
    • Gemma 3→Gemma 4のツールコール精度向上が決定的
    • ハイブリッド運用推奨 :ローカルは反復作業・プライバシー重視、クラウドは複雑なタスク

実践者向けセットアップTips

  • Apple Silicon
    • Gemma 4はOllama非推奨、llama.cpp + --jinja必須
    • Codex CLI:web_search = "disabled"、-mはGGUF直指定
    • コンテキスト32,768以上、KVキャッシュは-ctk/-ctv q8_0で量削減
  • NVIDIA環境
    • Ollama v0.20.5が安定、codex --oss -m gemma4:31b
    • リモート利用時はSSHトンネルでポート転送
  • タイムアウト設定 :stream_idle_timeout_msを1,800,000以上に
  • llama.cppのバージョン固定 :ビルドごとに速度大幅変動の報告あり

ベンチマーク条件

  • 日付 :2026年4月12日
  • ソフトウェア :Codex CLI v0.120.0
  • Mac :llama.cpp ggml 0.9.11、gemma-4–26B-A4B-it Q4_K_M
  • GB10 :Ollama v0.20.5、gemma-4–31B-it Q4_K_M
  • クラウド :GPT-5.4(高推論モード)
  • 同一プロンプト・同一自動実行コマンドで比較

Hackerたちの意見

今、M3 Ultra(48GB RAM)でlm studio(https://lmstudio.ai/)とOpencodeを使ってgoogle/gemma-4-26b-a4bを試してるんだけど、うまくいってるみたい。Opencodeのプロンプトが動くようにコンテキストサイズを65536に増やさなきゃいけなかったけど、他には特に問題はないよ。メモリが少ないM3 Maxでも同じことを試したけど、Opencodeに役立つくらいコンテキストサイズを増やせなかった。Zedとの統合もACP経由で簡単だし、今のところは主に簡単なコードレビューや小さなフロントエンド関連のコードスニペットを生成してる。

M4 Maxと64GBのMacBook Proで同じことやってるよ。最近のLM Studioのアップデート(0.4.11+1)までは問題があったけど、ツール呼び出しがうまくいかなかったんだ。今はcodexとopencodeの両方がちゃんと動いてるみたい。

私も似たようなセットアップしてる。pi-coding-agent [0]をチェックする価値あるかも。システムプロンプトとツールはほとんどオーバーヘッドがないよ。(https://www.npmjs.com/package/@mariozechner/pi-coding-agent#...

ggufとmlx、どっちがいいかな?編集:コミュニティのmlxを試してみたけど、lm studioがまだ読み込みをサポートしてないって言ってた。

私もM1 MacbookでLMStudioをXCodeに統合してmlxバージョンを使って同じことをやった。コンテキストサイズを上げないといけなかったけど、かなり控えめなiOSコードベースに対して実行したら、あまりうまくいかなかった。途中でダメになっちゃった。変だな。結構いいチャットボットだけど、他のコードに対してはうまくいくかもしれないけど、XCodeでは私には役に立たなかった。

このモデルをAMD RX7900XTXの24GB VRAMで動かしてるんだけど、最大4つの同時チャットと512Kのコンテキストウィンドウを使ってる。めっちゃ速いし(約100 t/s)、瞬時に反応するし、すごく使える感じ。最近はClaude Codeを使うことが少なくなってきたよ。

もう試したか分からないけど、俺の経験ではGLM FlashとQwenモデルの方がGemmaよりずっと良いよ。俺は24GBのGPUを使ってるから、君の環境とは違うかもしれないけど、あんまり変わらないと思うよ。

コーディングに関しては、Q6_Kより悪い量子化を使う意味はないって、俺の経験上思う。もっと量子化されたモデルはミスが増えるし、テキスト処理ならまだしも、コーディングには向いてないよ。

ほとんどの人がそれに気づいてないと思う。トークンの質は量よりも重要だよ。いつもみんなにはできるだけ高い量子を使うように言ってるけど、メモリ容量が足りない時は下げるしかないね。

予想外だった発見:モデルの質はエージェントコーディングにおいてトークン速度よりも重要だ。これが明らかじゃなかったのが本当に驚きだよ。それに、コンテキストサイズを32kみたいに制限してトークン生成速度を半分にする代わりに、--cpu-moeを使ってMoEの処理をCPUにオフロードできる。

毎日codexを使ってる人には、これが明らかじゃないのがさらに不思議だよね。制限の原因は、LLMが無駄なことにこだわったり、考えすぎて決断できなくなることなんだ。生のスピードが本当に重要なのは、たくさんの新しいコードを追加しようとしてる時だけだよ。でも、トークン制限の速度でそれをやってたら、AIのクソコードベースの特異点にすぐに近づいちゃうよ。

そうだね、すごく疲れてる時にコーヒーを飲むみたいな感じ。結局まだ疲れてるけど、ただ「速く」なるっていう変な感覚。

Hacker Newsで議論の続きを見る