Preferred Networks

Vol.77 強いモデルさえ作れば能力を移せる、オンポリシー蒸留とその進化

岡野原 大輔

岡野原 大輔

共同創業者 代表取締役社長

メルマガの登録はこちら

今日はLLMの学習手法として注目をされているオンポリシー蒸留の話をしたいと思います。

◆オンポリシー蒸留(OPD)とは何か

今、LLMの能力を高める方法として、オンポリシー蒸留(OPD:On-Policy Distillation)が注目され、すごく使われるようになってきています。

PFNでもオンポリシー蒸留については有望であり、今のPLaMoでの採用や後継モデルなどでたくさん活用して能力を伸ばそうとしています。

オンポリシー蒸溜では、強いモデルを教師にして、これから学ぼうとしている生徒のモデルがいた時に、まず生徒モデル側に何か回答を出させます。例えば「美味しいラーメンの作り方を教えてください」というプロンプトに対して、生徒モデルがバーっと回答を生成します。

めちゃくちゃでもいまいちでもいいから回答を生成させて、その後にその生成の各トークンに対して、教師モデルが「いや、ここで塩3gって書いているけど3じゃなくて5でしょう」といった形で、生徒が出した答えに対して先生(強いモデル)がトークンの修正を出します。それに基づいて生徒がアップデートをするという方式が、オンポリシー蒸留になります。

◆通常の学習(SFT)との違いと性能が上がりやすい理由

この学習手法は、当たり前のことを言っているように思えるんですが、普通の学習とは逆向きの学習です。

普通の学習、SFT(教師あり微調整)などはどうやるかと言うと、正解が与えられて「美味しいラーメンの作り方はまずたっぷりのお湯に・・」という正解の回答があって、それは生徒からすると自分が出力するだろう系列と、全然違う系列かもしれないけど、それを無理やり覚えるという形をするのが普通の学習です。

それに対してオンポリシー蒸留は、自分の出したものに対しての評価をし修正する。これはKLダイバージェンス(2つの確率分布の違いを測る指標)を知っている人からすると、逆KLを使ってやっているのがオンポリシー蒸留で、昔で言うとGAN(敵対的生成ネットワーク)に近い学習となっています。

別の例として、例えばその人のバットの振り方を見て、「これいいね」という部分を伸ばしていって、「ダメだね」というのを修正するようなのがオンポリシー蒸留です。

一方で、正解の振り方がもう決まったものがあって、それに対して自分の振り方が全然違うとしても、そこに合わせていくというのが従来の学習のやり方です。

従来のやり方だと、今までやってきた自分の型などを全部捨てなければいけないので能力が壊れてしまうけれど、オンポリシー蒸留の方は自分のやり方の中で修正していくタイプなので、他の能力を壊さず、さらに自分の出している方向をちょっと修正するだけでどんどん改善ができ、性能が上がりやすくなります。

◆OPD²(オンポリシー・デルタ蒸留)の仕組み

次に新しい取り組みとしてNAVER AI Labのオンポリシー・デルタ蒸留(OPD²:On-Policy Delta Distillation)を説明します。

さっきのOPDでは、どうやって修正するかと言うと、教師モデルが出した確率(対数尤度)と生徒モデルが出した確率(対数尤度)の差を計算して、それに基づいて更新します。

OPD²はそうではなく、教師は教師で、元々事前学習が終わった、つまり単に次のトークンを予測するような状態のところから、事後学習でいろんなタスクや指示を受けて「ちゃんとこういう風にやりなさい」と調整されて変わっています。その教師の事後学習前のベースと事後学習後のモデルの差を、生徒の方に入れるようにします。

OPDの場合だと教師と生徒を比較しているだけで、教師の方を採用しますが、その中には必ずしも性能を上げることと関係ないもの、単に教師と生徒の差のところだけをたくさん取っている可能性があります。

これに対してOPD²の場合には、教師が事後学習によってどれだけ性能が上がったか、「ここをちょっと修正したら能力が上がったよ」というところだけを生徒に反映するようにするので、性能が上げやすい。

補足すると、さっきのOPDの話にも入っていてJoint Conditionを導入して、通常のOPDのシグナルと符号が一致する時だけ更新します。

なのでOPD²は、教師と生徒が乖離する方向、かつ教師が事後学習後にその方向に進んだ方に進んでいくと性能が上がる、というものになっています。

◆強いモデルさえ作れば能力を転移できる時代

こういう感じで、今、結構なんでもありになっていて、そうした中だと、一旦強いモデルをとにかく何でもいいから作って、1回強いモデルさえできれば、その能力を推論向けだとか汎用のモデルに転移するというのができるようになってきています。

一番最近のオープンモデル群のいくつかは、複数のエキスパートモデル、たとえば「数学がめちゃくちゃ強いです」「コーディングが強いです」というエキスパート(1分野の専門家)を作るのは比較的簡単で、まずそれを作ります。

それらの先生ができた後に、全員から一斉に、1つの新しい生徒に対してその能力を並列に覚えさせるという方法で、全部の能力をバランスよく持った1つのモデルが作れる(MOPD)というのが、最近やられていたりします。

その強いモデルを作る方法としては、ハーネスでやったり、マルチエージェントでやったり、いろんな方法で何でもいいから強いモデルを仮想的に作ることができれば、それを使ってこれから育てるモデルを作ることができます。こういう感じでどんどんモデル開発が進んでいます。

PFNは新しい仲間を
募集しています

未掲載事例、プロダクト・ソリューション、研究開発についてお気軽にお問い合わせください