【DPO】強化学習を用いずに大規模言語モデルをユーザの好みに直接合わせる手法
3つの要点
✔️ LLMの出力をユーザの好みに合わせるには、ユーザのフィードバックを反映させる必要がある
✔️ 従来は、ユーザのフィードバックを元に報酬モデルを学習し、その報酬を最大化させるように強化学習で大規模言語モデルをファインチューニング(RLHF)
✔️ 提案は、ユーザのフィードバックデータから直接大規模言語モデルをファインチューニングし、最適化の安定化と計算の軽量化を達成(DPO)
Direct Preference Optimization: Your Language Model is Secretly a Reward Model
written by Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn
(Submitted on 29 May 2023 (v1), last revised 13 Dec 2023 (this version, v2))
Comments: Published on arxiv.
Subjects: Machine Learning (cs.LG); Artificial Intelligence (cs.AI); Computation and Language (cs.CL)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
LLMと同時に有名になった言葉として、RLHFがあります。RLHFはReinforcement Learning from Human Feedbackの略称で、文字通り、人間のフィードバックからの強化学習で、言語モデルをファインチューニングする技術です。
なぜ、このようなファインチューニングが必要なのでしょうか?機械は人間の指示に忠実な回答を出力しますが、逆に言えば、人間の指示がないと人間の意図する回答が返ってこない可能性があるからです。
たとえば、車の速度を最大化せよ、という指示であれば、速度は数学的に定義可能な値であり、定量的に測定可能であるので、機械は指示に忠実に速度を向上させることができるでしょう。
ただし、車で大事なのは速度だけでしょうか?速度は速いけど、がたがた揺れのひどい車だったらどうでしょうか?人間からすれば速度が速いとしか言っていないけど、こんな揺れがひどかったら乗れたものでないと思うでしょう。機械に対して、「速ければいいというものではない。考えたらわかるだろう」と憤る人もいるかもしれません。
また、面白さを最大化せよ、という指示であれば、どうでしょうか?面白さを数学的に定義し、測定するのは難しそうです。一方で、多くの人が納得する客観性があるかは別として、二組の芸人のうち、どちらが面白かったかという相対評価を与えること自体は比較的簡単です。また、現物を目の前にして、「思っていたのと違う」となるのが人間でしょう。このように、出力に対して直接フィードバックをもらうことは、意図した回答に近づけるために有効です。
こうした事前の学習の指示要件からこぼれてしまったユーザの好みを、ユーザが直接フィードバックできるのがRLHFです。
LLMと同時にRLHFが有名になったのは、一般ユーザに展開する上で、ハルシネーションと呼ばれるLLMが生成した誤りを人間が指摘して訂正したり、人が不自然だと思う細かいところを自然な回答に訂正したり、データに含まれる偏見を拾って倫理的に問題のある発言をしてしまうこと、危険で有害な情報を聞かれるままに素直に広めてしまうことを止める必要があったからです。
今回解説するのは、RLHFよりも安定的で軽量な計算を実現できるユーザフィードバックに基づくファインチューニング技術です。トップカンファレンスであるNeurIPS 2023のトップ2論文 (Two Outstanding Main Track Papers) の次点 (Two Outstanding Main Track Runners-Ups) に選ばれています。
では、その仕組みと効果を説明していきます。
従来のRLHFと提案のDPOの構成の比較
従来のRLHFと提案のDPOの構成の違いを図1に示します。
従来のRLHF
従来のRLHFは図のように、選好データ (preference data) から報酬モデル (reward model) のパラメータを最尤推定 (maximum likelihood) し、報酬を予測できるようにしてから、大規模言語モデルの方策 (LM policy) の出力 (sample completions) に報酬モデルによって報酬を割り当てます (label rewards) 。
これを繰り返して、報酬が最大化するように大規模言語モデルの方策のパラメータを強化学習によって学習します。このとき、わざわざ方策と言わなくても、報酬を最大化するようにLLMのモデルパラメータを学習するといっても、話としては通じると思いますが、強化学習では、方策という用語を使うので合わせているのだと思います。方策とはある状態に対するある行動の確率分布です。ここで、状態は入力xで、アクションは出力yであると考えればよく、xに対してyが生成される確率を表す分布と考えればよいでしょう。
ここで、選好データとは、LLMへのある入力に対する二つの出力のどちらが良いかを示すデータです。たとえば、write me a poem about the history of jazz (ジャズの歴史のポエムを書いて) というLLMへの入力xがあったときに、この入力に対してLLMから2つの出力y1, y2をサンプルします。y1、y2のうち、ユーザが好ましいと思った方をy_w、そうでない方をy_lと区別し、 (x, y_w, y_l) を組にしたデータのことです。
この選好データを使ってxに対して報酬rを返すモデルを学習します。報酬モデルr_ΦはBradley-Terryモデルと呼ばれるモデルが採用されており、y1がy2より高い報酬である確率を選好分布p*=σ(r*(x,y_w)-r*Φ(x,y_l)) として定義 (σはシグモイド関数) し、このp*のr*をr_Φで置き換えたσ(r_Φ(x,y_w)-r_Φ(x,y_l)) が最大化されるように報酬モデルを学習します。
これで、LLMの出力の良さを報酬として評価できるようになるので、この良さを最大化するように大規模言語モデルの方策を学習します。ただし、報酬の期待値だけを最適化するのではなく、元の大規模言語モデルの方策と更新後の方策が離れすぎないように、二つの方策のKLダイバージェンスを小さくするようにしながら、報酬を最大化します。
KLダイバージェンスは分布同士の距離を測る指標です。方策は確率分布なので、確率分布の距離指標を使っているのです。この距離制約は、モデルの崩壊を防ぐためのものです。大規模言語モデルがユーザのフィードバックに過適合してしまうと、モデルが崩壊して、仮にユーザのフィードバックに対して好みの出力を返せるようになったとしても、それ以外の入力に対しておかしな出力を返すことを防いでいるのです。あくまで、LLMの方策のファインチューニングとなるようにしているのです。
では、なぜ、このKLダイバージェンス距離付きの報酬最大化問題を解くために、強化学習を適用しているのでしょうか?LLMのベースモデルであるトランスフォーマは従来のニューラルネットワーク同様、多数のモデルパラメータを効率よく学習するため、モデルパラメータが変化したときの損失関数の勾配が計算できるように設計されています。しかし、学習した報酬とLMMのモデルパラメータ間に勾配が計算できるような微分可能な関係式が分かっているわけではないので、ニューラルネットワークのように勾配を用いたパラメータ最適化はできません。
そこで、元の目的関数の勾配が計算できなくても最適化が効率的にできる、強化学習手法PPO (Proximal Parameter Optimization) がLLMの方策のファインチューニングに標準的に用いられています。PPOは、状態が高次元で、行動が連続量の最適化に適した手法で、ちょうどLLMの方策の強化学習に適しています。
提案のDPO
提案のDPOは、Direct Preference Optimizationの略で、その名の通り、直接、選好を最適化するというのがポイントです。DPOの主張は、RLHFは、強化学習を通して間接的にLLMのファインチューニングをしているが、強化学習を介さず、図のように選好データから直接LLMのファインチューニングができるというもので、これがこの手法の醍醐味です。
なぜ、DPOは直接学習ができるのでしょうか?
DPOによって直接LLMのファインチューニングができる理由
DPOによって直接LLMのファインチューニングができる理由は、報酬モデルと最適方策の関係式を導いているからです (ポイント1) 。これによって、報酬モデルと最適方策は等価、入れ替えることができるわけですので、報酬モデルの損失関数があったとしたら、方策の損失関数に変数を変更できます (ポイント2) 。RLHFでは報酬モデルの損失関数を最小化して、報酬モデルを得ていたわけですが、DPOではいきなり方策の損失関数を最小化して最適な方策を学習してしまうのです。
ポイント1.報酬関数と最適方策の関係式 (DPOでは真の報酬を最適方策で表現する)
強化学習の最適化問題は式1でした。第一項に報酬モデルの出力、第二項に方策が変わりすぎないようにする制約を含む式でした。
実はこの式1の最適解=最適方策は既存文献によると、以下の式2になります。
この式2により、最適方策と元の方策π_refと真の報酬関数rの関係が得られます。
ですので、実は既存研究でも、報酬モデルと最適方策の関係式はあるのですが、ここで、一つ問題があります。Z(x)の推定です。たとえ、真の報酬モデルをr_Φの最尤推定で求めたとしても、残るZ(x)は厄介です。Z(x)は分配関数もしくは規格化定数と呼ばれるものです。確率に比例するような値が分かっている場合に、そのままだと、確率は0から1の範囲の値を取るというルールを満たさないので、確率になるように、0から1の値を取るように規格化してくれる定数です。
基本的にはありうる値に関しての確率に比例するような値すべての和を計算する必要があるので、計算が難しい値です。これを求める方法として、モンテカルロ法があります。分布からたくさんのサンプルを抽出して和を取ってあげれば真に近づくという原理に基づくものですが、精度を上げるには非常に計算時間がかかってしまいます。
そこで、一旦、式2の左辺を報酬モデルに式変形し、式3にします。すると、真の報酬モデルは最適方策と元の方策の比と分配関数の和になります。
ポイント2.報酬の損失関数ではなく、方策の損失関数に変更 (RLHFの報酬モデルを学習するかのように、方策を学習する)
ここで、さらに、RLHFにおいて想定されたBradley-Terryのモデルの選好分布p*の定義がσ(r*(x,y_w) - r*(x,y_l))であったことを思い出し、このr*の代わりに式3を代入すると、以下の式4のように引き算によって、計算の厄介であった分配関数が消えて計算不要になるといううれしいことが起こります。
同時に、これはRLHFにおける報酬モデルの学習と同じ流れであるので、式5のように、p*を最大化するような方策モデルパラメータを推定すればよいです。
このように、RLHFでは選好分布のパラメータが「パラメータ化された報酬モデル」でしたが、「パラメータ化された方策」にうまく変更されています。RLHFでは報酬モデルのパラメータを最適化してこの損失関数を最小化することで、報酬モデルのパラメータが求まるという流れでしたが、DPOでは方策のパラメータを最適化してこの損失関数を最小化することで、方策のパラメータが求まる流れに入れ替わっています。これにより、見事に強化学習いらずになるので、計算が軽量になっていることが分かります。
また、既存研究の強化学習によるLLMの最適化では、人の出力をベースラインとして報酬を正規化して最適化の安定化を図っていますが、DPOではそのような正規化が不要ということも本論文では主張されています。
評価結果
従来のRLHFとDPOの実際の評価結果はどうなのでしょうか?
従来のRLHFとDPOの感情生成と要約能力の評価結果を図2に示します。
比較手法は多すぎるので、これまで仕組みを比較してきた従来のPPOと提案のDPOに焦点を当てて図の結果を説明します。
図2の左図は、感情生成タスクの評価結果 (IMDb Sentiment Generation) です。映画、テレビ番組の評価データベースを用いた評価で、xはデータベースの動画レビューで、大規模言語モデルはポジティブな感情で出力しなくてはなりません。対照実験のため、事前学習した感情分類器により、ポジティブな感情かどうかを評価できるようにしています。
図2の左図の横軸はKLダイバージェンスで元のモデルと更新後のモデルの距離で、縦軸は報酬です。どのKLダイバージェンスにおいても、ピンク色の従来のPPOに対して、黄土色のDPO (Ours) の方が高い報酬を得ています。
DPOやRLHFの最適化問題では、KLダイバージェンス制約付き最適化問題になっていましたが、制約とのトレードオフをうまくバランスできているかを見ているものです。制約を緩めたら (KLダイバージェンスが大きくなれば)、最適化対象のパラメータの自由度は高まるはずなので、より高い報酬が得られるのが理想です(その自由度の中に最適解があれば、その後報酬の伸び自体は頭打ちになると思います)。
DPOは、制約を緩めると、急激に報酬が高くなっていることが示されています。与えられた自由度の中でしっかりと報酬を最大化できているといえると思います。RLHFに真の報酬モデルを与えた場合よりも、高い報酬を実現できています。要するに、RLHFの報酬モデルの学習部は理想状態にできているので、強化学習で最適化しているか、そうでないかのみが性能に影響する評価になっていても、DPOの方が良いということは、強化学習よりもDPOの方が効率よく最適化できていることが示唆されます。
図2の右図は、TL;DR Summarizationです。Reddit TL;DR(Too Long;Didn't Read 長すぎて読まなかったポスト)の要約に、人の好みをつけたデータベースを用いる評価で、xはRedditのフォーラムポスト、yは要約です。
図2の右図の横軸は、Sampling Temprature (標本温度) で、縦軸は勝率です。標本温度は、LLMのパラメータの一つで、大きくするほどサンプル毎に多様な回答が得られます。一方で、小さくすると、繰り返しサンプルしても同じような回答しか得られません。勝率は、比較手法の回答のうち、どの手法の回答が良かったかをGPT-4に評価させたものになります。
TL;DR Summarizationでは、標本温度によらず、従来のPPO (ピンク) に比べ、提案のDPO (黄土色) の勝率が高いことが分かります。DPOは標本温度0をピークに勝率が右肩下がりになりますが、DPOは標本温度1未満では最高勝率を維持できています。
終わりに
今回、従来のRLHFと違い、強化学習を用いずに選好データを使ったファインチューニングが可能な技術Direct Preference Optimization (DPO) を解説しました。大規模言語モデルでは、大量のデータに注目が集まっているところがありますが、今回の技術では、関係式を人間が考えて導出することによって、強化学習という機械による試行錯誤を減らせることが示されました。なんでもデータで学習してしまえではなく、データを使わず、論理的に導ける関係性は人間が導入することが効率化につながりそうです。別の言い方をすると、今求められているパラメータを真に求めたいパラメータに実は変換できないか?と考えてみることが有効そうです。
この記事に関するカテゴリー