LLMにおけるDistillationとは、一般に高性能なTeacher Model(教師モデル)が持つ知識や振る舞いを、Student Model(生徒モデル)へ移す学習手法を指します。
日本語では「知識蒸留」や「Knowledge Distillation」と呼ばれます。
Distillationは、特に大規模なTeacher Modelから、より小型なStudent Modelへ能力を移すモデル圧縮の方法として広く利用されています。
ただし、Distillationの本質は必ずしも「モデルを小さくすること」だけではありません。
Teacher Modelが持つ予測傾向、生成能力、内部表現、特定分野の能力などをStudent Modelへ移すことが中心的な考え方です。
そのため、近年のLLMでは、モデルの小型化だけでなく、推論能力や指示追従能力、専門分野の知識などを別のモデルへ移す目的でもDistillationが活用されています。
Teacher ModelとStudent Modelを使って学習する
Distillationでは、一般的に高性能なモデルをTeacher Model、Teacherから学習するモデルをStudent Modelと呼びます。
基本的な構造は次のようになります。
Teacher Model
↓
出力・確率分布・内部表現・生成データなど
↓
Student Model
↓
Teacherに近い振る舞いを学習
通常の機械学習では、人間が用意した正解データを使ってモデルを学習させます。
一方、Distillationでは、Teacher Modelが生成した情報もStudent Modelの教師信号として利用します。
Studentは単純に正解だけを覚えるのではなく、Teacherが入力に対してどのような予測や出力を行うのかを学習します。
なぜ「Distillation=蒸留」と呼ばれるのか
Distillationは、日本語で「蒸留」を意味します。
化学における蒸留では、混合物から必要な成分を取り出したり、濃縮したりします。
Knowledge Distillationもこれに似ており、Teacher Modelが持つ膨大な情報や能力のうち、Studentに必要な要素を学習によって移していくことから「蒸留」と呼ばれています。
たとえば、非常に大きなLLMをそのまま実サービスで利用すると、高性能なGPU、大量のメモリ、電力、推論コストなどが必要になります。
そこでTeacher Modelの能力を、より小さなStudent Modelへ移すことで、性能を可能な範囲で維持しながら運用コストを下げることができます。
LLMのDistillationの基本的な仕組み
Teacher Modelに入力を与える
まず、Teacher Modelに大量の入力データを与えます。
たとえば、
「日本の首都はどこですか?」
という質問をTeacherに入力すると、
「日本の首都は東京です。」
という回答を生成します。
このようなTeacherの出力をStudentの学習データとして利用できます。
Teacherの回答をStudentに学習させる
次に、
入力
+
Teacherの回答
というデータを使ってStudent Modelを学習させます。
大量の質問に対してTeacherが高品質な回答を生成すれば、それらをStudentの教師データとして利用できます。
StudentはTeacherの回答パターンを繰り返し学習することで、Teacherに近い振る舞いを獲得していきます。
Teacherの内部情報を使う場合もある
Distillationでは、Teacherが生成した文章だけを利用するとは限りません。
Teacher Modelへ直接アクセスできる環境では、
トークンの確率分布
logit
Hidden State
Attention関連表現
などを利用してStudentを学習させることもあります。
どの情報をTeacherからStudentへ渡すかによって、Distillationの方法が変わります。
Knowledge DistillationにおけるSoft Targetとは
正解だけではなく確率分布も学習する
古典的なKnowledge Distillationを理解するうえで重要なのが「Soft Target」という考え方です。
たとえば、画像分類モデルがある画像に対して、
猫:70%
犬:20%
キツネ:8%
その他:2%
と予測したとします。
通常の教師データでは、
猫:100%
その他:0%
のように、正解ラベルだけをモデルへ与えることがあります。
しかしKnowledge Distillationでは、Teacherが出した確率分布そのものをStudentへ学習させることができます。
Studentは単に、
「これは猫である」
と学習するだけではありません。
「猫である可能性が高いが、犬ともある程度似ている」
というTeacherの予測傾向まで学ぶことができます。
こうしたTeacherの確率分布に含まれる情報が、Studentの学習に役立つ場合があります。
LLMではトークン単位の情報を蒸留できる
LLMは次のトークンを予測して文章を生成する
自己回帰型のLLMは、基本的に文章全体を一度に生成しているわけではありません。
入力された文脈をもとに、次に続くトークンの確率分布を計算し、それを繰り返すことで文章を生成します。
たとえば、
「日本の首都は」
という入力に対してTeacherが、
東京:95%
大阪:2%
京都:1%
その他:2%
のような予測分布を出しているとします。
Distillationでは、このTeacherの確率分布にStudentの出力分布を近づけるよう学習することができます。
これがLLMにおけるトークンレベルのDistillationの代表的な考え方です。
LLMで利用される主なDistillationの種類
Response-based Distillation
比較的分かりやすい方法が、Teacher Modelが生成した回答をStudentの学習データとして利用する方法です。
たとえば、
質問
↓
Teacher LLM
↓
高品質な回答を生成
↓
質問と回答の組み合わせをStudentへ学習
という流れになります。
Teacher Modelの内部構造やlogitにアクセスできなくても、Teacherが生成したテキストを利用できれば実施できる場合があります。
このような方式は、論文や文脈によってResponse-based Distillation、Sequence-level Distillation、Black-box Knowledge Distillationなど、さまざまな名称で扱われます。
Logit Distillation
Logit Distillationでは、Teacher Modelが各トークンに対して出力するlogitや確率分布を利用します。
Student Modelの出力分布をTeacherの出力分布に近づけるように学習させます。
単純にTeacherの最終的な文章だけを学習する場合と比較して、Teacherが他の候補トークンをどの程度有力だと判断していたのかという情報も利用できます。
ただし、この方式を利用するにはTeacherのlogitなどへアクセスできる必要があります。
外部LLMのAPIでは、必要な内部情報が提供されていない場合もあります。
Feature Distillation
Feature Distillationでは、Teacher Modelの中間層が生成する内部表現をStudentへ学習させます。
Transformerでは、各レイヤーでHidden Stateなどの内部表現が生成されます。
TeacherとStudentの内部表現を近づけることで、最終出力だけではなく、モデル内部で形成される特徴表現もStudentへ移そうとします。
TinyBERTなどは、こうしたTransformer内部の情報を利用する蒸留手法の代表的な例です。
Attention Distillation
TransformerではAttention機構が重要な役割を担っています。
そのため、TeacherとStudentのAttention関連表現を近づける方法も研究されています。
簡単に表現すれば、
「Teacherが入力トークン同士をどのような関係として処理しているか」
という情報の一部をStudentへ学習させる方法です。
ただし、Attentionをそのまま人間の「注目」や「思考内容」と同一視することは適切ではありません。
Attention行列などの内部的な数値表現を学習対象として利用すると理解するほうが正確です。
Reasoning Distillationとは
Teacherの問題解決パターンをStudentへ移す
近年のLLMでは、最終回答だけでなく、問題解決に関連する中間的な説明やrationaleなどを学習に利用するDistillationも研究されています。
たとえばTeacherが数学問題に対して、問題を分解しながら回答を生成したとします。
そのような学習データをStudentへ与えることで、単純に正解だけを覚えるのではなく、問題解決のパターンを学習させることを目指します。
このようなアプローチは、Reasoning DistillationやRationale-based Distillationなどとして扱われることがあります。
推論能力を完全にコピーできるわけではない
注意したいのは、Teacherの推論に関連するデータを学習したからといって、Teacherの能力をそのままStudentへコピーできるわけではないことです。
Student Modelにはモデルサイズや学習容量などの制約があります。
そのため、
数学
論理問題
プログラミング
長文推論
などの高度なタスクでは、TeacherとStudentの性能差が残る可能性があります。
DistilBERTとは
BERTを蒸留して小型化した代表例
Knowledge Distillationの代表的なモデルの一つがDistilBERTです。
DistilBERTは、BERTをTeacherとして知識蒸留を行い、より軽量なモデルを構築したものです。
原論文では、実験条件において、
モデルサイズを約40%削減
BERTの言語理解能力の約97%を維持
推論速度を約60%高速化
したと報告されています。
ここで重要なのは、単純にBERTの層を削除しただけではなく、TeacherからStudentへ知識を移す学習を行っている点です。
なお、実際の推論速度はCPUやGPU、バッチサイズ、実装環境などによって変わります。
そのため、どの環境でも必ず同じ割合で高速化するという意味ではありません。
TinyBERTとは
Transformer内部の情報も利用するDistillation
TinyBERTもKnowledge Distillationを利用した代表的なモデルです。
TinyBERTではTeacher BERTからStudentへ知識を移す際、最終出力だけでなく、Transformer内部の表現なども利用します。
原論文では4層版のTinyBERTについて、実験条件において、
BERT-BaseのGLUE性能の96.8%超を維持
約7.5倍小型
約9.4倍高速
と報告されています。
TinyBERTは、単純な出力の模倣だけでなく、Transformer内部の複数の表現を学習に利用するKnowledge Distillationの代表例といえます。
DistillationとFine-tuningの違い
Fine-tuningは既存モデルを追加学習する方法
Fine-tuningとは、すでに学習済みのモデルを追加データで学習し、特定の用途やタスクへ適応させる方法です。
たとえば一般的なLLMを、
カスタマーサポート
法律文書
プログラミング
企業独自の文章スタイル
などへ適応させるためにFine-tuningを行うことがあります。
DistillationとFine-tuningは併用できる
DistillationとFine-tuningは、完全に対立する概念ではありません。
たとえば、
Teacher LLMに回答を生成させる
↓
Teacherが生成したデータセットを作る
↓
そのデータでStudent LLMをFine-tuningする
という方法もあります。
この場合、StudentのFine-tuningを行いながら、Teacherの能力を移しているため、Distillationの一種として捉えることができます。
したがって、
Fine-tuning=モデルを追加学習する方法
Distillation=Teacherの知識や振る舞いをStudentへ移す学習戦略
と考えると理解しやすいでしょう。
DistillationとQuantizationの違い
DistillationはTeacherの能力をStudentへ移す
Distillationでは、Teacher Modelを教師としてStudent Modelを学習します。
たとえば、
70BのTeacher Model
↓
Teacherの出力などを利用して学習
↓
7BのStudent Model
という構成が考えられます。
ただし、これは既存の70Bモデルをそのまま7Bへ変換するという意味ではありません。
通常はStudent側のモデルを用意し、Teacherの出力や内部情報を利用してStudentを学習します。
Quantizationは数値表現を軽量化する
Quantizationでは、モデルのパラメータなどを表現する数値精度を下げます。
たとえば、
FP32
FP16
INT8
INT4
などがあります。
一般にビット数を減らすことで、モデルのメモリ使用量を減らしたり、対応するハードウェアや実装では推論を高速化したりできる可能性があります。
つまり、
Distillation
=Teacherの能力をStudentへ移す
Quantization
=モデルの数値表現を低ビット化する
という違いがあります。
両者は組み合わせることも可能です。
DistillationとPruningの違い
Pruningはモデル内部の不要な要素を削減する
Pruningは、モデル内部で重要度が低いと判断された重みや構造などを削減する方法です。
手法によっては、
重み
ニューロン
Attention Head
レイヤー
などが削減対象になります。
一方、DistillationはTeacherからStudentへ能力を移す方法です。
そのため、
Pruning
↓
Distillation
↓
Quantization
のように複数の圧縮技術を組み合わせることもできます。
LLMをDistillationするメリット
モデルを小型化しやすい
Distillationが広く利用される大きな理由の一つがモデル圧縮です。
巨大なTeacher Modelの能力を、よりパラメータ数の少ないStudentへ移せれば、モデル重みの保存に必要なメモリなどを削減しやすくなります。
特にGPUメモリが限られる環境では重要なメリットです。
推論を高速化できる可能性がある
一般に、より小さなStudent Modelは計算量を減らしやすくなります。
そのため、
リアルタイムAI
Webアプリケーション
スマートフォン
エッジ端末
などでも利用しやすくなる可能性があります。
ただし、実際の速度はモデル構造、GPUやCPU、バッチサイズ、入力長、出力長、推論エンジンなどにも左右されます。
運用コストを削減しやすい
LLMを大量に利用するサービスでは、推論コストが大きな問題になることがあります。
小型Studentへ処理を移せれば、
GPU利用量
サーバーコスト
電力消費
1リクエストあたりの推論コスト
などを削減できる可能性があります。
特に大量アクセスを処理するサービスでは、モデル1回あたりのコスト差が全体の運用費に大きく影響します。
特定の能力をStudentへ移せる
Distillationは単なる圧縮だけに利用されるわけではありません。
Teacherが得意とする、
プログラミング
数学
文章生成
マーケティング
法律
金融
などの特定能力をStudentへ移す目的でも利用できます。
Teacherに特定分野のデータを大量に生成させ、それをStudentの学習に利用する方法も考えられます。
LLMをDistillationするデメリット
Teacherと同等の性能になるとは限らない
StudentはTeacherより小さいことが多いため、同じ能力を完全に再現できるとは限りません。
特に、
複雑な推論
長文理解
数学
プログラミング
幅広い知識
などでは性能差が残ることがあります。
Distillationは「性能を完全に維持したまま単純にモデルを縮小できる技術」ではありません。
性能と効率のバランスを取る技術と考えるほうが適切です。
Teacherの誤りをStudentが学習する可能性がある
Teacher Modelが常に正しい回答を生成するとは限りません。
Teacherの出力に、
事実誤認
推論ミス
偏り
不適切な回答
などが含まれていれば、それらをStudentが学習する可能性があります。
そのため、Teacherが生成したデータをそのまま利用するのではなく、
品質評価
フィルタリング
重複除去
誤回答の除外
などを行うことが重要です。
蒸留データの生成にコストがかかる
Studentを低コストで運用できたとしても、作成時には大きなコストがかかる場合があります。
たとえば数百万件規模の学習データをTeacherに生成させる場合、大量の推論処理が必要になります。
外部APIをTeacherとして利用する場合は、API利用料金も発生します。
そのため、
Studentの運用コストは安い
一方でStudentを作るまでのコストは高い
というケースも考えられます。
ライセンスや利用規約を確認する必要がある
第三者が提供しているLLMをTeacherとして利用する場合、その出力を別のAIモデルの学習に利用できるとは限りません。
サービスやモデルによって、
生成物の利用条件
モデル学習への利用可否
商用利用条件
ライセンス条件
などが異なります。
Distillationを実施する場合は、使用するTeacher Modelの利用規約やライセンスを確認することが重要です。
DistillationはLLMの実用化で重要な技術
LLMの性能は急速に向上していますが、高性能モデルほど大量の計算資源を必要とする傾向があります。
すべての処理に最大規模のモデルを利用する必要があるとは限りません。
そこで、
高性能な大型Teacher
↓
Distillation
↓
中型Student
↓
特定用途向けの小型Student
というように、用途ごとにモデルを使い分ける考え方があります。
高度な推論が必要な処理だけ大型モデルへ任せ、日常的な処理は軽量なStudentへ任せれば、システム全体のコストを抑えながらAIを活用できます。
このような理由から、DistillationはLLMを研究用途だけでなく、実際のサービスへ展開するうえでも重要な技術となっています。
まとめ
LLMにおけるDistillationとは、Teacher Modelが持つ知識、予測傾向、生成行動、内部表現、特定能力などをStudent Modelへ移すための学習手法です。
特に、
大型Teacher
↓
Distillation
↓
小型Student
という構成によって、モデルを小型化しながらTeacherに近い能力を維持する目的で広く利用されています。
ただし、Distillationは単なるモデル圧縮技術ではありません。
現在のLLMでは、
モデルの小型化
推論速度の改善
GPUメモリの削減
運用コストの削減
推論能力の移転
専門能力の移転
など、さまざまな目的で利用されています。
また、DistillationはFine-tuning、Quantization、Pruningとは異なる考え方ですが、これらの技術と組み合わせることもできます。
今後LLMを実際のサービスへ導入する際には、最大規模のモデルをそのまま利用するだけでなく、Distillationによって必要な能力をより効率的なStudent Modelへ移すことが、性能とコストを両立する重要な選択肢になるでしょう。
以上、LLMのDistillationについてでした。
最後までお読みいただき、ありがとうございました。
