AI・機械学習
中級

LLMモデル蒸留(エルエルエムモデルジョウリュウ)

大規模言語モデル(Teacher)の知識を小型モデル(Student)へ転写し、推論コスト削減と精度維持を両立させる技術の総称

0 回閲覧
0 いいね

LLMモデル蒸留とは

LLMモデル蒸留(Model Distillation)とは、パラメータ数の大きな教師モデル(Teacher)が出力するソフトラベルやロジットを学習信号として、より小型の生徒モデル(Student)を訓練する手法である。2015年にGeoffrey Hintonらが提案した知識蒸留(Knowledge Distillation)の枠組みをLLMに適用したもので、2024〜2026年にかけてGPT-4o mini、Gemini 2.0 Flash、Claude 3.5 Haiku、Phi-4、Mistral Small 3など商用・OSSの両面で大規模に採用されている。

蒸留の最大の利点は推論コストの劇的な削減にある。たとえばGPT-4o(推定1.8Tパラメータ)からGPT-4o mini(推定8B)への蒸留では、API料金が$2.50/1M tokens → $0.15/1M tokensと約94%削減される一方、MMLU-Proスコアは82.3 → 73.5と約89%の精度を維持する。

蒸留の基本メカニズム

蒸留プロセスは以下の3ステップで構成される:

  1. Teacher推論: 大規模モデルが訓練データに対してソフトラベル(確率分布)を生成
  2. KL損失計算: TeacherとStudentの出力分布間のKLダイバージェンスを計算
  3. Student最適化: ハードラベル損失(通常のCross-Entropy)とKL損失の加重和で勾配更新

温度パラメータ(Temperature τ)はソフトラベルの「なめらかさ」を制御する重要なハイパーパラメータで、τ=1.0〜5.0の範囲が一般的に使用される。τが高いほどTeacherの暗黙知(dark knowledge)がStudentに伝わりやすくなるが、過度に高いと情報がノイズ化する。

  • τ=1.0: 通常のソフトマックス出力をそのまま使用
  • τ=2.0〜3.0: 標準的な蒸留設定、多くの実験で最良結果
  • τ=5.0以上: 非常にフラットな分布、特殊用途向け

主要な蒸留手法の比較

手法概要代表例精度維持率圧縮率
ロジット蒸留出力層の確率分布を転写DistilBERT, TinyLlama85-92%2-10x
特徴量蒸留中間層の表現を転写MiniLM, PKD88-95%2-6x
アテンション蒸留Attention重みパターンを転写TinyBERT, MobileBERT90-96%2-4x
合成データ蒸留Teacherが生成したデータでFine-tuneAlpaca, Vicuna, Orca80-90%10-100x
オンライン蒸留Teacher/Student同時訓練Deep Mutual Learning92-97%1.5-3x

2025-2026年の最新動向

商用モデルの蒸留パイプライン

2025〜2026年にかけて、主要AIプロバイダは蒸留を標準的な製品戦略として採用している:

  • OpenAI: GPT-4o → GPT-4o mini($0.15/1M input tokens)、蒸留API公開(2024年10月)
  • Anthropic: Claude 3.5 Opus → Claude 3.5 Haiku($0.25/1M input tokens)、合成データ蒸留活用
  • Google: Gemini 1.5 Pro → Gemini 2.0 Flash(レイテンシ40%削減)
  • Microsoft: Phi-4(14B)がGPT-4レベルの数学・推論能力を達成
  • Mistral: Mistral Large → Mistral Small 3(24B、Apache 2.0ライセンス)

オープンソース蒸留モデル

モデルパラメータTeacherベンチマークライセンス
Phi-414BGPT-4合成データMMLU 81.2MIT
Llama 3.3 70B70BLlama 3.1 405BMMLU 86.0Llama License
Qwen2.5-7B7BQwen2.5-72BMMLU 74.2Apache 2.0
Gemma 2 9B9BGemma 2 27BMMLU 71.3Gemma License
SmolLM2 1.7B1.7B合成データHellaSwag 72.5Apache 2.0

蒸留実装の実践ガイド

蒸留パイプラインの典型的な構成要素:

  • データ要件: 蒸留用コーパスは10万〜100万サンプルが目安。合成データ蒸留ではTeacherに10万プロンプトを投入し、応答ペアを訓練データとする
  • 計算コスト: 7BモデルをA100×8で蒸留する場合、約24〜72時間(データ量依存)
  • 評価指標: MMLU、HellaSwag、ARC-C、GSM8K、HumanEval等のベンチマークスイートで精度維持率を測定
  • 温度スケジュール: 訓練初期はτ=3.0で暗黙知重視、後半はτ=1.5でハードラベル重視に切り替えるアニーリング戦略が有効

HuggingFace Transformersでの実装例

# 蒸留損失の計算(疑似コード)
teacher_logits = teacher_model(input_ids).logits
student_logits = student_model(input_ids).logits

# KLダイバージェンス損失(温度τ適用)
kl_loss = F.kl_div(
    F.log_softmax(student_logits / tau, dim=-1),
    F.softmax(teacher_logits / tau, dim=-1),
    reduction='batchmean'
) * (tau ** 2)

# 最終損失 = α * KL損失 + (1-α) * CE損失
loss = alpha * kl_loss + (1 - alpha) * ce_loss

よくある質問(FAQ)

Q1: 蒸留とファインチューニングの違いは何ですか? A: ファインチューニングは人間が作成したラベル付きデータで既存モデルを追加学習する手法です。蒸留はTeacherモデルの出力(ソフトラベル)を学習信号として使う点が異なり、人間のアノテーションが不要でスケーラブルです。

Q2: 蒸留でどの程度のコスト削減が可能ですか? A: モデルサイズを1/10〜1/100に圧縮でき、推論コストは90〜99%削減可能です。GPT-4o → GPT-4o miniでは約94%のコスト削減を達成しています。

Q3: 蒸留モデルの弱点はありますか? A: 複雑な推論タスク(数学証明、コード生成の難問)ではTeacherとの精度差が広がる傾向があります。また、蒸留ではTeacherが間違える入力に対してStudentも同様に失敗しやすい「エラー継承」問題があります。

Q4: 自社データで蒸留する場合の注意点は? A: OpenAI等の利用規約で出力を競合モデルの訓練に使うことを禁止している場合があります。Apache 2.0やMITライセンスのOSSモデルをTeacherにすると法的リスクを回避できます。

まとめ

  • LLMモデル蒸留はTeacherの知識をStudentに転写し、推論コストを90%以上削減する技術
  • 2025-2026年は商用・OSS双方で蒸留が標準戦略として定着
  • 温度パラメータτ=2.0〜3.0、データ量10万〜100万サンプルが実践的な設定
  • Phi-4やLlama 3.3等、蒸留モデルがTeacherに迫る精度を達成する事例が増加中