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

人工智能LLM模型:獎勵模型的訓練、PPO 強化學習的訓練、RLHF
1.獎勵模型的訓練
1.1大語言模型中獎勵模型的概念
在大語言模型完成 SFT 監(jiān)督微調(diào)后,下一階段是構(gòu)建一個獎勵模型來對問答對作出得分評價。獎勵模型源于強化學習中的獎勵函數(shù),能對當前的狀態(tài)刻畫一個分數(shù),來說明這個狀態(tài)產(chǎn)生的價值有多少。在大語言模型微調(diào)中的獎勵模型是對輸入的問題和答案計算出一個分數(shù)。輸入的答案與問題匹配度越高,則獎勵模型輸出的分數(shù)也越高。
1.2 獎勵模型的模型架構(gòu)與損失函數(shù)
1.2.1 模型架構(gòu)
獎勵模型(RM 模型)將 SFT 模型最后一層的 softmax 去掉,即最后一層不用 softmax,改成一個線性層。RM 模型的輸入是問題和答案,輸出是一個標量即分數(shù)。
由于模型太大不夠穩(wěn)定,損失值很難收斂且小模型成本較低,因此,RM 模型采用參數(shù)量為 6B 的模型,而不使用 175B 的模型。
1.2.2 損失函數(shù)
獎勵模型的訓練數(shù)據(jù)是人工對問題的每個答案進行排名,如下圖所示:

對于每個問題,給出若干答案,然后工人進行排序,而獎勵模型就是利用排序的結(jié)果來進行反向傳播訓練。獎勵模型的損失函數(shù)采用?Pairwise Ranking Loss,公式如下所示:
$loss(θ)=?(K2)1E(x,yw,yl)?D[log(σ(rθ(x,yw)?rθ(x,yl)))]$
其中:D
:人工對答案進行排序的數(shù)據(jù)集;x
:數(shù)據(jù)集D
中的問題;K
:每個問題對應(yīng)的答案數(shù)量;yw
和yl
:問題x
對應(yīng)的K
個答案中的兩個,且yw
的排序比yl
高,由于是一對,也稱?pairwise;?rθ(x,y)
:需要訓練的 RM 模型,對于輸入的一對x
和y
得到的標量分數(shù);θ
:RM 模型需要優(yōu)化的參數(shù)。
如何理解 RM 模型的損失函數(shù)呢?
RM 模型的目標是使得排序高的答案yw
對應(yīng)的標量分數(shù)要高于排序低的答案yl
對應(yīng)的標量分數(shù),且越高越好,也就是使得損失函數(shù)中的rθ(x,yw)?rθ(x,yl)
這個差值越大越好。將相減后的分數(shù)通過 sigmoid 函數(shù),差值變成 - 1 到 1 之間,由于 sigmoid 函數(shù)是單調(diào)遞增的函數(shù),因此σ(rθ(x,yw)?rθ(x,yl))
越大越好。σ(rθ(x,yw)?rθ(x,yl))
約接近 1,表示yw
比yl
排序高,屬于 1 這個分類,反正屬于 - 1 這個分類,所以這里也可以看成是一個二分類問題。再加上 logistic 函數(shù),也就是相當于交叉熵損失函數(shù)。對于每個問題都有K
個答案,在損失函數(shù)前除以CK2
,使得損失函數(shù)值不會因為K
的變化而變化太多。損失函數(shù)的最終目標是最小化loss(θ)
,與最大化rθ(x,yw)?rθ(x,yl)
相對應(yīng)。
獎勵模型中每個問題對應(yīng)的答案數(shù)量即K
值為什么選 9 更合適,而不是選擇 4 呢?
進行標注的時候,需要花很多時間去理解問題,但答案之間比較相近,假設(shè) 4 個答案進行排序要 30 秒時間,那么 9 個答案排序可能就 40 秒就夠了。9 個答案與 4 個答案相比生成的問答對多了 5 倍,從效率上來看非常劃算;
K=9
時,每次計算 loss 都有 36 項rθ(x,y)
需要計算,RM 模型的計算所花時間較多,但可以通過重復利用之前算過的值(也就是只需要計算 9 次即可),能節(jié)約很多時間。
獎勵模型的損失函數(shù)為什么會比較答案的排序,而不是去對每一個答案的具體分數(shù)做一個回歸?
每個人對問題的答案評分都不一樣,無法使用一個統(tǒng)一的數(shù)值對每個答案進行打分。如果采用對答案具體得分回歸的方式來訓練模型,會造成很大的誤差。但是,每個人對答案的好壞排序是基本一致的。通過排序的方式避免了人為的誤差。
1.3 總結(jié)
獎勵模型通過與人類專家進行交互,獲得對于生成響應(yīng)質(zhì)量的反饋信號,從而進一步提升大語言模型的生成能力和自然度。與監(jiān)督模型不同的是,獎勵模型通過打分的形式使得生成的文本更加自然逼真,讓大語言模型的生成能力更進一步。
2.PPO 強化學習的訓練
2.1 PPO 強化學習概念
大語言模型完成獎勵模型的訓練后,下一個階段是訓練強化學習模型(RL 模型),也是最后一個階段。大語言模型微調(diào)中訓練 RL 模型采用的優(yōu)化算法是 PPO(Proximal Policy Optimization,近端策略優(yōu)化)算法,即對設(shè)定的目標函數(shù)通過隨機梯度下降進行優(yōu)化。近端策略優(yōu)化是一種深度強化學習算法,用于訓練智能體在復雜環(huán)境中學習和執(zhí)行任務(wù)。通過智能體的訓練,使得其在與環(huán)境的交互中能夠最大化累積回報,從而達成指定任務(wù)目標。這里的智能體在大語言模型中指的就是 RL 模型。
2.2 PPO 強化學習原理
RL 模型的初始模型采用 SFT 微調(diào)之后的大語言預(yù)訓練模型。訓練 RL 模型的數(shù)據(jù)集只需要收集問題集(Prompt 集),不需要對問題進行標注。問題集通過 RL 模型生成答案文本,然后將問題和答案輸入上一步訓練的 RW 模型進行打分,來評價生成的文本質(zhì)量,而訓練 RL 模型的目標是使得生成的文本要在 RW 模型上獲得盡可能高的得分。
將初始語言模型的微調(diào)任務(wù)建模為強化學習(RL)問題,需要定義策略(policy)、動作空間(action space)和獎勵函數(shù)(reward function)等基本要素。
策略就是基于該語言模型,接收 prompt 作為輸入,然后輸出一系列文本(或文本的概率分布);而動作空間就是詞表所有 token 在所有輸出位置的排列組合;觀察空間則是可能的輸入 token 序列(即 prompt),為詞表所有 token 在所有輸入位置的排列組合;而獎勵函數(shù)則是上一階段訓好的 RM 模型,配合一些策略層面的約束進行的獎勵計算。該階段流程如下圖所示:

RL 模型訓練的損失函數(shù)公式如下:
$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
就是需要調(diào)整的模型,即最終模型。初始化是πSFT
;?(x,y)~Dπ?RL
:x
是 RL 數(shù)據(jù)集中的問題,y
是x
通過π?RL
模型得到的答案;rθ(x,y)
:對問題x
和答案y
進行打分的 RM 模型;π?RL(y∣x)
:問題x
通過π?RL
得到答案y
的概率,即對于每一個y
的預(yù)測和它的 softmax 的輸出相乘;πSFT(y∣x)
:問題x
通過πSFT
得到答案y
的概率;x~Dpretrain
:x
是來自大語言模型預(yù)訓練階段的數(shù)據(jù);β
、γ
:調(diào)整系數(shù)。
RL 模型的優(yōu)化目標是使得損失函數(shù)越大越好,損失函數(shù)可以分為三個部分,打分部分、KL 散度部分以及預(yù)訓練部分。
打分部分:將 RL 模型的問題數(shù)據(jù)集
x
,通過π?RL
模型得到答案y
,然后再把這對(x,y)
代入 RW 模型進行打分,即損失函數(shù)公式中的rθ(x,y)
。該分數(shù)越高,代表模型生成的答案越好。KL 散度部分:在每次更新參數(shù)后,
π?RL
會發(fā)生變化,x
通過π?RL
生成的y
也會發(fā)生變化,而rθ(x,y)
獎勵模型是根據(jù)πSFT
模型的數(shù)據(jù)訓練而來。如果π?RL
和πSFT
差的太多,則會導致rθ(x,y)
的分數(shù)估算不準確。因此需要通過 KL 散度來計算,π?RL
生成的答案分布和πSFT
生成的答案分布之間的距離,使得兩個模型之間不要差的太遠。損失函數(shù)公式中的log(π?RL(y∣x)/πSFT(y∣x))
就是在計算 KL 散度。由于 KL 散度是越小越好,而訓練目標是損失函數(shù)越大越好,因此在前面需要加上一個負號。預(yù)訓練部分:預(yù)訓練部分對應(yīng)損失函數(shù)中的
Ex~Dpretrain[log(π?RL(x))]
。如果沒有該項,那么模型最終可能只對這一個任務(wù)能夠做好,在別的任務(wù)上會發(fā)生性能下降。因此,需要將預(yù)訓練階段的目標函數(shù)加上,使得前面兩個部分在新的數(shù)據(jù)集上做擬合的同時保證原始的數(shù)據(jù)也不會丟棄。
最終優(yōu)化后的π?RL
模型就是大語言模型的最終模型。
2.3 總結(jié)
通過強化學習的訓練方法,迭代式的更新獎勵模型(RW 模型)以及策略模型(RL 模型),讓獎勵模型對模型輸出質(zhì)量的刻畫愈加精確,策略模型的輸出則愈能與初始模型拉開差距,使得輸出文本變得越來越符合人的認知。這種訓練方法也叫做 RLHF。
目前,RLHF 技術(shù)對訓練大語言模型具有極大的影響力,訓練出來的效果好于之前的方法。但是,RLHF 訓練出來的大語言模型仍然可能輸出有害或事實上不準確的文本,需要不斷不斷改進。此外,在基于 RLHF 范式訓練模型時,人工標注的成本還是非常高昂的,RLHF 性能最終僅能達到標注人員的知識水平。這里的人工標注主要是為 RM 模型標注輸出文本的排序結(jié)果,而若想要用人工去撰寫答案的方式來訓練模型,那成本更是不可想象。
3.關(guān)鍵知識點
大語言模型微調(diào)中的獎勵模型訓練:1.獎勵模型輸入問答對,輸出得分 2.獎勵模型的損失函數(shù)目的是使得得分較高的答案比得分較低的答案盡可能大,3.獎勵模型是判別式模型
獎勵模型是:監(jiān)督學習、強化學習、判別式模型
大語言模型訓練中的PPO強化學習:1.在大語言模型訓練中,強化學習模型架構(gòu)與SFT監(jiān)督微調(diào)的模型一樣,2.RLHF中訓練強化學習模型階段不需要標注問題的答案 3.RLHF中的初始策略就是SFT模型
關(guān)于RLHF方法中RL模型訓練的損失函數(shù):1.RL模型的損失函數(shù)包含三個部分 2.RL模型的損失函數(shù)需要計算策略更新后的RL模型與SFT模型輸出的KL散度 3.RL模型的損失函數(shù)需要計算大語言模型預(yù)訓練階段的損失函數(shù) 4.RL模型的損失函數(shù)要使得RL模型生成的文本在獎勵模型中的得分越高越好
RLHF本質(zhì)上是通過人類的反饋來優(yōu)化模型,生成的文本會更加的自然。
