Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
論文紹介:Direct Preference Optimization: Your Langu...
Search
Kazutoshi Shinoda
August 19, 2024
Technology
4
1.2k
論文紹介:Direct Preference Optimization: Your Language Model is Secretly a Reward Model
第16回 最先端NLP勉強会(2024年8月25-26日)の発表スライドです
Kazutoshi Shinoda
August 19, 2024
Tweet
Share
More Decks by Kazutoshi Shinoda
See All by Kazutoshi Shinoda
LLMは心の理論を持っているか?
kazutoshishinoda
1
170
論文紹介:Safety Alignment Should be Made More Than Just a Few Tokens Deep
kazutoshishinoda
0
120
論文紹介:Minding Language Models’ (Lack of) Theory of Mind: A Plug-and-Play Multi-Character Belief Tracker
kazutoshishinoda
0
460
Other Decks in Technology
See All in Technology
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
24
6.1k
Spring Boot利用を前提としたJavaライブラリ開発方法の提案
kokihoshihara
PRO
2
240
個人から巡るAI疲れと組織としてできること - AI疲れをふっとばせ。エンジニアのAI疲れ治療法 ショートセッション -
kikuchikakeru
4
1.6k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
8
4.5k
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
7
520
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
810
なぜブラウザで帳票を生成したいのか どのようにブラウザで帳票を生成するのか
yagisanreports
0
140
Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
tabatad
0
130
AI エージェントを評価するための温故知新と Spec Driven Evaluation
icoxfog417
PRO
2
280
[CV勉強会@関東 ICCV2025] WoTE: End-to-End Driving with Online Trajectory Evaluation via BEV World Model
shinkyoto
0
280
【M3】攻めのセキュリティの実践!プロアクティブなセキュリティ対策の実践事例
axelmizu
0
170
QAを"自動化する"ことの本質
kshino
1
140
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
56k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
What's in a price? How to price your products and services
michaelherold
246
12k
Faster Mobile Websites
deanohume
310
31k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
The Language of Interfaces
destraynor
162
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Transcript
Direct Preference Optimization: Your Language Model is Secretly a Reward
Model Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn (NeurIPS2023) 第16回 最先端NLP勉強会(2024年8月25-26日) 紹介者:篠田 一聡(NTT人間情報研究所)
はじめに ◼ DPO が arXiv に出たのは 2023年5月で,被引用数は1000以上 ◼ DPO は
RLHF と等価で扱いやすい ◼ DPO の派生手法が山のようにある(IPO, KTO, SimPO, …) ◼ 一方で,最近のLLMではまだDPOが使われている? ✓ Meta の Llama-3 ✓ PFN の PLaMo DPOの何がいいの? DPO にも課題はあるのか?? 2
この発表の目的 ◼ 目的 ✓ DPOの良さを理解する ◼ 目標 ✓ DPO の目的関数を理解する
✓ DPO と RLHF の違いを理解する ✓ DPO と派生手法の違いを理解する 3
背景:LLM のアラインメント ◼ アラインメントの目的 ✓ プロンプトに対して,LLMがより人が好むような出力をすること ➢ 有用性,安全性,事実性, etc. ◼
問題設定 ✓ 𝐷 = 𝑥, 𝑦𝑤 , 𝑦𝑙 𝑛, 𝑥: プロンプト, 𝑦𝑤 : 人が好む出力, 𝑦𝑙 : 人が好まない出力 ✓ LLM に 𝑥 が入力されたら 𝑦𝑙 よりも 𝑦𝑤 を生成するように学習したい 4 「𝑥」 「𝑦1 」 「𝑦2 」 SFT後のLLMが 候補を生成 ユーザーの プロンプト 人がどちらを好むか をアノテーション 𝑦𝑤 𝑦𝑙
背景:RLHF (1/2) ◼ 1. 報酬モデル 𝑟𝜙 𝑥, 𝑦 の学習 出力
𝑦1 が 𝑦2 よりも好まれる確率 を使って 𝐷 = 𝑥, 𝑦𝑤 , 𝑦𝑙 𝑛 で最尤推定 … 直感的には,𝑟𝜙 𝑥, 𝑦𝑤 > 𝑟𝜙 (𝑥, 𝑦𝑙 ) になるように学習 5 𝑝 𝑦1 ≻ 𝑦2 |𝑥 = exp(𝑟𝜙 (𝑥, 𝑦1 )) exp(𝑟𝜙 𝑥, 𝑦1 , +exp(𝑟(𝑥, 𝑦2 ))) 𝐿𝑅 = −𝔼𝐷 [log𝜎( 𝑟𝜙 𝑥, 𝑦𝑤 − 𝑟𝜙 (𝑥, 𝑦𝑙 ))] ← Bradley-Terry model ← 報酬モデルの目的関数
(導出)報酬モデルの目的関数 𝐿𝑅 6 𝐿𝑅 = −𝔼𝐷 log 𝑝 𝑦𝑤 ≻
𝑦𝑙 |𝑥 = −𝔼𝐷 log exp 𝑟𝜙 𝑥,𝑦𝑤 exp 𝑟𝜙 𝑥,𝑦𝑤 +exp 𝑟𝜙 𝑥,𝑦𝑙 = −𝔼𝐷 log 1 1+exp − 𝑟𝜙 𝑥,𝑦𝑤 −𝑟𝜙 𝑥,𝑦𝑙 = −𝔼𝐷 [log 𝜎(𝑟𝜙 𝑥, 𝑦𝑤 − 𝑟𝜙 𝑥, 𝑦𝑙 )]
背景:RLHF (2/2) ◼ 2. 強化学習 (PPO) 𝜋𝜃 (𝑦|𝑥) を学習中のLLM, 𝜋ref
(𝑦|𝑥) をSFT後のLLMとして, 𝜋ref から 𝜋𝜃 (𝑦|𝑥) が離れすぎないようにしながら報酬 𝑟𝜙 を最大化 𝜋𝜃 と 𝜋ref が離れすぎてしまうと,報酬モデルが正確でなくなる,出力の多 様性がなくなる,などの弊害がある 7 max 𝜋𝜃 𝔼𝑥~𝐷,𝑦~𝜋𝜃(𝑦|𝑥) 𝑟𝜙 𝑥, 𝑦 − 𝛽𝔻KL [𝜋𝜃 𝑦 𝑥 ||𝜋ref 𝑦 𝑥 ] ↑𝑦 は 𝜋𝜃 から生成
DPO ◼ 目的関数 8 𝜋𝜃 (𝑦|𝑥) :学習中のLLM 𝜋ref (𝑦|𝑥) :SFT後のLLM
𝐿DPO = −𝔼𝐷 log𝜎 𝛽 log 𝜋𝜃 𝑦𝑤 𝑥 𝜋ref 𝑦𝑤 𝑥 − 𝛽 log 𝜋𝜃 𝑦𝑙 𝑥 𝜋ref 𝑦𝑙 𝑥
(導出)RLHF の目的関数の最適解 9 ← RLHFの目的関数 ← KLの定義 ← -1/β倍 ←
log (確率/確率)の 形を作る 𝔻KL [𝜋(𝑦|𝑥)||𝜋∗(𝑦|𝑥)] は 𝜋 𝑦 𝑥 = 𝜋∗(𝑦|𝑥) の時に最小値を取る. よって最適解は = 𝜋∗(𝑦|𝑥) ※ 𝑍(𝑥) は分配関数
(導出)DPO の目的関数 10 ← RLHF の最適解 ← 式変形(Your Language Model
is Secretly a Reward Model) 𝐿DPO = −𝔼𝐷 log𝜎 𝛽 log 𝜋𝜃 𝑦𝑤 𝑥 𝜋ref 𝑦𝑤 𝑥 − 𝛽 log 𝜋𝜃 𝑦𝑙 𝑥 𝜋ref 𝑦𝑙 𝑥 ← 報酬モデルの目的関数に代入 分配関数 𝑍(𝑥) が消える
実験設定 タスク ◼ Controlled sentiment generation ✓ 入力:映画のレビューのプレフィックス ✓ 出力:ポジティブなレビュー
✓ データセット:IMDb ◼ Summarization ✓ 入力:Redditのポスト ✓ 出力:要約 ✓ データセット:Reddit TL;DR summarization dataset ◼ Single-turn dialogue ✓ 入力:ユーザーのクエリ ✓ 出力:応答 ✓ データセット:Anthropic Helpful and Harmless dialogue dataset 11 評価 ◼ 参照文と生成文をGPT-4 が比べて勝率を出す ✓ 高い方がいい ◼ (IMDbは)感情分類器 で報酬を計算 ✓ 高い方がいい ◼ 𝔻KL [𝜋||𝜋ref ](トークンご とに計算して合計) ✓ 低い方がいい
DPOは… 12 𝜋ref と離れずに高い報酬を達成 = 目的関数の最適化に成功 温度に対して頑健で,PPOよりも高い勝率 対話では,対等な評価では DPOのみが勝率5割ごえ 訓練の早い段階で勝率が収束
分布外に対して PPOより頑健
DPO と RLHF の違いまとめ ◼ 数学的に両者は等価だが,DPO は報酬モデルの学習と強化学習が不要 ◼ DPO は
RLHF よりハイパラが少ないので最適化が成功しやすく,性能も高 い 13
派生手法たち 14 Wang et al. 2024. A Comprehensive Survey of
LLM Alignment Techniques: RLHF, RLAIF, PPO, DPO and More (左から順に) RM1: 報酬モデルを明示的に作るか? RM2: 出力ごとに報酬スコアを返すか? RM3: 報酬は文 or トークンレベル? RM4: 人が書いた負例のみを使うか? F1: 選好(ペア)データが必要か? F2: 人 or AI がフィードバック F3: 3つ以上のランクリストを使うか? RL1: 参照方策(SFTモデル)が必要か? RL2: 出力長に対して制約があるか? RL3: KL以外のダイバージェンス RL4: 学習モデルでサンプリングするか? O1: 学習中に選好データを作り直すか? O2: SFTとアラインメントは別々に行う? DPO →
派生手法たち ◼ IPO ✓ RLHF/DPO の報酬モデルが過学習する問題を,報酬ではなく選好確率を 目的関数にすることで回避 ◼ KTO ✓
ペアデータがいらず,ある出力が良いか悪いか,だけで学習可能 ◼ SimPO ✓ 出力長に制約を設ける + 参照モデルをなくして計算量を軽減 ◼ NPO ✓ DPO の負例の項だけで訓練して,好ましくない出力を忘却 ◼ Iterative DPO ✓ DPOは分布シフトに弱かったが,最新のモデルでサンプリング・アノテ ーションを繰り返すことで分布シフトの問題を回避 ✓ 参考: https://tech.preferred.jp/ja/blog/plamo-100b-post-training/ 15
まとめ ◼ RLHF の最適解が定まるところから,DPOの目的関数が導出できる ◼ DPO は RLHF と等価だが,報酬モデルの訓練と強化学習が不要で, ハイパラが少なく最適化が上手くいって性能も高い
◼ DPO の課題としては,SFT後のモデルで確率を評価する必要がある, 人が好む出力と好まない出力のペアが必要,分布シフトに弱い,など があり,それらに対応するための派生手法が存在 16