onpolicydistillation(オンポリシー・ディスティレーション)

AI/ML

概要

このリポジトリは「on-policy distillation (OPD)」を実際に試すための Colab ノートブックを中心に構成されています。目的は、Qwen3-4b-Instruct-2507(教師モデル)によって生成された解答や推論過程を用いて、より小さい Qwen3-0.6b(学生モデル)を強化し、数学問題データセット GSM8K に対する正答率を向上させることです。標準的な蒸留(オフラインで固定データに対して行う手法)とは異なり、OPD では学生モデルの出力分布に合わせたオンポリシーサンプリングを行い、教師の応答で学生を逐次改善します。ノートブックは Colab で開けるバッジを備え、ハンズオンで試せる形にまとまっています。

GitHub

リポジトリの統計情報

  • スター数: 17
  • フォーク数: 2
  • ウォッチャー数: 17
  • コミット数: 5
  • ファイル数: 3
  • メインの言語: Jupyter Notebook

主な特徴

  • Colab で即実行できる on-policy distillation のハンズオンノートブックを提供
  • Qwen3-4b-Instruct-2507 を教師、Qwen3-0.6b を学生として用いた実験構成
  • 数学問題データセット GSM8K を対象にしたタスク指向の改善例
  • シンプルなワークフロー(教師生成 → 学生学習 → 評価)で再現性を重視

技術的なポイント

on-policy distillation(OPD)は、教師モデルの知識を学生モデルへ移す際に、学生の現在の振る舞い(ポリシー)に合わせて教師が提供するデータを逐次生成・利用する手法です。本ノートブックでは、GSM8K の問題に対して教師モデル(Qwen3-4b-Instruct-2507)に解答や途中の推論を生成させ、それを学習信号として学生モデル(Qwen3-0.6b)を更新します。従来のオフライン蒸留は固定データセットを用いますが、OPD は学生の出力分布から入力文やプロンプトをサンプリングするため、分布シフトの問題を緩和しやすいという利点があります。

実装上の重要点としては、(1)教師と学生間のフォーマット整合:教師の出力(解答の形式やチェーン・オブ・ソートの有無)を学生が学べるように統一すること、(2)サンプリング設定:温度やビーム幅など生成時の確率分布を調整して多様な教師データを得ること、(3)損失設計:単純なクロスエントロピーで模倣する方法に加え、KL ダイバージェンスやラベル平滑化を用いることで学習の安定化を図れること、(4)評価:GSM8K の正答率やステップごとの整合性を定量化して改善を確認すること、が挙げられます。

ノートブックは Colab ベースで手軽に動かせるため、GPU リソースや API キーの前提がある場合でも、実験のエントリポイントとして有用です。一方で OPD は教師による生成コストが高く、教師の誤答を学生が模倣してしまうリスクや、学生が教師の高度な能力を完全に吸収できないという限界もあります。本リポジトリはこうしたトレードオフを検証するための最小限の実装を提供しており、さらなるチューニング(学習率、バッチ構成、教師の温度設定)や大規模データの利用によって研究や実用化の余地が残っています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • on_policy_distillation.ipynb: file

まとめ

Colab ベースで on-policy distillation の実践を手早く試せる教材的リポジトリです。教師→学生の模倣学習を通じて小型モデルのタスク性能改善を検証できます(短評:実験用の良い出発点)。

リポジトリ情報:

READMEの抜粋:

on-policy distillation (opd)

Open In Colab

In this Colab notebook, you’ll do on-policy distillation (OPD) on Qwen3-0.6b using Qwen3-4b-Instruct-2507, to make it better at GSM8K (a dataset of math problems).

Unlike standard s…