天天看點

人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF

作者:汀丶人工智能

人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF

1.獎勵模型的訓練

1.1大語言模型中獎勵模型的概念

在大語言模型完成 SFT 監督微調後,下一階段是建構一個獎勵模型來對問答對作出得分評價。獎勵模型源于強化學習中的獎勵函數,能對目前的狀态刻畫一個分數,來說明這個狀态産生的價值有多少。在大語言模型微調中的獎勵模型是對輸入的問題和答案計算出一個分數。輸入的答案與問題比對度越高,則獎勵模型輸出的分數也越高。

1.2 獎勵模型的模型架構與損失函數

1.2.1 模型架構

獎勵模型(RM 模型)将 SFT 模型最後一層的 softmax 去掉,即最後一層不用 softmax,改成一個線性層。RM 模型的輸入是問題和答案,輸出是一個标量即分數。

由于模型太大不夠穩定,損失值很難收斂且小模型成本較低,是以,RM 模型采用參數量為 6B 的模型,而不使用 175B 的模型。

1.2.2 損失函數

獎勵模型的訓練資料是人工對問題的每個答案進行排名,如下圖所示:

人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF

對于每個問題,給出若幹答案,然後勞工進行排序,而獎勵模型就是利用排序的結果來進行反向傳播訓練。獎勵模型的損失函數采用 Pairwise Ranking Loss,公式如下所示:

$loss(θ)=−(K2)1​E(x,yw​,yl​) D​[log(σ(rθ​(x,yw​)−rθ​(x,yl​)))]$

其中:

D:人工對答案進行排序的資料集;

x:資料集D中的問題;

K:每個問題對應的答案數量;

yw​和yl​:問題x對應的K個答案中的兩個,且yw​的排序比yl​高,由于是一對,也稱 pairwise; rθ​(x,y):需要訓練的 RM 模型,對于輸入的一對x和y得到的标量分數;

θ:RM 模型需要優化的參數。

如何了解 RM 模型的損失函數呢?

RM 模型的目标是使得排序高的答案yw​對應的标量分數要高于排序低的答案yl​對應的标量分數,且越高越好,也就是使得損失函數中的rθ​(x,yw​)−rθ​(x,yl​)這個內插補點越大越好。将相減後的分數通過 sigmoid 函數,內插補點變成 - 1 到 1 之間,由于 sigmoid 函數是單調遞增的函數,是以σ(rθ​(x,yw​)−rθ​(x,yl​))越大越好。σ(rθ​(x,yw​)−rθ​(x,yl​))約接近 1,表示yw​比yl​排序高,屬于 1 這個分類,反正屬于 - 1 這個分類,是以這裡也可以看成是一個二分類問題。再加上 logistic 函數,也就是相當于交叉熵損失函數。對于每個問題都有K個答案,在損失函數前除以CK2​,使得損失函數值不會因為K的變化而變化太多。損失函數的最終目标是最小化loss(θ),與最大化rθ​(x,yw​)−rθ​(x,yl​)相對應。

獎勵模型中每個問題對應的答案數量即K值為什麼選 9 更合适,而不是選擇 4 呢?

  • 進行标注的時候,需要花很多時間去了解問題,但答案之間比較相近,假設 4 個答案進行排序要 30 秒時間,那麼 9 個答案排序可能就 40 秒就夠了。9 個答案與 4 個答案相比生成的問答對多了 5 倍,從效率上來看非常劃算;
  • K=9時,每次計算 loss 都有 36 項rθ​(x,y)需要計算,RM 模型的計算所花時間較多,但可以通過重複利用之前算過的值(也就是隻需要計算 9 次即可),能節約很多時間。

獎勵模型的損失函數為什麼會比較答案的排序,而不是去對每一個答案的具體分數做一個回歸?

每個人對問題的答案評分都不一樣,無法使用一個統一的數值對每個答案進行打分。如果采用對答案具體得分回歸的方式來訓練模型,會造成很大的誤差。但是,每個人對答案的好壞排序是基本一緻的。通過排序的方式避免了人為的誤差。

1.3 總結

獎勵模型通過與人類專家進行互動,獲得對于生成響應品質的回報信号,進而進一步提升大語言模型的生成能力和自然度。與監督模型不同的是,獎勵模型通過打分的形式使得生成的文本更加自然逼真,讓大語言模型的生成能力更進一步。

2.PPO 強化學習的訓練

2.1 PPO 強化學習概念

大語言模型完成獎勵模型的訓練後,下一個階段是訓練強化學習模型(RL 模型),也是最後一個階段。大語言模型微調中訓練 RL 模型采用的優化算法是 PPO(Proximal Policy Optimization,近端政策優化)算法,即對設定的目标函數通過随機梯度下降進行優化。近端政策優化是一種深度強化學習算法,用于訓練智能體在複雜環境中學習和執行任務。通過智能體的訓練,使得其在與環境的互動中能夠最大化累積回報,進而達成指定任務目标。這裡的智能體在大語言模型中指的就是 RL 模型。

2.2 PPO 強化學習原理

RL 模型的初始模型采用 SFT 微調之後的大語言預訓練模型。訓練 RL 模型的資料集隻需要收集問題集(Prompt 集),不需要對問題進行标注。問題集通過 RL 模型生成答案文本,然後将問題和答案輸入上一步訓練的 RW 模型進行打分,來評價生成的文本品質,而訓練 RL 模型的目标是使得生成的文本要在 RW 模型上獲得盡可能高的得分。

将初始語言模型的微調任務模組化為強化學習(RL)問題,需要定義政策(policy)、動作空間(action space)和獎勵函數(reward function)等基本要素。

政策就是基于該語言模型,接收 prompt 作為輸入,然後輸出一系列文本(或文本的機率分布);而動作空間就是詞表所有 token 在所有輸出位置的排列組合;觀察空間則是可能的輸入 token 序列(即 prompt),為詞表所有 token 在所有輸入位置的排列組合;而獎勵函數則是上一階段訓好的 RM 模型,配合一些政策層面的限制進行的獎勵計算。該階段流程如下圖所示:

人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF

RL 模型訓練的損失函數公式如下:

$objective(ϕ)=E(x,y)∼DπϕRL​​​[rθ​(x,y)−βlog(πϕRL​(y∣x)/πSFT(y∣x))]+γEx∼Dpretrain​​[log(πϕRL​(x))]$

其中:

πSFT:SFT 模型;

πϕRL​:強化學習中,模型叫做 Policy,πϕRL​就是需要調整的模型,即最終模型。初始化是πSFT; (x,y)∼DπϕRL​​:x是 RL 資料集中的問題,y是x通過πϕRL​模型得到的答案;

rθ​(x,y):對問題x和答案y進行打分的 RM 模型;

πϕRL​(y∣x):問題x通過πϕRL​得到答案y的機率,即對于每一個y的預測和它的 softmax 的輸出相乘;

πSFT(y∣x):問題x通過πSFT得到答案y的機率;

x∼Dpretrain​:x是來自大語言模型預訓練階段的資料;

β、γ:調整系數。

RL 模型的優化目标是使得損失函數越大越好,損失函數可以分為三個部分,打分部分、KL 散度部分以及預訓練部分。

  • 打分部分:将 RL 模型的問題資料集x,通過πϕRL​模型得到答案y,然後再把這對(x,y)代入 RW 模型進行打分,即損失函數公式中的rθ​(x,y)。該分數越高,代表模型生成的答案越好。
  • KL 散度部分:在每次更新參數後,πϕRL​會發生變化,x通過πϕRL​生成的y也會發生變化,而rθ​(x,y)獎勵模型是根據πSFT模型的資料訓練而來。如果πϕRL​和πSFT差的太多,則會導緻rθ​(x,y)的分數估算不準确。是以需要通過 KL 散度來計算,πϕRL​生成的答案分布和πSFT生成的答案分布之間的距離,使得兩個模型之間不要差的太遠。損失函數公式中的log(πϕRL​(y∣x)/πSFT(y∣x))就是在計算 KL 散度。由于 KL 散度是越小越好,而訓練目标是損失函數越大越好,是以在前面需要加上一個負号。
  • 預訓練部分:預訓練部分對應損失函數中的Ex∼Dpretrain​​[log(πϕRL​(x))]。如果沒有該項,那麼模型最終可能隻對這一個任務能夠做好,在别的任務上會發生性能下降。是以,需要将預訓練階段的目标函數加上,使得前面兩個部分在新的資料集上做拟合的同時保證原始的資料也不會丢棄。

最終優化後的πϕRL​模型就是大語言模型的最終模型。

2.3 總結

通過強化學習的訓練方法,疊代式的更新獎勵模型(RW 模型)以及政策模型(RL 模型),讓獎勵模型對模型輸出品質的刻畫愈加精确,政策模型的輸出則愈能與初始模型拉開差距,使得輸出文本變得越來越符合人的認知。這種訓練方法也叫做 RLHF。

目前,RLHF 技術對訓練大語言模型具有極大的影響力,訓練出來的效果好于之前的方法。但是,RLHF 訓練出來的大語言模型仍然可能輸出有害或事實上不準确的文本,需要不斷不斷改進。此外,在基于 RLHF 範式訓練模型時,人工标注的成本還是非常高昂的,RLHF 性能最終僅能達到标注人員的知識水準。這裡的人工标注主要是為 RM 模型标注輸出文本的排序結果,而若想要用人工去撰寫答案的方式來訓練模型,那成本更是不可想象。

3.關鍵知識點

  1. 大語言模型微調中的獎勵模型訓練:1.獎勵模型輸入問答對,輸出得分 2.獎勵模型的損失函數目的是使得得分較高的答案比得分較低的答案盡可能大,3.獎勵模型是判别式模型
  2. 獎勵模型是:監督學習、強化學習、判别式模型
  3. 大語言模型訓練中的PPO強化學習:1.在大語言模型訓練中,強化學習模型架構與SFT監督微調的模型一樣,2.RLHF中訓練強化學習模型階段不需要标注問題的答案 3.RLHF中的初始政策就是SFT模型
  4. 關于RLHF方法中RL模型訓練的損失函數:1.RL模型的損失函數包含三個部分 2.RL模型的損失函數需要計算政策更新後的RL模型與SFT模型輸出的KL散度 3.RL模型的損失函數需要計算大語言模型預訓練階段的損失函數 4.RL模型的損失函數要使得RL模型生成的文本在獎勵模型中的得分越高越好
  5. RLHF本質上是通過人類的回報來優化模型,生成的文本會更加的自然。
人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF

繼續閱讀