AI・機械学習
中級

教師-生徒学習(キョウシセイトガクシュウ)

モデル蒸留の中核フレームワーク。大規模な教師モデルが生成する知識(出力分布・中間表現)を、軽量な生徒モデルが模倣する形で学習する訓練パラダイム。

0 回閲覧
0 いいね

教師-生徒学習とは

教師-生徒学習(Teacher-Student Training / Teacher-Student Framework)は、既に十分に学習済みの大規模モデル(教師)と、これから学習する小型モデル(生徒)の2つのモデルを使って知識を転移させる訓練パラダイムです。知識蒸留の実装フレームワークとして最も広く使われており、NLP、コンピュータビジョン、音声認識など幅広い分野で応用されています。

教師モデルの役割

教師モデルは「答え」だけでなく「考え方」を生徒に伝えます。正解ラベルが[犬: 1.0, 猫: 0.0]という二値情報しか持たないのに対し、教師モデルの出力[犬: 0.7, 猫: 0.2, 狼: 0.08, ...]にはクラス間の類似度関係(ダークナレッジ)が含まれます。

教師モデルの選定基準

基準推奨理由
パラメータ比教師:生徒 = 5:1〜50:1差が小さすぎると蒸留効果が薄い
アーキテクチャ同系統が理想Transformer→Transformer が最も安定
学習データ生徒のドメインと重複ドメイン外の知識は転移しにくい
性能水準生徒の到達目標+10%以上教師が弱いと生徒も弱い

生徒モデルの設計

アーキテクチャの選択

生徒モデルは教師と同じアーキテクチャの縮小版が一般的ですが、異なるアーキテクチャでも蒸留は可能です(例: Transformer教師 → CNN生徒)。ただし、異種アーキテクチャ間の蒸留は Feature-based 手法の適用が難しくなります。

サイズの決定

目標のレイテンシ・メモリ制約から逆算して生徒のサイズを決めます。

  • エッジデバイス(スマートフォン): 100M-500Mパラメータ
  • コンシューマGPU(RTX 4060): 1B-7Bパラメータ
  • データセンター(コスト最適化): 7B-13Bパラメータ

学習プロセス

オフライン蒸留

教師モデルの推論を事前に実行し、出力をファイルに保存してから生徒の学習に使う方式です。教師モデルを学習中ずっとGPU上に保持する必要がなく、計算資源を効率的に使えます。

オンライン蒸留

教師と生徒を同時にGPU上にロードし、各バッチで教師の推論→生徒の学習を逐次実行します。動的にデータを生成できるため品質は高いですが、GPU メモリを大量に消費します。

自己蒸留(Self-Distillation)

教師と生徒が同一モデルの場合、深い層が浅い層の教師となる構造です。BERT の最終層が中間層の教師となり、各層の出力を均質化することで性能向上を図ります。追加モデルが不要で実装が容易です。

LLM での応用パターン

Instruction Tuning + 蒸留

GPT-4 や Claude のような強力なモデルの instruction-following 能力を小型モデルに転移させます。Alpaca(Stanford)、Vicuna は GPT-3.5/4 の出力を使って LLaMA を蒸留した代表例です。

Chain-of-Thought 蒸留

教師モデルの推論過程(CoT: 思考の連鎖)を含む出力を生徒に学習させることで、単純な回答だけでなく推論能力も転移させます。

FAQ

Q1: 教師モデルなしで小型モデルを直接大量データで学習するのとどちらが良いですか?

A1: 同じデータ量・計算量なら蒸留の方が高品質です。教師モデルのソフトターゲットにはラベルにはない豊富な情報(クラス間関係)が含まれるためです。ただし、非常に大量のデータ(数兆トークン)を直接学習に使える場合、蒸留なしでも匹敵する性能に達することがあります(Llama 3 がこの例)。

Q2: 複数の教師モデルを使うことはできますか?

A2: はい。アンサンブル蒸留と呼ばれ、複数の教師の出力を平均化して生徒に学習させます。個々の教師の弱点を補い合い、単一教師よりも高品質な蒸留が可能です。異なるアーキテクチャの教師を組み合わせることで多様な知識を転移できます。

Q3: 蒸留の学習率やエポック数のベストプラクティスは?

A3: 一般的に、通常のFine-tuningより低い学習率(1e-5〜5e-5)で長めに学習します。ソフトターゲットは情報量が多いため、3-10エポックで十分に収束することが多いです。温度パラメータTは3-7が一般的で、値が大きいほどダークナレッジを強調しますが大きすぎるとノイズが増えます。