5 ポイント 投稿者 darjeeling 1 시간 전 | 2件のコメント | WhatsAppで共有

GoogleはMTPで学習させたGemma 4からその機能を公開配布版で削除していたが、コミュニティのリバースエンジニアリングによって発覚した後、外部アシスタントモデルという形で遅れてサポートを開始した。

オープンソース開発者たちが、Googleが配布したモバイル/エッジデバイス向けフォーマットである.litertlm(TFLiteベース)ファイルを解析していたところ、衝撃的な事実を発見した。HuggingFaceで公開された標準モデル重みには存在しないMTP(Multi-Token Prediction、多重トークン予測)アーキテクチャが、エッジ向けコンパイル済みファイルにのみ含まれていたのだ。

これを公に問題提起すると、Google側は事実を認め、次のように答えた。

> "MTP関連の予測ヘッドは、HuggingFace Transformers APIとの互換性のため、公開モデルから意図的に除外した。LiteRTランタイムには、オンデバイス性能向上のため残していた。"

MTPとは何か

一般的なLLMは、トークンを1つずつ順番に生成する。MTPは、1回のforward passで複数トークンを同時に予測する手法で、投機的デコーディング(Speculative Decoding)と組み合わせると、出力品質を変えずに推論速度を大きく高められる。理論上は損失のない(lossless)最適化だ。

コミュニティによるリバースエンジニアリングの試み

最初の発見者は.litertlmファイルから複数の.tfliteファイルの抽出に成功し、HuggingFaceに抽出ファイルと再現手順を公開したうえで、C++に詳しい人々へ協力を呼びかけた。その後、コミュニティの貢献者たちが本格的なリバースエンジニアリングに着手した。

技術的難関: TFLiteカーネル構造が極めて厄介だった。1024-wideのattentionベクトルをINT8に量子化 → INT8重みと乗算 → 結果を再量子化 → 再び逆量子化する構造だった。

結果: 数日にわたる集中的な作業の末、次の再構成に成功した。

  • GQA(Grouped-Query Attention)構造および外部KVキャッシュのマッピング
  • スライディングローカルウィンドウの動作
  • pre_project / q_proj / MLP / o_proj / post_project の量子化経路
  • 部分RoPEの動作
  • end-to-end TFLite parity 20/20 top-1 matchを達成

ライセンスはApache 2.0であり、法的問題はない。

実際の性能: どれほど速いのか

コミュニティの実測結果(Strix Halo基準):

作業 従来 MTP適用後
コード生成 8 tps 25 tps(約3倍
一般的な文章作成 7~8 tps 11~14 tps

既存のLLaMA/Qwen3系の投機的デコーディングが通常1.5~1.7倍、最大2倍程度であることと比べると、コード生成で3倍は異例の数値だ。コード生成の特性上、反復的なボイラープレートが多く、ドラフトトークンの受理率が高いためと分析されている。

コミュニティの反応と疑惑

批判は大きく2つの方向から噴出した。

① 文書化されていないことへの批判: MTPで学習させておきながら、公開配布版では意図的に削除し、その点について何の言及もなかったこと。

② 商業的意図への疑惑: *"ローカルで動作するオープンソース31Bモデルが速くなりすぎると、自社の商用API(Flash Liteなど)の競争力を脅かすため、意図的に弱体化させた"*という主張だ。流出後に削除された122Bモデルも、同じ文脈で言及された。

Googleの構造的選択

配布チャネル MTPの有無
HuggingFace公開重み ❌ 意図的に削除
LiteRT(エッジ/モバイル) ✅ 内蔵
gemma4_assistant(5/5新規) ✅ 外部アシスタントモデルとして迂回対応

Googleの遅れた公式対応(5月5〜6日)

コミュニティからの圧力が強まると、Googleは5月5日に**gemma4_assistant**アシスタントモデルをHuggingFaceで別途リリースし、公式ブログを通じてGemma 4 MTP drafterを発表した。本来はモデル内部にあるべき機能を外部モデルとして切り出し、迂回的にサポートする形だ。

  • 速度: 品質低下なしで最大3倍の推論速度向上
  • アシスタントモデル: 約500Mパラメータ級の軽量drafter
  • 使い方: generate()関数のassistant_model=引数に渡すだけで動作。カスタムMTP実装は不要
  • 対応環境: HuggingFace Transformers, vLLM, MLX(Apple Silicon), LiteRT-LM

> 💡 一言要約: GoogleはMTPで学習させたGemma 4からその機能を公開配布版で削除していたが、コミュニティのリバースエンジニアリングで発覚した後、外部アシスタントモデルという形で遅れて迂回対応を始めた。