仕組み
- 生徒モデルの回答。 各プロンプトに対して、生徒モデルは独自の回答(練習用の回答)を作成します。
- 教師モデルの読み取り。 教師モデルは同じプロンプトと回答を1回のパスで処理し、各位置において次のトークンに対する確率分布(自身であればそこで何と回答したか)を出力します。
- 比較と更新。 各トークンにおいて、ダイバージェンスを用いて生徒モデルの分布を教師モデルの分布と比較し、生徒モデルを教師モデルに近づけます。
{"prompt": [
{"role": "user", "content": "What's the difference between EBITDA and EBIT?"}
]}参照用の回答は不要であり、自社の回答データがターゲットとして使用されることもありません。使用されるのはプロンプトのみです。教師モデルは回答全体を記述することはなく、読み取るだけであるため、生成するよりもトークンあたりのコストがはるかに低く抑えられます。
高い効果を発揮する理由
オンポリシー蒸留は、他の2つの手法の長所を取り入れています。教師あり学習と同様に、そのシグナルは密であり、すべてのトークンがフィードバックを受け取ります。強化学習と同様に、そのデータはオンポリシーであり、生徒モデル自身の回答から得られるため、生徒モデルが実際に犯す間違いをカバーします。オフポリシーの生徒モデルは教師モデルの完璧な経路しか見ることができず、強化学習の生徒モデルは自身の経路を見るものの、回答全体に対して1つの数値しか得られません。
任意のモデルファミリー。テキストのみが引き継がれます。教師ありファインチューニングとまったく同じように学習します。
同じトークナイザーが必要なため、通常、教師は同じファミリーのより大きなモデルになります。自らの間違いから学習します。
- プロンプト:「What's the difference between EBITDA and EBIT?(EBITDAとEBITの違いは何ですか?)」
- 生徒モデルは順調に書き始めますが、その後「EBIT adds back depreciation...(EBITは減価償却費を足し戻し…)」と記述します。これは逆であり、足し戻すのはEBITDAです。
- 「adds」というトークンにおいて、教師モデルの確率は「deducts」や「subtracts」を支持しますが、生徒モデルは「adds」を支持しました。まさにその部分でダイバージェンスが大きくなります。
- この更新により、その文脈における「adds」の確率が下がり、教師モデルの選択肢の確率が上がります。これが正確な修正です。両者がすでに一致しているトークンは、更新にほとんど影響を与えません。
- 評価器を用いた強化学習(RL)の場合、回答全体に低いスコアをつけ、正しいトークンも含めてすべてのトークンを等しく抑制することになります。
Forward KL、Reverse KL、またはその組み合わせ
生徒モデルと教師モデルの分布は2つの方向から比較でき、その選択によって生徒モデルの成長の方向性が変わります。
- Forward KL(KL(teacher ‖ student))は、教師モデルが高い確率を割り当てたものに対して、生徒モデルが低い確率を割り当てた場合に重いペナルティを与えます。生徒モデルは、教師モデルのすべての選択肢を網羅するように分布を広げます(モード網羅)。すべてを学習しきれない小規模な生徒モデルは、選択肢の中間に重みを置くことになり、結果として曖昧で質の低いテキストを生成する可能性があります。
- Reverse KL(KL(student ‖ teacher))は、教師モデルが可能性が低いとみなす内容を生徒モデルが出力した場合に重いペナルティを与えます。生徒モデルは教師モデルの主要な選択肢に専念し、それ以外を無視します(モード探索)。これにより、より鋭く、より決定的で、多様性の少ない出力となります。
- Jensen-Shannonダイバージェンス(JSD)およびその一般化形式は、これら2つを組み合わせたものです。GKDの論文では、最適な選択はタスクに依存することが示されています。
Reverse KLは、小規模な生徒モデルや、正解が1つに定まっているタスクに適しています。そのため、チャットモデルや推論モデルのオンポリシー蒸留で一般的に使用されています。Thinking Machinesの2025年のレポートではトークンごとのReverse KLが使用されており、TRLのDistillationTrainerでもデフォルト設定となっています。Scalataでは、この選択はダイバージェンスβの設定に該当します。
要件とコスト
- 同一の語彙。 分布はトークンごとに比較されるため、両方のモデルがテキストを同じトークンに分割する必要があります。実際には、教師モデルには同じファミリーのより大規模なモデル(例:Qwen2.5-0.5Bを教えるQwen2.5-3Bなど)が使用されます。
- 両モデルをGPUに配置。 教師モデルは生徒モデルと共にロードされます。bf16の3B教師モデルの場合、生徒モデルに加えて約6GBのメモリが必要です。
- 生成時間。 各ステップでトークンごとに回答を生成するため、同じデータでの教師あり学習よりも時間がかかります。最大練習回答長が主な調整要素となります。
- スタイル。 生徒モデルは、文章量を含め、教師モデルの傾向を学習します。自社チームのスタイルも反映させるには、蒸留後のモデルに対して、自社の回答データを用いた教師あり学習を追加で実行してください。
得られる成果は大きくなります。Thinking Machinesのレポートで比較されているQwen3の技術レポートの数値によると、オンポリシー蒸留により、約1,800GPU時間でQwen3-8BのAIME'24でのスコアが74.4%に達しました。一方、同様の開始点からの強化学習(RL)では、17,920時間で67.6%にとどまりました。小規模なモデルや限定的なタスクでは効果は小さくなりますが、それでもトークンごとのシグナルは、少数の教師モデルの回答よりも、プロンプトごとに生徒モデルを大きく前進させます。
よくある間違い
- 別のモデルファミリーから教師モデルを選択すること。語彙が異なるため、トークンごとの比較は不可能です。
- 教師モデルのメモリ要件を忘れること。生徒モデル単体では収まるGPUでも、両方のモデルは収まらない場合があります。
- 「念のため」に長い練習回答長を設定すること。ステップ時間の大部分は生成に費やされます。
- 自社のスタイルを期待すること。ここでは、自社の回答データがターゲットとして使用されることはありません。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01On-Policy Distillation of Language Models: Learning from Self-Generated MistakesAgarwal et al., 2024 · ICLR / arXiv · arxiv.org手法:生徒モデル自身の出力に対し、トークンレベルでの教師モデルからのフィードバックと、選択したダイバージェンスを用いて学習を行います。
- 02MiniLLM: On-Policy Distillation of Large Language ModelsGu et al., 2023 · arXiv · arxiv.org小規模言語モデルへの蒸留において、Reverse KLの有効性を論じています。
- 03On-Policy DistillationThinking Machines Lab, 2025 · thinkingmachines.aiRLとの計算量の比較や、追加学習後のスキル回復への活用などを含む、実践的な解説。
- 04Distillation TrainerHugging Face TRL docs · huggingface.coオープンソースのオンポリシー蒸留トレーナーと、そのβの定義。