蒸留
knowledge distillation · teacher-student training
ひとことで
蒸留は、より大きな教師モデルの出力を使って小さな学生モデルを学習させる手法です。これにより、学生モデルははるかに低コストで教師モデルの挙動の多くを再現できます。これが小さなモデルが急速に性能を向上させた主な理由であり、商用 API の利用規約では制限や禁止が課されていることが多いです。
教師モデルは、答えや推論のトレース、ラベルといった出力を生成し、学生はそれらを生のウェブテキストではなく直接学習します。教師の出力はスクラップしたデータよりもクリーンで一貫性が高いため、学生は前処理学習に比べてはるかに少ない例で、速く学習できます。 これが、フロンティアモデルと高性能な小型モデルの性能差が急速に縮小した理由です。また、これはAIサービングの価格低下の主な要因でもあります。ルーティンなリクエストの大部分を処理しつつ、コストを十分に削減できる蒸留モデルは、ほとんどの製品にとって最大の節約となります。 注意すべき2つの限界があります。学生は教師のミスをスキルとともに引き継ぐため、エラーは平均化されるのではなく伝播します。さらに、学生は蒸留に使用した分布外では一般化が苦手です――訓練セット内のタスクでは強い性能を示しますが、そこからわずかに外れた領域では著しく弱くなることがあります。 ライセンスの問題は現在進行中です。出力を使用して、我々と競合するモデルを開発することはできませんという条項は、ほとんどの商用API利用規約やいくつかのオープン重みライセンスに含まれています。特定の蒸留が許可されるかどうかは契約上の問題であり、業界内で繰り返し争点となっています。
よくある質問
- 蒸留は合法ですか?
- ソースに依ります。多くの商用APIの利用規約は、出力を競合するモデルの学習に使用することを制限しており、一部のオープン重みライセンスでも同様です。その目的で使用する権利を有するモデルから蒸留を行うことは一般的な手法です。
- 蒸留後、どの程度の能力が残るか?
- 訓練データでカバーされた領域では多く、その外では少ない。生徒は訓練データの分布に合わせて教師と密接に一致し、そこから逸脱すると性能が低下する。