培訓(xùn)型網(wǎng)站建設(shè)網(wǎng)站搜索引擎優(yōu)化的基本內(nèi)容
InstructGPT方法簡讀
引言
僅僅通過增大模型規(guī)模和數(shù)據(jù)規(guī)模來訓(xùn)練更大的模型并不能使得大模型更好地理解用戶意圖。由于數(shù)據(jù)的噪聲極大,并且現(xiàn)在的大多數(shù)大型語言模型均為基于深度學(xué)習(xí)的“黑箱模型”,幾乎不具有可解釋性和可控性,因此,大模型很可能會輸出虛構(gòu)的、有害的,或者對用戶無用的結(jié)果。換句話說,大模型并沒有與用戶對齊(aligned)。本文提出了一種通過微調(diào)人類反饋來調(diào)整語言模型和用戶在廣泛任務(wù)中的意圖的方法。從一組標(biāo)注員編寫的 prompt 和通過 OpenAI API 提交的 prompt 開始,本文收集了人類標(biāo)注的所需模型行為的數(shù)據(jù)集,使用該數(shù)據(jù)集通過有監(jiān)督學(xué)習(xí)來微調(diào) GPT-3。然后,由標(biāo)注員對模型輸出的回答質(zhì)量進(jìn)行排序,得到一個問答質(zhì)量排序數(shù)據(jù)集。使用該數(shù)據(jù)集來訓(xùn)練一個評分模型,為回答質(zhì)量進(jìn)行打分。最后結(jié)合評分模型,使用強(qiáng)化學(xué)習(xí)來進(jìn)一步微調(diào)第一步有監(jiān)督微調(diào)過的模型。得到的模型稱為InstructGPT。
從 GPT 到 InstructGPT/ChatGPT:對齊(align),不僅僅是簡單的語言模型(LM),而能夠進(jìn)行對話。
優(yōu)化目標(biāo):3H:Helpful、Honest、Harmless。三點優(yōu)化目標(biāo)要求模型輸出人類想要的信息,分別是有用、誠實和無害。
方法
如圖 1 所示,由 GPT 到 InstructGPT 的訓(xùn)練共有三個步驟,分別是第一階段有監(jiān)督微調(diào)、第二階段獎勵模型訓(xùn)練、第三階段根據(jù) PPO 近端算法進(jìn)行強(qiáng)化學(xué)習(xí)訓(xùn)練。接下來將分別從三個階段的數(shù)據(jù)集、模型和訓(xùn)練目標(biāo)出發(fā),介紹 InstructGPT 的完整訓(xùn)練過程。
數(shù)據(jù)集
數(shù)據(jù)集的收集過程如下。首先使用初步模型,發(fā)布內(nèi)測版接口給用戶使用,收集問題(prompt)。根據(jù)這些問題構(gòu)建數(shù)據(jù)集:
- 請標(biāo)注工直接寫問題的答案,用于微調(diào)訓(xùn)練 SFT 模型,~13k;
- 將問題輸入 LM,生成多個答案,請標(biāo)注工對這些答案的質(zhì)量進(jìn)行排序,用于訓(xùn)練 RM 模型,~33k;
- 不需要標(biāo)注工,RM 模型對 LM 進(jìn)行強(qiáng)化學(xué)習(xí)訓(xùn)練,~31k;
模型與訓(xùn)練目標(biāo)
SFT(Supervised Fine-Tuned)
16ep,雖然 ep1 就過擬合了,但是由于是用于后續(xù)的訓(xùn)練步驟,而非最終模型,因此不怕過擬合。
RM(Reward Model)
在 SFT 模型的基礎(chǔ)上進(jìn)行微調(diào),輸出層改為 FC,最后輸出一個標(biāo)量值,表示問答質(zhì)量得分(reward)。
該模型的訓(xùn)練數(shù)據(jù)是標(biāo)注工標(biāo)注的回答質(zhì)量排序,而非具體的標(biāo)量得分,損失函數(shù)為成對排序損失(pairwise ranking loss):
loss(θ)=?1(K2)E(x,yw,yl)~D[log?(σ(rθ(x,yw)?rθ(x,yl)))]\text{loss}(\theta)=-\frac{1}{\begin{pmatrix}K\\2\end{pmatrix}}E_{(x,y_w,y_l)\sim D}[\log(\sigma(r_\theta(x,y_w)-r_\theta(x,y_l)))] loss(θ)=?(K2?)1?E(x,yw?,yl?)~D?[log(σ(rθ?(x,yw?)?rθ?(x,yl?)))]
其中 rθ(x,y)r_\theta(x,y)rθ?(x,y) 是參數(shù)為 θ\thetaθ 的 RM 模型對于問答對 (x,y)(x,y)(x,y) 的評分,yw,yly_w,y_lyw?,yl? 是一對回答,其中 ywy_wyw? 的質(zhì)量相對更好,DDD 是標(biāo)注員標(biāo)注的問答質(zhì)量排序數(shù)據(jù)集。該損失函數(shù)的優(yōu)化目標(biāo)就是 RM 需要對較好的回答給出更高的評分。
強(qiáng)化學(xué)習(xí)訓(xùn)練最終的 LM 模型
該階段強(qiáng)化學(xué)習(xí)的目標(biāo)函數(shù)為
objective(?)=E(x,y)~Dπ?RL[rθ(x,y)?βlog?(π?RL(y∣x)/πSFT(y∣x))]+γEx~Dpretrain[log?(π?RL(x))]\text{objective}(\phi)=E_{(x,y)\sim D_{\pi_\phi^{RL}}}[r_\theta(x,y)-\beta\log (\pi_\phi^{RL}(y|x)/\pi^{SFT}(y|x))]+\gamma E_{x\sim D_\text{pretrain}}[\log(\pi_\phi^{RL}(x))] objective(?)=E(x,y)~Dπ?RL???[rθ?(x,y)?βlog(π?RL?(y∣x)/πSFT(y∣x))]+γEx~Dpretrain??[log(π?RL?(x))]
其中 π?RL\pi_\phi^{RL}π?RL? 是要學(xué)習(xí)的 RL 策略(即最終的 InstructGPT 模型),πSFT\pi^{SFT}πSFT 是經(jīng)過第一步有監(jiān)督訓(xùn)練之后的模型,DpretrainD_\text{pretrain}Dpretrain? 是預(yù)訓(xùn)練時的數(shù)據(jù)分布。式中二三兩項分別是 KL 懲罰項和語言建模預(yù)訓(xùn)練正則項,分別用來約束模型參數(shù)不要與 πSFT\pi^{SFT}πSFT 差距太大,重新使用預(yù)訓(xùn)練階段的語言建模作為優(yōu)化目標(biāo),保證模型的通用 NLP 能力。β\betaβ 和 γ\gammaγ 分別是控制這兩項的權(quán)重參數(shù)。
LM 模型對給定問題生成答案。目標(biāo)函數(shù)共有三項,分別是
- 最大化 RM 評分值
- KL 散度正則項,使得模型與 SFT 模型的輸出接近
- LM 預(yù)訓(xùn)練(原 GPT 訓(xùn)練) 正則項
Ref
-
Training language models to follow instructions with human feedback
-
InstructGPT 論文精讀【論文精讀·48】
-
ChatGPT/InstructGPT詳解
-
關(guān)于Instruct GPT復(fù)現(xiàn)的一些細(xì)節(jié)與想法