蒸留とは?大きなAIモデルの知識を小さなモデルへ移す仕組み

蒸留とは?大きなAIモデルの知識を小さなモデルへ移す仕組み

「このサイズのモデルなのに、なんでこんなに賢いんだろう」と思ったことはないでしょうか。

その裏でよく使われているのが 蒸留(ディスティレーション) という手法です。

大きなモデルの振る舞いを、小さなモデルに教え込んで再現させる考え方。

この記事では、蒸留の仕組みと、ファインチューニングや量子化との違いを整理します。

蒸留とは何か ——教師モデルから生徒モデルへ

蒸留では、性能の高い大きなモデルを 教師モデル、軽くしたい小さなモデルを 生徒モデル と呼ぶのがお決まりです。

そして生徒は、正解データではなく 教師が出した答えそのもの を手本にして学習します。

もとになったのは2015年3月に公開された論文「Distilling the Knowledge in a Neural Network」で、Geoffrey Hinton・Oriol Vinyals・Jeff Dean の3氏によるもの。

大きなモデルやアンサンブルが持つ知識を、配備しやすい1つのモデルへ圧縮する手法として書かれています(arXiv:1503.02531)。

発表の場はさらに前の NIPS 2014 ワークショップなので、いまの生成AIブームより10年ほど古い技術なのです。

狙いはモデルの圧縮だけではありません。

推論の高速化、手元の端末やエッジでの実行、運用コストの削減まで、小さくしたい理由はいくつも重なります。

なぜ「正解」ではなく「確率」を学ばせるのか

ここが蒸留のいちばん面白いところ。

通常の学習で与えるのは、「この画像は猫」という正解ラベルだけです。

ところが教師モデルの出力を覗くと、猫 0.90・犬 0.08・馬 0.01 のように 確率の分布 になっています。

この分布には「猫と犬は間違えやすいが、馬とは間違えにくい」という、正解ラベルだけでは伝わらない情報が乗っているのです。

蒸留はこの分布(ソフトターゲット)を手本にするので、正解だけを教えるより効率よく知識が移ります。

論文では出力を滑らかにするため、ソフトマックスに温度というパラメータを入れて分布のとがり方を調整する仕組みです。

AIの設定でよく見る temperature と、考え方としては同じもの。

教師の出力に乗っているこうした副次的な情報が、いわゆる「暗黙の知識」です。

裏を返すと、教師が苦手にしている部分も一緒に写し取られてしまいます。

蒸留したモデルの弱点が教師とよく似た形で出てくるのは、そのあたりが理由。

ファインチューニング・量子化との違い

この3つはよく混ざるので、並べて整理しておきます。

  • ファインチューニング:既存モデルに追加データを学習させ、特定タスクに合わせる。モデルの大きさは基本そのまま
  • 量子化:重みの数値精度を落として、ファイルサイズと計算量を減らす。学習し直しはしない
  • 蒸留:教師モデルの出力を使って、別の小さなモデルを訓練する。モデルそのものが入れ替わる

ざっくり言えば、ファインチューニングは味付け、量子化は圧縮、蒸留は世代交代

ただし実務では蒸留とファインチューニングが地続きになっていて、教師モデルの出力を訓練データにしてファインチューニングするという形で提供されることも多いです。

この3つは排他ではなく、重ねて使われることもあります。

蒸留で小さくしたモデルを、さらに量子化して端末に載せる、といった組み合わせは珍しくありません。

OpenAI が2024年10月に公開した Model Distillation は、まさにこの流れをAPI上で完結させる仕組みでした。

大きなモデルの入出力ペアを Stored Completions で貯め、それを訓練データにして安価なモデルをファインチューニングし、Evals で性能を比べる、という手順です(OpenAI公式)。

使う側にとっての意味

自分で蒸留を回す機会は、そう多くないはずです。

それでも仕組みを知っておくと、モデル選びの見え方が少し変わってきます。

「小さいモデル=単純に性能が低い」ではなく、特定の範囲では大きなモデルに近い振る舞いをするよう作られている ことがあるからです。

逆に言えば、教師が想定していない領域では急に弱くなる可能性もあるということ。

ベンチマークの総合点だけを見て決めてしまうと、得意分野の外で足をすくわれかねません。

逆に用途を絞って使うぶんには、小型モデルのコスト効率と速さがそのまま効いてきます。

小型モデルを検討するときは、自分のタスクで実際に比べてみるのがいちばん確実です。

最後に

蒸留は、大きなモデルの「答え方」ごと小さなモデルへ移す技術

正解ではなく確率の分布を手本にするところが肝で、そこに「間違えやすさ」の情報が乗っています。

量子化やファインチューニングとは役割が違うので、3つセットで覚えておくと混乱しません。

どれも「モデルを実用に落とし込む」ための道具だと捉えておくと、頭の中が整理しやすいはず。

モデルごとの特性と使い分けについては、別記事にもまとめてあります。

生成AIの賢い使い分け術|モデルの特性を理解して成果を最大化

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA