40 ポイント 投稿者 GN⁺ 16 일 전 | 6件のコメント | WhatsAppで共有
  • Gemma 4をクラウドではなくローカルのCodex CLI環境で実行し、ツール呼び出しの性能と安定性を検証した事例で、GPT-5.4と比べてコスト・プライバシー面の利点を確認
  • Mac(M4 Pro) 24GBでは26B MoE、NVIDIA GB10 128GBでは31B Denseを用い、それぞれllama.cppOllamaを使って同一のコード生成タスクを実行し、設定差による性能を比較
  • ツール呼び出し成功率が6.6%から86.4%に向上し、ローカルモデルの実用可能性が実証され、GB10環境では完全なコード生成を達成
  • Macは5.1倍高速なトークン生成速度を示したが、メモリ制約と量子化設定のため反復的な試行が必要で、GB10は遅いものの初回試行で成功
  • 結果としてローカルモデルでも実務レベルのコード生成が可能であり、プライバシー重視のローカル処理と複雑な作業のクラウド切り替えを併用するハイブリッドアプローチを推奨

ローカルモデルへ移行した動機

  • コストの問題として、Codex CLIを1日に複数セッション、時には並列で実行する中でAPI料金が積み上がる
  • プライバシー要件として、一部のコードベースは外部サーバーへ送信できない
  • 安定性確保の必要性として、クラウドAPIにはスロットリング・障害・価格変更のリスクがある
  • 以前ローカルモデルを試さなかった理由は**ツール呼び出し(tool calling)**ができなかったためであり、Codex CLIの核心的価値は、モデルがファイル読み取り、コード作成、テスト実行、パッチ適用を行える点にある
  • 以前のGemma世代はtau2-benchの関数呼び出しベンチマークで6.6%(100回中93回失敗)だったが、Gemma 4 31Bでは**86.4%**まで跳ね上がり、試す価値が生まれた

Macでの設定手順

  • Ollamaから始めたが、v0.20.3ではGemma 4のツール呼び出し応答がtool_calls配列ではなくreasoning outputへ誤ってルーティングされるストリーミングバグが発生
  • Apple SiliconでGemma 4を使うと約500トークン超のプロンプトでFlash Attention freezeが発生し、Codex CLIのシステムプロンプトは約27,000トークンのため事実上利用不能
  • llama.cppへ切り替えてHomebrewで導入し、動作するサーバーコマンドには6つの重要フラグが必要
    • -np 1: スロットを1つに制限。複数スロットはKVキャッシュメモリを倍増させる
    • -ctk q8_0 -ctv q8_0: KVキャッシュ量子化により940MBから499MBへ削減
    • --jinja: Gemma 4のツール呼び出しテンプレートに必須
    • -mにはGGUFパスを直接指定する必要があり、-hfフラグを使うと1.1GBのビジョンプロジェクターが自動ダウンロードされ、OOMクラッシュを引き起こす
  • Codex CLI設定ではweb_search = "disabled"が必須。llama.cppが拒否するweb_search_previewツールタイプをCodex CLIが送信するため

GB10での設定手順

  • vLLM 0.19.0はPyTorch 2.10.0ベースでコンパイルされているが、aarch64 Blackwell(compute capability sm_121)向けCUDA対応PyTorchは2.11.0+cu128しかなく、ABI不一致ImportErrorが発生
  • llama.cppをCUDA付きでソースビルドするとコンパイルとベンチマークは通るが、Codex CLIのwire_api = "responses"が送る非関数ツールタイプをllama.cppが拒否
  • Ollama v0.20.5で成功。Apple Siliconで発生したストリーミングバグはNVIDIAでは再現しなかった
    • ollama pull gemma4:31bを実行後、SSHトンネルでポート11434をMacへフォワード(Codex CLIの--ossモードがlocalhostしか確認しないため)
    • codex --oss -m gemma4:31bでテキスト生成とツール呼び出しの両方が初回試行で動作
  • Macの設定には午後の大半を要した一方、GB10はモデルダウンロード待ちを含めても約1時間で完了

ベンチマーク結果

  • 3つの構成すべてに同じタスクを付与: codex exec --full-autoで**parse_csv_summary** Python関数を作成し、エラーハンドリングを含め、テストを書いて実行
  • GPT-5.4(クラウド): 型ヒント、適切な例外チェイニング、ブール型検出、整理されたヘルパー関数を含むコードを生成し、5つのテストが初回で通過、65秒で完了、後処理の整理も不要
  • GB10 31B Dense: 型ヒントやブール検出はないが堅牢なエラーハンドリング、デッドコードなし、3回のツール呼び出しで5つのテストが初回通過、7分所要
  • Mac 26B MoE: 実装部にデッドコードが残り、型推論ループを書いたあと放置し、その下に 'Actually, let's simplify' コメントを付けて書き直し、テストファイル作成に5回の試行が必要
    • 毎回異なるheredocエラーが発生: fileryptfile_path, encoding=' 'utf-8'(空白挿入), fileint(file_path) など
    • GB10が3回で完了した作業に10回のツール呼び出しを要した
    • この結果は24GB Q4_K_M Codex CLI環境でのものであり、Gemma 4のApple Silicon全般に対する一般的評価ではない

速度分析: Macが予想より速かった理由

  • llama-benchで同じコンテキスト長における両マシンを測定したところ、MacはGB10よりトークン生成が5.1倍高速
  • 両マシンとも273 GB/s LPDDR5Xメモリ帯域幅だが、トークン生成はメモリ帯域幅制約の処理
    • 31B Denseは各トークンごとに312億個の全パラメータを読み込む(約17.4GB)
    • 26B MoEは各トークンごとに38億個のみが有効化される(約1.9GB)
    • 同一帯域幅でMacは52 tok/s、GB10は10 tok/sを記録
  • プロンプト処理速度も予想に反してMacが健闘: 8KコンテキストでMac 531 tok/s vs GB10 548 tok/s、MoEの疎活性化がプロンプト処理にも有利に働いた

重要な教訓: トークン速度より初回成功率

  • Macはトークン生成が5.1倍速いが、最終完了時間は30%短縮にとどまる(4分42秒 vs 6分59秒)
  • 時間差の要因は再試行: 10回のツール呼び出し vs 3回、5回のテスト作成失敗、モデルが片付けなかったデッドコード
  • クラウドモデルはこれをさらに明確に示す。最速でトークン使用量も最小、修正パスも不要で、5/5を65秒で完了
  • それでもローカルは実用的であり、両マシンともテストを通る動作コードを生成できた
  • Gemma 3(ツール呼び出し6.6%)からGemma 4(86.4%)への品質差が決定的な転換点であり、「動かない」から「動く」への段階がローカルのエージェント型コーディングを実用化する転機となった
  • Macの結果に関する補足: Q4_K_Mは24GBマシンでメモリに収まる最高量子化であり、より余裕のあるApple Siliconで高い量子化を用いて再実行すれば結果が変わる可能性がある
  • ハイブリッドアプローチも可能: codex --profile localで反復作業やプライバシー機微な作業を処理し、複雑な作業はクラウド既定値を使う。Codex CLIのプロファイルシステムなら切り替えはフラグ1つ

設定時の実用的なヒント

  • Apple Silicon: OllamaはGemma 4では使えず、llama.cpp + --jinjaを推奨
    • Codex CLIプロファイルでweb_search = "disabled"を設定
    • -mでGGUFパスを直接指定し、-hfは使わない
    • コンテキストは32,768に設定(Codex CLIのシステムプロンプトに最低27,000トークン必要)
    • KVキャッシュ量子化: -ctk q8_0 -ctv q8_0
  • NVIDIA GB10: Ollama v0.20.5が最初に安定動作した経路で、codex --oss -m gemma4:31bを使用。リモートマシンならSSHでポート11434をトンネリング
  • プロバイダー設定ではstream_idle_timeout_msを最低1,800,000に設定する必要がある。Macでは単一のツール呼び出しサイクルに1分39秒かかり、既定タイムアウトだとセッションが終了する
  • llama.cppはバージョン固定を推奨。ビルド間で3.3倍の速度低下が報告されており、ベンチマークが一晩で変動しうる

6件のコメント

 
tsboard 15 일 전

会社で H100 2枚を使って Gemma4-31B を運用してみたところ、

  1. 回答品質はそれなりに良く、日本語もよくできます。
  2. ツール実行の判断や、実行後の結果の整理も上手です。
  3. ただし、あくまで 31B パラメータを踏まえると驚きだ、というレベルであって、当然ながらより大きなパラメータを持つモデル(例: MiniMax-M2.5)と比べると、回答の総合的な品質などで劣るのは事実です。

全体的に、小さくて機敏な動作を求めるなら Gemma4 で十分だと思います。私は GPT-OSS-120B → Qwen3.5-35B-A3B に置き換えたあと、今は Gemma4-31B に落ち着きましたが、かなり満足しています。このまま使い続けることになりそうです.

 
kaydash 15 일 전

えっ、Web検索が使えないなんて! searxng を構成しても使えないんですか?

 
ysm0622 15 일 전

https://github.com/ysm-dev/skills/blob/main/skills/web-search/SKILL.md

このスキルの代わりに使ってみてください(笑)

 
yangeok 16 일 전

日本語もちゃんと動くのか確認してみたいですね

 
GN⁺ 16 일 전
Hacker Newsのコメント
  • Gemma 4 26Bは、同じパラメータ規模のモデルの中では本当に例外的な性能を示していた
    内部ベンチマークではGPT 5.2、Gemini 3 Pro Previewと近いスコアを出していたが、エージェント型コーディングと非コーディングの意思決定領域では弱かった
    ツール使用、反復的改善、大規模コンテキスト管理などでスコアが低く、むしろツールを使うべき状況では性能が下がっていた
    おそらく一般的なハーネスやベンチマークにオーバーフィットしているようだ。それでもMシリーズMacbookでの速度は驚異的
    ベンチマークはgertlabs.comで確認できる

    • 自分の「hello world」テストでは失敗した
      「1次元bin fitting計算機を単一のWebページとして実装せよ」という課題だったが、Qwen3.5、Nematron、Step 3.5、gpt-ossは通過した一方でGemmaはだめだった
    • 全体としては優れたオープンウェイトモデル
      ただ、自分のM5ではGPT-OSSより単純なコーディングミスを頻繁に起こした。それでも全体としては近いレベル
    • Gemma 31Bが26B-A4Bよりスコアが低かったのは意外だった
  • 「モデル品質がトークン速度より重要だ」という結果に驚いたという声があった
    実際には当然の話に聞こえる。コンテキストサイズを32kに制限する代わりに、--cpu-moeオプションでMoE演算をCPUにオフロードすることもできる

    • トークン速度は結局、作業完了までの速度にしか影響しないのではと思う
    • 疲れているときにコーヒーを飲む感覚。相変わらず疲れているが、ただ「速く」動いているだけという感じ
    • Codexを毎日使う立場からすると、速度よりもモデルが無駄なループに陥らないことのほうがはるかに重要
      トークン速度だけが速ければ、結局「AIスロップコードベース」が爆発的に増えるだけだろう
  • 自分はいまM3 Ultra(48GB RAM)でLM StudioとOpencodeを使ってgoogle/gemma-4-26b-a4bを動かしている
    コンテキストを65536まで増やす必要はあったが、うまく動いている。ZedやACPとも簡単に連携できる
    主に簡単なコードレビューやフロントエンドコード生成に使っている

    • 自分も似たような環境。pi-coding-agentを試してみるといい
      システムプロンプトとツールオーバーヘッドが2kトークン未満なので、プリフィル遅延がかなり短い
    • AMD RX7900XTX(24GB VRAM)で4つのチャットを同時に動かし、512Kコンテキストで使っている
      速度は約100t/sでほぼ即時応答に近く、Claude Codeを使う頻度がだんだん減ってきた
    • M1 MacbookでMLX版をXCodeに統合して動かしてみたが、小さなiOSコードベースでも途中で止まってしまった
      チャットボットとしては悪くないが、XCode連携には不向きだった
    • Runpod GPUで31Bフル版を動かしてみたが、印象的だった
      いまはGoogle APIの1日1500回の無料リクエストを活用している
    • M4 Max(64GB)MacBook Proで同じ設定を使っている
      LM Studio 0.4.11+1のアップデート前はツール呼び出しが動かなかったが、今はCodexとOpencodeの両方で問題なく動く
  • 「ローカルモデルはツール呼び出しができない」というのは誤り
    すでに2年前からローカルでもツール呼び出しをしてきたし、Gemma3のツール呼び出し成功率が7%というのはありえない
    Llama3.3でも最低75%は出ていた

    • 自分もその一文には驚いた。たぶん筆者はローカルモデルを初めて動かしたのだろう
      Gemma 4 gguf Q4(16GB)のように過度に量子化されたモデルは性能がかなり落ちる
    • それでもGemma 3と4のTau関数呼び出しベンチマークの差が大きいのは事実
    • 記事全体がAI自動生成っぽかった
      GB10マシンがあるなら、spark-vllm-dockerのセットアップやQwen 3.5 122B A10B最適化版を試すのを勧める。50tk/sほどでかなり速い
  • M4 Pro(24GB)からM5 Pro(48GB)にアップグレードしたところ、同じGemma 4 MoE(Q4)でt/sが8倍高速になった
    ディスクからメモリへのロード速度も2倍向上した

    • RAMが多いならQ8_0で直接動かすことを勧める。初期ロード以外は遅くなく、品質もほぼ同等
      MLX版を使っているか確認したほうがいい。mlx-lmのコミュニティ量子化版は最近修正された
      自分は16GBのM1 Macbookでは厳しかったが、64GB RAMのAMD Framework 13ではCPUだけでも十分速く動く
      プロンプトキャッシュ機能は大きなシステムプロンプトを差し込むときに便利
  • ローカルハードウェアを24/7で動かしてGemma 4のようなモデルで実験を自動化し、大きな判断はClaude Opusに任せるというハーネスのアイデアを提案していた
    ローカルモデルが小さな実験やPOCを実行し、行き詰まったらOpusに助けを求める構成
    こうすればプロンプトキャッシュを完全に制御でき、コストもほとんどかからない

    • MarioのPi coding agent拡張の開発者であるNico Bailonが似た試みをしている
      デモ動画pi-model-switchリポジトリを参照できる
  • コーディング用途では、Q6_K以下の量子化には意味がない
    それより低い量子化ではコードエラー率が急激に上がる

    • ほとんどの人はこれを知らない。トークン数よりトークン品質が重要
      メモリが許す限り、できるだけ高い量子化を使うのがよい
  • Q4_K_M、Q8_0、Q6_Kなど量子化方式ごとの品質比較があればいいのにと思う。単純なtok/sの数値より有用そう

  • Qwen3.5とGemma 4の比較が気になる
    特にQwen3.5-27B-Claude-4.6-Opusモデルはツール呼び出しに特化しており、ダウンロード数も50万回を超えている

    • Jackrongが公開したファインチューニングガイドを見ている。ノートブック例までよく整理されている
    • 自分はDGX Sparkで直接テストしたが、結局Gemma 4に戻った
      Qwenモデルはオーケストレーション中にエラー修正の要求が多く、生産性が落ちた
      Ollama向けウェイトで動かしていた
    • 個人開発者が大規模研究所より性能をさらに引き上げたという主張にはやや懐疑的
      最新版はQwopus3.5-27B-v3
  • ここ数日Gemma 4を使ってみたが、速くて賢い一方でツール使用の問題は依然としてある
    速度より知能の限界が生産性を制約している。ループにはまることが多い
    こうした状況を検知して、より賢いモデルに「助けを求める」ことができればよいのだが
    もはやコーダーというよりエージェントオーケストレーターとして働いている。複数のエージェントを並列に走らせて管理する役割だ

    • Googleは最近gemma-4-31B-itのchat_template.jinjatokenizer_config.jsonを差し替えた
      ツール呼び出し関連の問題を解決したとのことなので、モデルを更新したほうがよい
 
boolsee 15 일 전

ollama でローカル LLM の構成は簡単ですが、オープンソースモデルごとにツール呼び出しが失敗する可能性が高いそうです。ollama 内部の緩い規約と、モデルごとのツール呼び出しパーサーの問題が絡んでいるとのことです。
実際のところ、Local LLM の最も根本的な問題は、中〜大規模モデルを動かすには高価なハードウェアが必要だということです。Mac Studio 32GB モデルが 300万円台半ば、GB10 は 500〜600万円程度なので、個人が趣味(?)のために購入するには負担が大きいです。Local LLM は小型モデル向けで、中〜大規模モデルは Cloud 以外に選択肢がありません。