仕組み
- プロンプト。 チャットのユーザー側です。あなたの返答が3つ含まれる1つの会話は3つのプロンプト行になり、それぞれがその返答までの会話を保持するため、教師モデルは会話が実際に進んだ通りに回答します。
- 教師モデルの回答。 教師モデルはすべてのプロンプトに対して完全な回答を作成します。あなた自身の返答をゴールデンエグザンプルとして含めることができるため、教師モデルはあなたがどのように回答するかを把握できます。一部のサービスでは、カバレッジを広げるために類似のプロンプトを生成することもあります(データ合成)。
- 生徒モデルのトレーニング。 生徒モデルは、通常の教師ありファインチューニングとまったく同じように、プロンプト → 教師モデルの回答でファインチューニングされ、損失は回答トークンのみに適用されます。
任意のモデルファミリー。テキストのみが引き継がれます。教師ありファインチューニングとまったく同じように学習します。
同じトークナイザーが必要なため、通常、教師は同じファミリーのより大きなモデルになります。自らの間違いから学習します。
{"messages": [
{"role": "system", "content": "You are Scalata's support assistant."},
{"role": "user", "content": "How do I share a report with a client?"},
{"role": "assistant", "content": "Open the report → Share → pick the client."},
{"role": "user", "content": "Does the client need an account?"}
]}研究文献では、これはシーケンスレベルの知識蒸留(Kim & Rush, 2016)と呼ばれています。教師モデルの確率をトークンごとに一致させるのではなく、生徒モデルは教師モデルが実際に生成した単一のシーケンスから学習します。ソフトターゲットの詳細は失われますが、教師モデルからはテキスト以外のものを必要としません。これがマネージドサービスで採用されている理由です。教師モデルは、API経由でのみアクセス可能なホスト型モデルでも構わないからです。
「オフポリシー」と呼ばれる理由
ポリシーとは、強化学習においてモデルがトークンを選択する方法を指す言葉です。ここでは、トレーニングの回答は教師モデルという異なるポリシーから得られるため、生徒モデルはオフポリシーで学習します。これには、露出バイアスまたは学習と推論のミスマッチと呼ばれる既知の代償が伴います。トレーニング中、生徒モデルは常に教師モデルの完璧なプレフィックスから継続します。しかし実際の使用では、ミスを含め、自身の以前のトークンから継続することになり、そこから回復する練習をしたことがありません。序盤の小さなミスが、教師モデルの回答にはなかった方向へと導く可能性があります。
オンポリシー蒸留は、まさにこれを修正するために存在します。教師モデルと生徒モデルが異なるモデルファミリーに属している場合、または教師モデルがテキストとしてのみ利用可能な場合、オフポリシーは依然として実用的な選択肢となります。
具体例
- チャットの例:ユーザーがレポートの共有方法を尋ね、あなたが返答します。クライアントにアカウントが必要かどうかを尋ねられ、あなたが返答します。リンクの有効期限を尋ねられ、あなたが返答します。
- 3つのプロンプト行:(1)最初の質問、(2)最初の質問、あなたの最初の返答、および2番目の質問、(3)3番目の質問までのすべての内容。
- 教師モデルは3つの回答を作成します。行2と3に含まれる以前の返答はあなたのものであり、コンテキストとして保持されるため、教師モデルは自身の会話ではなく、あなたの会話を継続します。
- 生徒モデルは3つの例でトレーニングを行います:各プロンプト行 → それに対する教師モデルの回答。
- コスト:3つの回答に対する教師モデルの推論(入力および出力トークン)に加えて、生徒モデルのトレーニングトークン(プロンプトと教師モデルの回答の合計 × エポック数)。
最大限に活用するために
- 評価に基づいて教師モデルを選択する。 まず、検証用の質問で教師モデルと生徒モデルを比較します。生徒モデルがすでに近いレベルにある場合、得られるものはほとんどありません。
- データ量が重要。 教師モデルの回答一つ一つが学習データとなりますが、小規模なモデルがその傾向を変えるには多くのデータが必要です。数十個のプロンプトで変化することは稀です。数百個以上を計画するか、サービスのプロンプト合成機能をご利用ください。
- 教師モデルの文章量とスタイルに注意する。 生徒モデルはそれらを学習します。チームが50語で書くところを300語で書く教師モデルを使用すると、生徒モデルも同じように出力するようになります。模範解答も役立ちますが、その後に自社の回答データで教師あり学習を行うとさらに効果的です。
- 思考する教師モデルは、回答の前に長い推論を記述します。これは複雑な多段階の問題には有用ですが、短いサポート回答においてはコストのかかるノイズとなります。
よくある間違い
- 生徒モデルの傾向を変えるにはプロンプトの数が少なすぎる。
- 教師モデルのすべてのエラーがトレーニングの例になることを忘れてしまう。
- ゴールデンエグザンプルや後続の教師ありプロセスなしで、自社のスタイルが反映されることを期待してしまう。
- 蒸留された生徒モデルを教師モデルとしか比較しない。ベースとなる生徒モデルとも比較してください。これにより、蒸留によって何が追加されたかが分かります。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01Sequence-Level Knowledge DistillationKim & Rush, 2016 · arXiv · arxiv.org手法:教師モデルが生成したシーケンスで生徒モデルをトレーニングします。
- 02Distilling the Knowledge in a Neural NetworkHinton, Vinyals & Dean, 2015 · arXiv · arxiv.orgシーケンスレベルのバージョンが簡略化している、オリジナルのソフトターゲット蒸留。
- 03DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement LearningDeepSeek-AI, 2025 · arXiv · arxiv.org大規模な例:小規模なQwenおよびLlamaモデルに蒸留された80万件のR1サンプル。
- 04On-Policy Distillation of Language Models: Learning from Self-Generated MistakesAgarwal et al., 2024 · ICLR / arXiv · arxiv.orgオフポリシー蒸留が抱える学習と推論のミスマッチについて説明します。