【大規模言語モデル入門】4章4.4~4.6

>100 Views

October 24, 24

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

KaiRA 後期輪読会 大規模言語モデル入門 2024/10/24 第4章 大規模言語モデルの進展 (4.4~4.6) 京都大学 工学部 4回生 河田 賢斗 0

2.

アジェンダ 4.4 指示チューニング 4.4.1 データセットの再利用 4.4.2 人手でデータセットを作成 4.4.3 指示チューニングの問題 4.5 人間のフィードバックからの強化学習 4.5.1 報酬モデリング 4.5.2 強化学習 4.5.3 REINFORCE 4.5.4 指示チューニングとRLHF 4.6 ChatGPT 1

3.

4.4 指示チューニング 4.4 指示チューニング 指示チューニング(Instruction Tuning) とは?  指示を含んだプロンプトと理想的な出力テキストの組で構成されるデータセッ トを用いたファインチューニングによってLLMのアライメントを行う方法  事前学習の段階では、主に最適な次の単語を予測するように学習されており、 一般的な指示に従う能力を向上させ、より有用で正確な応答を引き出すことを 目的としている 2

4.

4.4 指示チューニング 4.4.1 データセットの再利用 FLAN(Finetuned LAnguage Net) の論文にてGPT-3と同程度のパラメータ数を 有するLLMにファインチューニングを行った →多数のタスクにて zero-shot 学習の性能が GPT-3 を上回った FLANでは、 様々なタスクのデータセットを プロンプトと出力テキストの組で構成される指示チューニングのデータセット に変換 既存の自然言語処理のデータセットを再利用して指示チューニングの データセットを構築できる 3

5.

4.4 指示チューニング 他にも、Natural Instructions, Super-Natural Instructions, P3 等の大規模 データセットが同様の方法で構築されている また、こうしたデータセットを連結して新たな大規模データセットを作成→モデ ルを訓練する試みも行われている Ex. (FLANで用いられたデータセット) + (Super-Natural Instructions・P3) + (chain-of-thought推論 + 対話の事例) → Flan 2022 Collection モデルについて (Flan 2022 Collection) + (PaLM(最大5400億パラメータ)) → Flan-PaLM (Flan 2022 Collection) + T5 → Flan-T5 4

6.

4.4 指示チューニング 4.4.2 人手でデータセットを作成 GPT-3 指示チューニング 強化学習 InstructGPT InstructGPTについて (発表年・企業) 2022, OpenAI (データセット) (人手で作成されたプロンプト and InstructGPT のAPI に対して送信されたプロ ンプト) + (人手で作成された理想的な出力) およそ15,000 件程度のデータセット 5

7.

4.4 指示チューニング 4.4.3 指示チューニングの問題 (1)大規模かつ高品質なデータセットを作成することが難しい 人手で大規模かつ高品質なデータセットを構築するには高い人的コストを要する → FLANのように既存のデータセットを用いればよいのでは? → 出力の多様性を確保することが難しい (2)モデルの出力に対してフィードバックを行えない (理想的な出力テキスト) = (正解) として与える必要がある → モデルが実際に出力したテキストに対するフィードバックが行えない 加えて、(ⅰ)~(ⅱ)の問題点もある (ⅰ)創造的な生成タスクでは理想的な出力を定義し難い (ⅱ)回答を生成する際に特定の知識を要する場合がある 6

8.

4.5 人間のフィードバックからの強化学習 4.5 人間のフィードバックからの強化学習 人間のフィードバックからの強化学習(reinforcement learning from human feedback; RLHF) InstructGPT 訓練時の流れ ⅰ. 大規模コーパス→言語モデル(次単語予測)→事前訓練済みモデル(GPT-3) ⅱ. (プロンプト) + (理想的な出力) を人手で作成→指示チューニング →指示チューニング済みモデル ⅲ. (プロンプト) + (モデルの出力) に対して優劣を人手で付与→報酬モデリング →報酬モデル ⅳ. (プロンプト)→(強化学習)→(強化学習済みモデル) i. : 事前学習、ⅱ: 指示チューニング、ⅲ: 報酬モデル、ⅳ : 強化学習 RLHF : ⅲ. & ⅳ. 7

9.

4.5 人間のフィードバックからの強化学習 4.5 人間のフィードバックからの強化学習 RLHF で行われること 1. 指示チューニング済みモデルがテキストを出力する 2. 人手で1.で出力されたテキストに対して優劣のラベルを付与したデータセッ トを作成 3. 2.で作成されたデータセットを用いて、報酬を予測する報酬モデルを訓練 4. 最後に、強化学習により報酬を最大化するように指示チューニング済みモデ ルをファインチューニングする InstructGPTでは報酬モデルのデータセットの大部分は指示チューニング済みモ デルの出力であるが、一部は強化学習済みモデルの出力が使われている 8

10.

4.5 人間のフィードバックからの強化学習 4.5.1 報酬モデリング RLHFでは人間の割り当てた報酬をそのまま学習するのではなく、 報酬を予測するモデルを学習して使う →生成されたテキストに対して報酬を予測するモデルを学習する = 「報酬モデリング」 (手順) 1. (プロンプト) + (テキスト) の組に対して人手で優劣のラベルを付与 したデータセットを構築 2. 任意のプロンプトとテキストに対して報酬をスカラー値で予測する報 酬モデルを、上のデータセットを用いて学習 報酬モデルの学習では1.のデータセットの作成方法が重要 →複数人でスカラー値を直接付与させると、ノイズが大きくなるという課題 →一つのプロンプトに対して複数のテキストを生成し、順位付けを行う 9

11.

4.5 人間のフィードバックからの強化学習 本書ではInstructGPTのデータセット作成について述べられている (手順) 1. 人手で作成されたプロンプト及び初期のInstructGPTのAPIに対して送信され たプロンプトから約5万件のプロンプトデータセットを作成 2. 各プロンプトに対して K = 4 から K = 9 のテキストを生成する 3. 生成されたテキストの順位付け(Rank付け)を行う 4. 一つのプロンプトに対してテキスト同士の優劣の比較(C<A 等)が生成される 5. それぞれの比較を一つの事例として扱って報酬モデルの学習を行う 10

12.

4.5 人間のフィードバックからの強化学習 ここで訓練に用いる損失関数は下記の通りである(活性化関数はシグモイド関数) , , ~ 報酬モデルを 、データセット に含まれるプロンプトを 、テキストの 比較において上位のテキストを 、下位のテキストを とすると、訓練は を最大化するように行われる →損失関数によって好ましいテキストとそうでないテキストのスコアの差が大き くなるように学習が進行 すなはち、報酬モデルは、好ましいテキストには高いスコア(報酬)を、好ましく ない場合には低いスコア(報酬)をスカラー値で出力するようになる なお、最後に報酬モデルの出力にバイアス項を追加し、モデルの出力の平均値が 0となるように正規化する 11

13.

4.5 人間のフィードバックからの強化学習 4.5.2強化学習 報酬モデルが出力した報酬を用いた強化学習により指示チューニング済みモデル をファインチューニングする 強化学習では、エージェントが環境の中で試行錯誤しながら学習を行う 具体的には? 現在の状態*から報酬を最大化するような行動*を選択するエージェントの 方策*を求める 状態 : プロンプト及び生成されたテキスト 行動 : 語彙からのトークン選択 方策 : モデルの出力するトークンの確率分布 12

14.

4.5 人間のフィードバックからの強化学習 (手順) 1. エージェントにプロンプトが与えられる(状態) 2. エージェントは、方策に基づいて、与えられたプロンプトに対するトークン を生成する(行動) 3. エージェントは、テキストへのトークンの追加を繰り返してテキストを生成 する(状態の更新) RLHFでは大規模言語モデルを方策 として使用する プロンプト に対して方策 がテキスト ・・・ を出力する確率は り前のトークン列を と表記し、以下のように与えられる は方策 よ のパラメータである ・・・式(1) 13

15.

4.5 人間のフィードバックからの強化学習 InstructGPTでは、初期のInstructGPTのAPIに送信された約4.7万件のプロンプ トを含んだ強化学習用のデータセット作成 強化学習に使用されるプロンプトのデータセットを 、データセットに含まれ るプロンプトxとテキストyの報酬を とする RLHFの目的は を最大化する方策のパラメータ を求めること →これはプロンプトxに対して から生成したテキストyの報酬の期待値を 最大化するパラメータ を求める問題である ~ ~ ( | , ) ・・・式(A) 上記のパラメータ を求めるために強化学習が使われる(最適化問題)  報酬 について 強化学習に用いられる報酬は、報酬モデル る 何故か? を導入するが、正則化項も含め 14

16.

4.5 人間のフィードバックからの強化学習 RLHFは、指示チューニング済みモデルのファインチューニングを行う →ファインチューニング時にモデルのパラメータを更新しすぎると、事前学習や 指示チューニングで学習した内容を忘れてしまう可能性 よって、高い報酬を得ることに特化するのではなく、前段階で学習した内容を保 存するために、正則化項を導入 正則化項は、元々の指示チューニング済みモデルと大きく異なる出力を抑制 RLHFでの報酬は以下のように定義できる(右辺第2項が正則化項) ( | , ) ( | , ) タである ・・・式(2) は指示チューニング済みモデルの確率分布、 はハイパーパラメー なお、報酬モデルのパラメータ 及び指示チューニング済みモデルのパラメータ は訓練時に更新されない 15

17.

4.5 人間のフィードバックからの強化学習 強化学習の報酬に導入される正則化項はカルバック・ライブラー情報量 応(下記の式を参照) 𝒌𝒍 に対 ~ 次に、式(2)に式(1)を代入して式を整理すると式(3)を得る ・・・式(3) すると、指示付きチューニング済みモデル が出力に含まれる各トークン ・・・ に対して低い確率を与えると報酬が減少し、 各トークンに対して方策 が低い確率を与えると報酬が増加する 以上より次の2点が実現 : 1. 指示チューニング済みモデルの予測と大幅に異なる出力を抑制 2. 方策が多様なトークンを選択することを促進 16

18.

4.5 人間のフィードバックからの強化学習 Instruct GPT RLHFでの学習後に一部の自然言語処理タスクにおいて性能低下が認められた →Alignment Tax(アライメントによる性能低下のコスト) よって、RLHFと事前学習タスクの双方を同時に考慮した学習を行う必要性 具体的には下記のパラメータを求める問題を解く ~ ~ ( | , ) ・・・式(4) ~ は事前学習に用いたコーパス、 はハイパーパラメータである コーパスからサンプリングされたテキストxに含まれるトークン列を とし、モデルの入力トークン⾧をKとすれば、(4)の右辺は ~ ・・・ ・・・ と変形できる 17

19.

4.5 人間のフィードバックからの強化学習 4.5.3 REINFORCE 強化学習の手法である方策勾配法の内、最も単純な手法がREINFORCE(またはモ ンテカルロ方策勾配法)と呼ばれる 先の式(A)を最適化する際に、以下のように方策を更新する(期待値の勾配を利用) ( ) さらに式変形を行い、 ~ ( ) ~ ~ ( | , ) からの勾配の推定を可能とする ~ ( | , ) ~ ~ ( | , ) ] 18

20.

4.5 人間のフィードバックからの強化学習 前頁では下記の式を得た ~ ~ ( | , ) ~ ] ~ ( | , ) ( ) ( ) ( ) よって、求めたい方策勾配はプロンプト と ( ) から近似的に算出可能 ングしたテキスト ( ) ( ) ~ () ~ ( | , ) からサンプリ () () () 以上より、パラメータの更新は次のように行われる ( ) ( ) () () () () が正であれば が大きくなるように、 が負であれば が小さくなるように方策パラメータの更新が実行される →報酬の大きなテキストが生成されやすくなる InstructGPTではproximal policy optimization(PPO)が使用される 19

21.

4.5 人間のフィードバックからの強化学習 4.5.4 指示チューニングとRLHF (1) 大規模かつ高品質なデータセットを作成することが難しい (2) モデルの出力に対してフィードバックを行えない という問題点が指示チューニングにはあった (1)についてはテキストの優劣を判断すればよいため、人的コストが大幅に減少 (2)についてはモデルの出力に対して直接フィードバック可能となる 指示チューニング : トークン単位での正解の付与 RLHF : テキスト生成後1回のみ報酬を付与(信用割当問題) 信用割当問題 : モデルが生成したテキストのうち、どのトークンがどの程度テキ ストの優劣に影響するのかを推定する問題 20

22.

4.6 ChatGPT 4.6 ChatGPT ChatGPT (2023, OpenAI) (特徴) 大規模言語モデルを対話形式で操作 (指示チューニング) + (RLHF) + (対話形式のデータセット)の組で学習 情報は公式ブログ(https://openai.com/blog/chatgpt) で公開されている 指示チューニング : ユーザとモデルとの模擬的な会話を含んだデータセット(すべて人手で作成) + (IntructGPTで使用したデータセット) → 指示チューニング 21

23.

4.6 ChatGPT 報酬モデル : 初めに、ユーザとモデルとの会話を収集したデータセットを構築 (モデル側の メッセージは実際のモデルからの出力を使用) → データセットの中からモデルの実際の出力をランダムに選択 →同一の会話の文脈において代わりとなるメッセージをモデルに出力させる →これらの複数のモデルが出力するメッセージの優劣を順序付けて、報酬モデル 用のデータセットを作成 →報酬モデルのデータセット構築・訓練と強化学習を数回繰り返す →最終的なモデルを学習 22