GEO

モデル蒸留

モデル蒸留とは、小さな「生徒」モデルが、生のラベルではなく教師の出力(またはその内部の確率分布)を使って学習することで、はるかに大きな「教師」モデルを模倣するように学習させる学習技術です。その結果、サイズ、レイテンシ、コストのごく一部で、教師の能力のほとんどを備えたモデルが得られます。

モデル蒸留とは、小さな「生徒」モデルが、生のラベルではなく教師の出力(またはその内部の確率分布)を使って学習することで、はるかに大きな「教師」モデルを模倣するように学習させる学習技術です。その結果、サイズ、レイテンシ、コストのごく一部で、教師の能力のほとんどを備えたモデルが得られます。

なぜ重要なのか

フロンティアモデルと安価なモデルのトレードオフは、かつて過酷なものでした。5%賢いモデルに10倍を支払うか、妥協するかのどちらかです。蒸留はそのギャップを縮めます。GPT-4o-mini、Claude Haiku、Gemini Flash、Llama 3 8B Instructなど、主要なラボの「小型で高速で安価」な層は、実際にはすべてフラッグシップモデルから蒸留された子孫です。蒸留はまた、専門化のための最も好まれる方法でもあります。カスタマーサポートの会話ログでGPT-4から蒸留された7Bモデルは、その1つのタスクにおいて、提供コストが100分の1でありながら元のモデルを上回ることができます。開発者にとって蒸留は、「どのモデルを使うか」を「手頃に使える最大のもの」から「自分の仕事をこなせる最小のモデルは何か」へと捉え直させます。

どのように機能するのか

1. 教師を選ぶ: 通常は大規模で高性能なモデル(GPT-4、Claude Opus、Llama 70B)です。

2. 学習データを生成する: 次のいずれかです。

  • 出力蒸留: 大量の入力に対して教師を実行し、その応答を保存します。それらの(入力、教師の応答)のペアで生徒を学習させます。
  • ロジット蒸留: 各トークンにおける語彙全体に対する教師の完全な確率分布(「ソフトターゲット」)を取得し、生徒がそれに一致するように学習させます。

3. 生徒を学習させる: 標準的な教師ありファインチューニングですが、教師の出力をラベルとして使います。生徒の損失は、人間がラベル付けした正解からのずれではなく、教師の出力からのずれです。

4. 任意のタスク特化: 特定のドメイン(コード、チャット、数学、カスタマーサポート)のデータで蒸留し、専門化された小型モデルを作ります。

5. 評価する: 保留したベンチマークで生徒と教師を比較します。コストが10%未満で、教師の品質の80〜95%を目指します。

出力蒸留対ロジット蒸留

観点出力(応答)蒸留ロジット(ソフトターゲット)蒸留
データ教師のテキスト出力のみ教師の完全なトークン確率
必要なアクセスAPIのみ生のモデルの重みが必要
品質良好より良い(トークンあたりの情報量が多い)
コスト安価より高価(取得コスト)
ユースケースクローズドAPIから蒸留オープンモデルや自前のモデルから蒸留

ほとんどのチームが出力蒸留を行うのは、GPT-4やClaudeへの重みレベルのアクセスを持っていないためです。ロジット蒸留は学術的な標準ですが、オープンモデルを必要とします。

有名な蒸留モデル

DistilBERT(Hugging Face、2019年): 元祖です。BERTのサイズの60%、性能の95%、速度は60%向上。

Alpaca / Vicuna(スタンフォード / LMSYS、2023年): GPT-3.5の出力から蒸留されたLlama。小型の指示追従モデルを安価にしました。

GPT-4o-mini、Claude Haiku、Gemini Flash: それぞれのフラッグシップから蒸留されたと報じられていますが、詳細は公開されていません。

Llama 3.2 1B / 3B: オンデバイス利用のために、より大きなLlamaのバリアントから蒸留されたMetaの小型モデル。

DeepSeek-R1-Distill(2025年): DeepSeek-R1の推論を、より小さなLlamaとQwenのベースに蒸留したオープンな蒸留版。

TinyLlama、Phi-3: パラメータ数以上の性能を発揮するために、蒸留スタイルの技術で学習された小型モデル。

いつ蒸留を使うべきか

コスト重視の製品: 品質のほとんどが必要だが、すべてのリクエストにGPT-4やClaude Opusを使う余裕がない場合。

レイテンシに敏感なUX: 応答が1秒未満でなければならないチャットアシスタント。

専門化: 狭いタスク(インテント分類、JSON抽出、コード補完)で、小さなファインチューニング済みモデルが汎用のフラッグシップを上回る場合。

オンデバイスまたはエアギャップ環境: 70Bモデルの実行が不可能な場合。

大量のバッチ処理: 1日に数百万件の文書分類。フラッグシップモデルは高価すぎます。

いつ使うべきでないか

十分な教師データがない: 最低でも数千の高品質な(入力、教師の出力)ペアが必要です。

自由度の高い創造的なタスク: 蒸留モデルはしばしばニュアンスや創造性を失います。

フロンティアレベルの推論: 数学、コーディング、複雑な推論は、依然として実際のフロンティアモデルを実行する恩恵があります。

急速に変化するドメイン: 蒸留モデルはスナップショットです。ドメインが毎週変化するなら、蒸留は後れを取ります。

トレードオフ

品質の上限: 生徒は教師を超えられません。蒸留は転移であり、創造ではありません。

不慣れな入力での脆さ: 小型モデルは汎化能力が低くなります。分布外の入力では急速に劣化します。

バイアスの継承: 教師のバイアス(そして誤りやハルシネーション)が生徒に焼き付けられます。

初期のAPIコスト: クローズドAPIから蒸留するには、データ生成中に数千回の教師推論の費用を支払う必要があります。

コンプライアンスリスク: 一部のクローズドAPIの利用規約では、出力を競合モデルの学習に使うことを禁止しています。規約をよく読みましょう。

よくある間違い

評価なしで蒸留する: 保留したベンチマークがなければ、生徒が教師に一致しているかどうか判断できません。

小さすぎる生徒、複雑な教師: 1Bの生徒は、1,750億の教師の挙動すべてを捉えることはできません。規模を野心に合わせましょう。

データ品質を軽視する: 質の悪い教師の出力(ハルシネーション、タスク外)は、そのまま質の悪い生徒の挙動として焼き付けられます。

専門化しない: 汎用モデルから汎用モデルを蒸留すると、多くの場合より劣った汎用モデルが生まれます。タスクのために蒸留しましょう。

コンプライアンスの盲点: 競合のAPI出力で密かに学習することは、法的な時限爆弾です。利用規約を確認しましょう。

Sources: