解説ねえ智也くん、この論文のタ…
TL;DR
大規模言語モデル(教師)が生成したPythonプログラムを実行検証し、正解に到達したものだけを小型モデル(生徒)の学習に使う手法。教師が解けなかった問題は生徒が自己生成・検証して追加学習。TAT-QAデータセットで7Bモデルが87.00 EMを達成し、72B教師や従来手法を上回った。
解説
ねえ智也くん、この論文のタイトル、『教師モデルのPythonコードを蒸留』って面白そう!でも、蒸留ってお酒の?
違うよ。知識蒸留っていう手法で、大きなモデルが持ってる知識を小さなモデルに移すんだ。この論文では特に、教師モデルが書いたPythonコードを実行して、正解にたどり着いたものだけを生徒モデルの学習に使ってる。
へえ、コードを実行して正解かどうか確かめるんだ!それって、ただ答えをコピーするより賢そうだね。でも、教師が間違えた問題はどうするの?
そこが工夫してあって、教師が解けなかった問題は生徒自身にコードを生成させて、実行して正解できたものだけを追加で学習させるんだ。自己生成と検証を繰り返すことで、教師より良い結果が出てる。
生徒が自分で問題を解いて、さらに教師を超えちゃうってこと?すごいね!具体的にどのくらい性能が上がったの?
TAT-QAっていう金融の数値推論データセットで、7Bの生徒モデルが87.00のExact Matchを達成してる。これは72Bの教師モデルや、従来の蒸留手法を上回ってるんだ。
7Bって小さいモデルなのに、72Bの大きな教師より良いって、めっちゃ効率的じゃん!でも、この手法ってどんな場面で役立つの?
金融のレポート分析とか、数値計算が必要な業務で、大きなモデルを動かせない環境でも高精度な推論ができるようになる。コストやレイテンシを抑えられるのが利点だね。
なるほどね。でも、コードを実行するってことは、実行環境が必要だし、セキュリティとか大丈夫なの?
そこは課題だね。論文でも、安全なサンドボックス環境が必要って言及してる。あと、コード生成が得意なタスクにしか適用できないっていう制限もある。
そっか。でも、教師を超える生徒が育つなんて、なんか教育みたいで面白いね!じゃあ、私も智也くんの知識を蒸留してもらおうかな?
君の場合は蒸留じゃなくて、まず基礎から勉強したほうがいいと思うよ。