【ちしきじょうりゅう】
知識蒸留(ナレッジディスティレーション) とは?
最終更新:
💡 大きなAIの「エッセンス」を小さなAIに凝縮する技術
教師モデルの出力などを手本に、生徒モデルを学習させる技術。小さいモデルへの圧縮にも使われるが、精度や軽量化の度合いは学習方法と評価対象によって変わる。
📌 このページのポイント
知識蒸留ってなんで必要なの?
大きなモデルや複数モデルの組み合わせは、動かすのに多くの計算資源が必要になることがあるよ。その振る舞いを生徒モデルの学習に使い、小さいモデルでも役立つ性能を得るのが蒸留の用途の一つ。ただし生徒が教師と同じ精度になるとは限らないんだ
どうやって知識を移すの?
分類なら、正解クラスだけでなく教師の出力確率も手本にできるよ。例えば「猫80%、トラ15%、ライオン5%」は説明用の仮の数値。候補間の関係も学習材料にするんだ。元論文では温度という設定で確率をなだらかにし、正解ラベルの学習とも組み合わせているよ
どれくらい小さくできるの?
DistilBERT論文では、パラメーター数はBERTの1億1000万から6600万へ約40%減ったよ。GLUE開発セットの平均スコアは79.5に対して77.0で、比率は約97%。これはその論文の評価条件での結果で、どの課題でも性能を97%保てるという意味ではないんだ
スマホでも役立つの?
DistilBERT論文には、蒸留したモデルをiPhone 7 Plusの質問応答アプリで動かす実証例があるよ。小型化は端末での利用を助けるけれど、必要なメモリや速度は機種・実装・処理内容にもよる。蒸留すればどのスマホでも十分速くなるわけではないんだ
蒸留と量子化って何が違うの?
まとめ:ざっくりこれだけ覚えればOK!
「知識蒸留」って出てきたら「教師モデルの振る舞いを手本に、生徒モデルを育てる技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Knowledge Distillation」 = 知識の蒸留
💬 蒸留は成分を分離する操作だよ。AIでは、教師が学んだ振る舞いを生徒の学習に使う比喩で、重みから「純粋な知識」だけを物理的に取り出すわけではないんだ