AIにおける蒸留技術の簡単な歴史
知識蒸留(Knowledge Distillation)は、教師モデルの出力を生徒モデルに模倣させることで、性能を維持しながらモデルサイズを削減する技術です。本稿では、2015年のHintonらによる提案から現代の応用までの発展を概観します。
知識蒸留(Knowledge Distillation)は、大規模で複雑なモデル(教師モデル)の知識を小型で効率的なモデル(生徒モデル)に移行する手法であり、計算リソースを削減しつつ高い性能を維持することを目的としています。この概念は、2015年にGeoffrey Hinton、Oriol Vinyals、Jeff Deanによって発表された論文『Distilling the Knowledge in a Neural Network』で初めて体系的に説明されましたが、類似の考え方はアンサンブル学習やモデル圧縮の初期研究にも見られます。
蒸留の核心は、生徒モデルが教師モデルの「ソフトラベル」(出力確率分布)を学習することにあります。温度パラメータを用いて確率分布を平滑化することで、生徒モデルは教師モデルが持つ暗黙知(dark knowledge)、例えばクラス間の類似性を捉えることができます。この手法は生徒モデルの汎化性能を向上させるだけでなく、モデルサイズを効果的に圧縮し、モバイル端末や組み込みシステムへの展開を可能にします。
2015年以降、蒸留技術は多様な進化を遂げてきました。2016年にはRomeroらがFitNetsを提案し、中間層の特徴を用いた蒸留を導入しました。2018年にはTianらが対比蒸留(Contrastive Distillation)を開発し、対比学習を活用して生徒モデルを強化しました。オンライン蒸留(Online Distillation)では複数のモデルが同時に相互学習を行い、自己蒸留(Self-Distillation)ではモデル自身が自己改善を行います。これらのバリエーションにより、蒸留の応用範囲はさらに広がりました。
大規模言語モデルの時代において、蒸留はGPTやBERTのような巨大モデルを実用的に展開するための重要な技術となっています。例えば、DistilBERTはBERTモデルを40%縮小しながら、言語理解能力の97%を維持しています。さらに、コンピュータビジョン(MobileNetなど)、推薦システム、強化学習の分野でも蒸留は活用されています。モデルサイズが増大し続ける中で、蒸留技術は効率性と性能のバランスを取る上でますます重要な役割を果たすでしょう。