蒸留とは

じょうりゅうknowledge distillation別名 知識蒸留、知識の蒸留、モデル蒸留

1行定義

蒸留とは、大きく高性能な教師モデルの出力を手本にして小さな生徒モデルを学習させ、軽いモデルで教師に近い性能を得る手法のことです。

くわしく

蒸留(知識蒸留、knowledge distillation)は、大きなモデルが身につけた知識を、小さなモデルに移す手法です。2015年にHintonらが発表した論文で広く知られるようになりました。エッジAIのように、計算資源が限られる場面で役立ちます。

教師と生徒

まず、大きく高精度なモデル(または複数のモデルのアンサンブル)を教師モデルとして学習します。次に、小さな生徒モデルを、教師モデルの出力に近づくように学習させます。

ソフトターゲット

通常の学習で使う正解ラベルは、「犬」なら犬だけが1、ほかは0という形です(ハードターゲット)。これに対し、教師モデルの出力は「犬0.90、狼0.08、猫0.02」のような確率の分布です。この分布をソフトターゲットと呼びます。

ソフトターゲットには、「この犬の画像は、猫より狼に少し似ている」というクラスどうしの似かたの情報が含まれます。生徒モデルはこの情報も学べるため、正解ラベルだけで学ぶより効率よく学習できます。

ただし、教師の出力が1つのクラスに集中しすぎると、この情報は見えにくくなります。そこで、ソフトマックス関数に温度Tを導入し、各クラスの値をexp(z_i / T)に比例させて計算します。Tを1より大きくすると分布がなめらかになり、小さな確率の差が見えやすくなります。学習では、正解ラベルに対する誤差も組み合わせるのが一般的です。

応用とほかの軽量化手法

BERTを蒸留したDistilBERTは、大きさを40%減らして60%速くしながら、言語理解の性能の97%を保ったと報告されています。

モデルの軽量化には、影響の小さい重みを取り除くプルーニングや、数値を少ないビット数で表す量子化もあります。これらが元のモデルを直接削ったり変換したりするのに対し、蒸留は別の小さなモデルを新たに学習させます。

覚え方

「先生の迷い(確率の分布)まで生徒に伝える」と覚えます。

G検定での出題

教師モデルと生徒モデルの関係、ソフトターゲットと温度付きソフトマックス関数の役割、エッジAIのための軽量化という目的、プルーニングや量子化との違いが問われます。

混同しやすい用語

用語意味
プルーニング学習済みのニューラルネットワークから出力への寄与が小さい重みや結合を取り除き、精度をなるべく保ったままモデルを小さくする手法
量子化モデルの重みなどの値を、より少ないビット数の粗い段階で表すことで、メモリ使用量を減らし、計算を速く軽くする手法

違いを表で比べる:プルーニング・量子化と蒸留

◯×チェック

  1. 蒸留では、教師モデルが出力するクラスごとの確率の分布をソフトターゲットとして使い、生徒モデルに学習させる。

    答えを見る

    答え ◯ 正しい

    ソフトターゲットには、正解以外のクラスとどれだけ似ているかという情報が含まれます。生徒はこれを手がかりに効率よく学べます。

  2. 蒸留でソフトマックス関数の温度Tを大きくすると、出力の確率分布が1つのクラスに集中し、ワンホットベクトルに近づく。

    答えを見る

    答え × 誤り

    温度を上げると分布はなめらかになります。Tを小さくするほど1つのクラスに集中します。蒸留ではTを上げて、小さな確率の差を見えやすくします。

  3. 蒸留は、学習済みモデルの重みのうち影響の小さいものを取り除き、元のモデルそのものを小さくする手法である。

    答えを見る

    答え × 誤り

    それはプルーニングの説明です。蒸留は、教師モデルを手本にして、別の小さな生徒モデルを新しく学習させます。

練習問題

蒸留の問題(4問)
  1. モデル軽量化の手法
  2. エッジAIを採用する利点
  3. 蒸留におけるソフトターゲット
  4. AIの環境負荷の見積もり

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術34

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習