見出し画像

MoE化したGemma 4 26B-A4Bに同じ9種目を投げたら、賢くなって、速くなって、俳句で全員沈んだ【検証第4回】

こんにちは、くーるぜろです。

Gemma 4 QAT検証シリーズ第4回。今回はGemma 4 26B-A4B、つまりMoE(Mixture of Experts)版です。これまでの12B(dense)と同じ9種目・同じ採点基準で、Google公式QAT版とUnsloth版(UD-Q4_K_XL)を、CUDA/Vulkan両バックエンドで回しました。計144ラン。

結論を3行で。速度はほぼ倍。JSONの形式遵守は明確に進化。なのに俳句では4ラン全員が無限ループで沈み、存在しないオプションの捏造は健在。スケールで直るものと直らないものが、過去3回より鮮明に見えた回です。

用語ひとつだけ:MoE(A4Bの意味)

MoEは、モデル内部を多数の「専門家」ブロックに分け、トークンごとに一部だけを起動する方式。26B-A4Bは「総パラメータ26B、1トークンあたり実際に動くのは約4B」という意味です。記憶の倉庫は26B分あるのに、計算コストは4B級。つまり12B denseより賢くなりつつ速くなることが期待される構成です。果たして。

速度:生成は12B比で1.8倍

MoEの期待通り、生成は劇的に速い。総26Bのモデルが12B denseの倍近い速度で走るのは、何度見ても面白い体験です。

一方で2つの注目点。プロンプト処理はMoE化で遅くなり(エキスパート振り分けのオーバーヘッド)、しかもA1長文ではVulkanがCUDAを逆転しました。12BではCUDAがPPで最大2倍勝っていたのに、です。MoEカーネルの最適化具合はバックエンドで景色が変わる——「ベンチはモデル×バックエンドの組で見ろ」という第3回の教訓がさらに強化されました。

Unsloth版がGoogle版より生成3〜4%速い傾向は、26Bでも両バックエンドでも再現。シリーズ4回連続です。

品質:12Bから「直ったもの」

D2(JSON抽出)が大幅進化。12Bでは「Google CUDAが無限ループ」「全員が本文にない日付を勝手に埋める」という散々な種目でしたが、26B-A4Bは4ラン全員が即答で完走。そして全員が、本文に書かれていない佐藤さんの異動日を正しくnullにしました(12Bは4ラン中0)。スキーマの「string|null」を読んで、無い情報は無いと言える。これは実務価値の高い進化です。

ただし内容面の罠(佐藤さんの異動先=東京支社)を正解したのはUnsloth CUDAの1ランのみ。残り3ランは「大阪支社」と誤答しました。関係推論の本質的な難しさはパラメータを盛っても残ります。

D1(多段算数)は全員正解(42,300円)。12Bから通算すると、この種目は8ラン全勝。切り上げ計算レベルの論理はQ4量子化でもMoE化でも揺るがない、シリーズ唯一の安全地帯です。

B1(plotly)も4ラン全員、実行成功。生成コードをそのまま実行してHTML出力まで確認済み。コード生成の実用性は安定しています。

品質:スケールしても「直らなかったもの」

C3(俳句)は決定論モードで全滅。Google/Unsloth × CUDA/Vulkanの4ラン全員が無限ループです。死因も全員同じで、「Fu-yu-no-a-sa = 5. Yes. Wait, "Harusame ya" is 5?」と音数を数え直し続けるself-checkの泥沼。12Bでは「Googleは完走、Unslothだけループ」でしたから、賢くなった分だけ「検算したがる」性質が強まり、むしろ全員が罠に落ちた形です。考える力が上がると、考えすぎて死ぬ場所も増える。

ただし重要な救いがあって、temp 0.7のcreativeランでは12ラン中ループゼロ。全員ちゃんと俳句を3句詠みました。温度0の貪欲デコード(常に1位の単語を選ぶ方式)特有の事故であることが、今回はっきり確認できました。

E1(存在しないオプション)は4ラン全員が捏造継続。しかも12Bが「精度を補正する機能です」と説明したのに対し、26B-A4Bは全員「推論を高速化する最適化フラグです」と、別ジャンルの嘘に乗り換えました。モデルが変われば嘘の内容も変わる、バックエンドが変われば嘘が変わる(第3回)。捏造への耐性は、この規模のローカルモデルではまだ期待できません。

A2(バグ修正)は微妙に雑に。12Bは4ラン安定で4/4バグを検出しましたが、26B-A4Bは3〜4/4で揺れます。クリティカルな3つ(空リスト・境界値・包含関係)は全員拾うものの、4つ目(破壊的ソートや重複処理)を落とすランがある。アクティブ4Bの「薄さ」が出るとすればこういう網羅性のところかもしれません。

CUDA vs Vulkan:今回も全試合「別の文章」

第3回の再確認です。temp 0・同一seedでも、CUDAとVulkanの出力はチェックした全ペアで不一致。MoEでも浮動小数点の演算順序差はそのまま効きます。同一バックエンド内の再現性は今回も完璧でした。

検証メモ:Vulkanランの実行デバイスについて

今回のVulkanランは「iGPU(Radeon 8060S)で実行」する意図でしたが、結果はRTX 5090上で実行された可能性が高いと判断しています。根拠は(1)生成207 t/sはiGPUのメモリ帯域では理論的に届かない数値であること、(2)VulkanのPPがCUDA超えしており、ディスクリートGPU上のVulkanの挙動と整合的なこと。Vulkanビルドは複数GPUが見えると高性能な方を既定で選ぶため、iGPUに固定するには`GGML_VK_VISIBLE_DEVICES`等での明示指定が必要です。よって本記事は「同一GPU上のCUDA vs Vulkan」比較として読んでください。真のiGPU対決(AMD vs NVIDIA)は次回に持ち越します。

まとめ

26B-A4Bは「速くて、形式に強くて、考えすぎる」モデルでした。エージェントのバックエンドとしてJSONを吐かせる用途なら12Bから乗り換える価値が十分ある一方、temp 0運用は俳句全滅が示す通りリスクが上がっています。実運用はtemp 0.7前後+repeat-penaltyが今回の結論です。

次回こそ、デバイス明示指定での**真のiGPU対決(Radeon 8060S vs RTX 5090)**を。AMD 128GBユニファイドメモリでどこまで戦えるか、シリーズの最終回にふさわしいテーマだと思っています。


検証データについて

GMKtec NucBox EVO-X2 + RTX 5090 32GB、llama.cpp b9536(CUDA/Vulkanビルド)。モデルはgoogle/gemma-4-26B-A4B-it-qat-q4_0-gguf と unsloth/gemma-4-26B-A4B-it-qat-GGUF(UD-Q4_K_XL)。9種目×2モデル×2バックエンド×(det 1回+creative 3回)=144ラン。プロンプトと採点基準は第1回・第2回を参照。


ハッシュタグ: #ローカルLLM #Gemma4 #MoE #量子化 #llamacpp *

いいなと思ったら応援しよう!

zephel01 サーバー代とコーヒー代になります☕ 役に立ったら応援よろしくお願いします!