知識蒸留(Knowledge Distillation)とは、学習済みの大規模モデル(教師モデル)から小さなモデル(生徒モデル)が学ぶ技術です。Geoffrey Hinton らが 2015 年の論文「Distilling the Knowledge in a Neural Network」で体系化しました。狙いは、パラメータが少なく高速な小モデルに、大規模モデルの能力をできるだけ引き継がせることです。
核心メカニズム:生徒が学ぶのは答えではなく、教師の「迷い」
通常の学習は「ハードラベル」だけを使います。この画像は猫なら、100% 猫と記録する。ところが教師モデルが出すのは「ソフトラベル」です。70% 猫、20% トラ、10% その他、といった具合に。Hinton はこの情報を「ダークナレッジ(dark knowledge)」と呼びました。クラス間の類似関係こそ、教師が本当に学んだものだからです。
この微弱な確率信号を露出させるために、蒸留では温度パラメータ T を導入します。教師の出力 logits を T で割ってから softmax をかける。T が大きいほど確率分布は「柔らかく」なり、0.1% に押しつぶされていた二番手以降のクラスが持ち上がって、生徒は教師の判断構造を見通せるようになります。学習時の生徒の損失は、教師のソフトラベルに追従する KL ダイバージェンスと、通常の交差エントロピー(ハードラベル)損失の加重和です。
知識蒸留の主要な構成要素
蒸留を一通り行うには 4 つが必要です。学習済みの教師モデル(通常は大規模モデル)、学習させる生徒モデル(小規模アーキテクチャ)、温度パラメータ T、そしてソフト/ハード両損失の重み付け比率です。教師は「問題を出して模範解答を示す」役、生徒は教師の出力分布の模倣と正解ラベルへの適合のバランスを探ります。
蒸留の天井:直接学習に劣るのはどんなときか
蒸留は万能ではありません。第一に、生徒の上限はおおむね教師が決めます。教師があるタスクで弱ければ、生徒が学ぶのは「教師そっくりの間違い」です。第二に、容量が小さすぎる生徒は「学びきれない」——教師の知識は小さすぎるネットワークには収まりません。第三に、蒸留には前置コストがあります。ソフトラベル生成には大規模な教師モデルを一度回す必要があるのです。最後に、対象タスクが教師の得意分布から外れているなら、小モデルを対象データで直接学習した方が得策です。
よくある 3 つの誤解
誤解1:蒸留=圧縮、つまり量子化や枝刈りと同じ。 いずれも「小さく速く」に関係しますが、蒸留は学習段階で能力を移転するもの、量子化はデプロイ段階で数値精度を下げるもの、枝刈りは冗長なパラメータを削除するものです。組み合わせは可能ですが(先に蒸留してから量子化するのが定番)、相互に代替はできません。
誤解2:生徒は教師を超えられない。 多くの場合、教師が上限であるのは確かです。しかし損失には真のハードラベルも混ざっているため、タスクデータで調整した生徒が、単一指標で教師を上回ることもあります。
誤解3:蒸留すれば能力は無傷。 ほぼすべての蒸留で性能は少し落ちます。問題はどれだけ、どこで落ちるかです。「97% の性能を維持」の裏側には、失われた 3% がロングテールや難問に集中しがちだという事実があります。
蒸留・量子化・枝刈りの境界線はどこか
一言で区別すると、蒸留が変えるのは「モデルの学び方」で、まったく新しい小モデルを生み出します。量子化が変えるのは「数値の持ち方」で、モデル構造はほぼそのまま。枝刈りが変えるのは「構造の残し方」で、パラメータを直接削除します。三者はモデルのライフサイクルの異なる段階で働き、よく併用されますが、解く問題は別々です。やさしい解説版はモデル蒸留:なぜ「小モデル」が大モデルに追いつきつつあるのかもご覧ください。
実際の応用シーン
代表例は HuggingFace の DistilBERT です。BERT を教師とし、生徒モデルはパラメータ 40% 減、速度 60% 向上で、言語理解力の約 97% を維持しました。LLM 時代の代表作もあります。DeepSeek-R1 チームは R1 が生成した 80 万件の推論サンプルから DeepSeek-R1-Distill-Qwen-7B を蒸留し、数学テスト AIME 2024 で 55.5% の正答率を記録。同規模で直接学習したモデルを大きく上回りました。今日、スマホの音声機能やオンデバイスのカスタマー対応、車載システムで動く小モデル、その裏にはたいてい蒸留があります。