本文へスキップ

蒸留(Distillation)

この記事は6で読めます

ざっくり言うと

蒸留(Distillation)とは、大きなAIの答え方をお手本にして、小さなAIを育てる技術です。AIの中身にあたるプログラムをモデルと呼び、お手本を見せる側を教師モデル、まねて覚える側を生徒モデルといいます。正式な名前は知識蒸留(Knowledge Distillation)です。ねらいは、小さくて速く、動かしやすいモデルを作ることにあります。

軽量版のモデルには、MiniやLiteといった名前や、FlashやHaikuのような呼び名が付きます。どれも軽さを感じさせますが、蒸留で作られたかどうかは、名前だけでは分かりません。

学習の方法が分かるのは、提供元が技術資料やモデルカード(モデルの説明書)に書いている場合だけです

イメージ

正確には

知識蒸留が広まったきっかけは、2015年にHintonらが公開した『Distilling the Knowledge in a Neural Network』という論文です。この論文は、複数のモデルの予測をまとめた教師の知識を、扱いやすい1つのモデルへ圧縮する方法を示しました。

一般には、教師モデルのふるまいを手がかりにして別の生徒モデルを学習させ、目的の作業に合わせて性能と必要な計算量のつり合いを取ります。

ふつうの学習と、どこが違う?

  • 通常の教師あり学習
    人が用意した正解の札(ラベル)を主に使って学びます
  • 古典的な蒸留
    教師モデルが出した確率つきの答えも手がかりにします

たとえば、写真に写っているのが猫かどうかを見分ける場面です。教師モデルは、猫90% / 犬7% / キツネ3%のように、迷いの度合いまで数字で出せます。この惜しい候補も含めた答え方を学ばせる点が、Hintonらの方法の要点です。

ただし、その後に登場した蒸留のやり方はさまざまです。最終的な確率だけでなく、教師が作ったラベルや回答、説明、途中の計算結果を使う方式もあります。

何をお手本にするかで3通り

蒸留の設計にはいろいろな形があります。代表的なものを、お手本にする対象で分けると次の3つです。

やり方何をまねるか
応答ベース(Response-based)教師モデルが最後に出した答えをまねます。いちばん基本の方式です
特徴ベース(Feature-based)答えを出す途中の状態までまねます
関係ベース(Relation-based)データ同士の関係のとらえ方をまねます

量子化との違い

量子化(Quantization)も、モデルを軽くする技術です。ただし、やり方は蒸留と根本から違います。

量子化

いまあるモデルの中の数値を、粗い精度に置き換えて身軽にします。

蒸留

大きなモデルを参考にして、別の小さなモデルを新しく学習させます。

親方の話に戻すと、量子化は同じ親方が手数を減らして少し粗く握ることです。蒸留は、弟子を育てて別の店を出すことにあたります。

最近の流れ:LLMを教師にする蒸留

大きなLLM(大量の文章から言葉のつながりを学んだAI)を教師にする方法も研究されています。答えの例やラベルを作らせて、用途を絞った小さなモデルを育てるやり方です。

Google Researchが公開したDistilling Step-by-Stepは、その一例です。教師のLLMが言葉で書いた理由づけまで、追加の手がかりに使います。

論文では、4つの言語処理ベンチマーク(共通の性能テスト)で検証しています。その一例として挙がるのが、770MパラメータのT5です。少ない例を見せて使った540BパラメータのPaLMを、この小さいモデルが上回ったと報告されています。

ただし、これは特定の実験条件での結果です。小さいモデルがいつでも大きいモデルより高性能、という意味ではありません

使う場面

どんなときに使う?

蒸留したあとの実力は、教師と生徒の作り、学習データ、蒸留のやり方、そして何の作業で測るかによって変わります。小さいから劣る、大きいから必ず安定する、と名前やサイズだけで決めないでください。自分が実際に使うデータに近いもので、見比べてみましょう。

選ぶときのコツは、速さと、外したときに困る度合いを分けて見ることです。下書き、仕分け、定型の返信のように、あとから直せる仕事なら軽量版で足ります。契約書の確認や込み入った推論のように、間違うと困る仕事では、大きなモデルや人の目を組み合わせてください。

関連用語

  • パラメータ — モデルの中で調整される数値のことです。蒸留で減らしたいのがこの数で、生徒モデルは教師よりずっと少なく済みます
  • 学習(トレーニング) — データからルールを覚えていく工程です。蒸留も、その一種にあたります
  • 量子化(Quantization) — 中の数値を粗くして軽くする、もうひとつの代表的な軽量化技術です

やってみよう

よくある質問

Q. AIの蒸留とは何ですか?
A. 大きなAIの答え方をお手本にして、小さなAIを育てる技術です。お手本を見せる側を教師モデル、まねて覚える側を生徒モデルと呼び、正式には知識蒸留といいます。
Q. 量子化とはどう違うのですか?
A. 量子化は、いまあるモデルの中の数値を粗い精度に置き換えて身軽にします。蒸留は、大きなモデルを参考にして別の小さなモデルを新しく学習させます。両方を重ねることもできます。
Q. MiniやLiteという名前のモデルは、蒸留で作られているのですか?
A. 名前だけでは分かりません。学習の方法が分かるのは、提供元が技術資料やモデルカードに書いている場合だけです。書かれていないものは、非公開と考えてください。
Q. 軽いモデルと大きいモデルは、どう使い分けますか?
A. 速さと、外したときに困る度合いを分けて見ます。下書きや仕分けのようにあとから直せる仕事は軽量版で足り、契約書の確認のように間違うと困る仕事では大きなモデルや人の目を組み合わせます。

公開: 更新: ✓ 公式情報と照合:

参考ソース

判断クイズ

Liteと付いたモデルの作り方を、名前から決めつけずに確かめられますか?

3問です。答えるとその場で解説が出ます。全問終えたら、「回答を記録する」で学習の記録に残せます。

1. 「Lite」という軽量版が出ました。蒸留で作られたか知りたいときは?
2. 「量子化と蒸留、どっちも軽くする話ですよね」と聞かれました
3. 契約書の確認と、問い合わせへの定型返信。軽量モデルを使うならどちらですか?

全問に答えると、回答を記録できます。

残るのは「答えたかどうか」だけで、正解数は保存されません。この端末の中だけに残り、別の端末には引き継がれません。

この教科書は無料で全文公開しています。仕事で使えるところまで進みたい方は、実習と資料がそろった生徒プランをどうぞ。

生徒プランを見る(14日間無料)

あわせて読みたい