機械学習・深層学習のモデルは、大規模化が進むほど精度は向上するものの、同時にパラメータ量・計算量・メモリ消費が急増します。
こうした問題を解決するため、近年広く利用されているのが Knowledge Distillation(知識蒸留) と呼ばれる手法です。
蒸留は、高性能なモデル(Teacher)が持つ知識を、小型で高速なモデル(Student)へ圧縮して移植する技術です。
モデル軽量化の代表的アプローチであり、自然言語処理・画像処理・音声処理・大規模言語モデルなど、多くの領域で利用されています。
蒸留とは何か?
蒸留(Distillation)は、高精度だが重いモデル(Teacher)の出力を利用し、小型モデル(Student)を効率よく学習させる技術です。
通常の学習では硬いラベル(Hard Label)を使いますが、蒸留では teacher モデルが吐き出す確率分布(Soft Label)を使うことで、より豊かな情報を受け継ぐことができます。
- Teacher:重い・高性能
- Student:軽量・高速
- 蒸留:Teacher の判断プロセスを柔らかい形で Student に継承
この構造により、Student モデルは、Teacher が学習の過程で獲得した「クラス間の関係性」など、通常の教師データだけでは身に付きにくいニュアンスを習得できるようになります。
どうして蒸留が必要なのか?
大規模モデルをそのまま実運用するには、主に次のような課題が生じます。
計算資源の大量消費
大きなモデルほど推論に必要な FLOPs が増えるため、デバイス上でのリアルタイム動作が困難になります。
メモリ圧迫
GPU/CPU のメモリ、ストレージともに負担が大きく、モバイル環境・埋め込み環境では動かすことが難しい場面が多くあります。
レイテンシの増加
ユースケースによっては応答速度が重要であり、大規模モデルはデフォルトでは十分な速度が出ないことがあります。
これらの課題に対して、蒸留は性能を大きく落とさずに軽量化・高速化を実現する強力な手法として利用されています。
蒸留の基本メカニズム
ハードラベル vs ソフトラベル
従来の教師あり学習は、「画像 A は犬(ラベル1)」というような 正解ラベルのみ を使います。
一方、Teacher モデルは次のような確率分布を出力します。
- 犬:0.82
- 狐:0.12
- 猫:0.04
- ウサギ:0.02
この確率分布は、Teacher が持つ。
- クラス間近似
- 迷い
- 類似度の把握
- 概念距離
といった「判断の微妙な傾き」を含んでおり、これを Student に学習させることで、より洗練された表現を獲得できます。
蒸留手法の種類
蒸留には複数のアプローチが存在し、用途やモデル構造によって使い分けられます。
Response-based Distillation(基本的な蒸留)
Teacher の出力(softmax や logits)をそのまま Student に学習させる方法。
典型的な Loss。
- KL Divergence(softmax / temperature 付き)
- Cross Entropy の混合
最も広く用いられる形式で、DistilBERT などの軽量モデルもこのアプローチが基盤です。
Feature Distillation(特徴蒸留)
Teacher の中間層の特徴量を Student に模倣させる手法。
- CNN → feature map
- Transformer → hidden state / attention map
多層構造で高い表現力を持つモデルの場合、中間表現を蒸留することで精度が大きく向上するケースがあります。
Attention Distillation(注意マップ蒸留)
Transformer の attention map をそのまま継承させる手法。
自然言語処理モデルにおいては非常に効果が高い場合があります。
Data-Free Distillation
学習データを利用できない状況で、Teacher モデルを用いて疑似サンプルを生成し、そのデータで蒸留する手法。
- 元データが著作権・プライバシー・コンプラ上扱えない場合
- モデルの挙動のみを活用したい場合
などに用いられます。
LLM(大規模言語モデル)の蒸留
近年盛んに行われている LLM の蒸留では、Teacher LLM が生成した大量の応答データ(instruction-response ペア)を用い、それを Student LLM の教師データとして再学習します。
- ChatGPT → 小型モデル
- Llama 系 → Llama 小型版
- Gemma / Phi シリーズなどの高性能小型モデル
これらのモデルは、蒸留や指示チューニングを組み合わせて性能を高めています。
蒸留のメリット
高速化・軽量化
Student モデルは Teacher より小さいため、推論速度が大幅に向上します。
メモリ削減
モデルサイズが縮小されるため、小型デバイスやオンデバイス環境でも動作しやすくなります。
Teacher の知識を効率的に継承
Teacher からのソフトな出力を利用することで、ラベルだけでは学習できない知識(クラス間の構造など)を取り込むことができます。
蒸留のデメリット・課題
教師モデルの生成コスト
蒸留用データを Teacher に大量生成させる場合、計算コストや時間がかかります。
どの層・どの表現を蒸留するかは難易度が高い
特に Transformer モデルでは層が多く、最適な蒸留ポイントを選定することが難しいです。
Teacher のバイアスが伝播する
Teacher が持つバイアスは、蒸留によってそのまま Student に受け継がれます。
蒸留によって成果を出している代表モデル
DistilBERT
- BERT Base より約 40% 小型
- 推論速度約 60%向上
- GLUE スコアは BERT Base の約 97% 程度
TinyBERT
中間層・Attention など複数ポイントの蒸留を行い、非常に小さなモデルでも高性能を実現。
LLaMA・Gemma・Phi 系列の小型化
多くの最新 LLM でも、蒸留を核とした軽量化が行われています。
まとめ
蒸留とは、「大規模モデルの知識を小型モデルに効率よく移植し、性能を維持したまま軽量化・高速化を実現する技術」です。
- ソフトラベルによる教師モデルの挙動の継承
- 特徴量・Attention の蒸留
- LLM 時代に不可欠な技術
- モデル圧縮手法の中でも最も実用性が高い手法
構造が単純なモデルから巨大な Transformer まで幅広く適用できる点も、蒸留が長く使われ続けている理由です。
以上、機械学習の蒸留についてでした。
最後までお読みいただき、ありがとうございました。
