原文:原創(chuàng) | 一文讀懂ChatGPT中的強化學習
ChatGPT基于OpenAI的GPT-3.5創(chuàng)造,是InstructGPT的衍生產(chǎn)品,它引入了一種新的方法,將人類反饋納入訓練過程中,使模型的輸出與用戶的意圖更好地結(jié)合。在OpenAI的2022年論文《通過人類反饋訓練語言模型以遵循指令》中對來自人類反饋的強化學習(RLHF)進行了深入描述。
創(chuàng)建者將監(jiān)督學習和強化學習相結(jié)合來微調(diào)ChatGPT,強化學習組件是ChatGPT的獨到之處。研究人員使用了“根據(jù)人類反饋強化學習(Reinforcement Learning from Human Feedback ,RLHF)”的特殊技術(shù),在訓練環(huán)路中使用人類反饋來盡量減少有害的、不真實的和/或有偏差的輸出。
該方法包括以下三個步驟:
第一步:帶監(jiān)督的微調(diào),預訓練語言模型對由標注人員管理的相對較少的演示數(shù)據(jù)進行微調(diào),以學習監(jiān)督策略(SFT模型),根據(jù)選定的提示列表生成輸出,這表示基線模型;
第二步:“模仿人類偏好”?:要求標注人員對相對較多的SFT模型輸出進行投票,創(chuàng)建一個由對比數(shù)據(jù)組成的新數(shù)據(jù)集。在該數(shù)據(jù)集上訓練一個新的獎勵模型(RM);
第三步:近端策略優(yōu)化(PPO):對獎勵模型進一步微調(diào)以改進SFT模型。這一步的結(jié)果就是所謂的策略模型。
步驟1只進行一次,而步驟2和步驟3可以連續(xù)迭代:在當前的最佳策略模型上收集更多的比較數(shù)據(jù),訓練出一個新的獎勵模型,然后在此基礎(chǔ)上再訓練出一個新的策略。
帶監(jiān)督的微調(diào)(SFT)模型
首先是收集演示數(shù)據(jù),以訓練一個帶監(jiān)督的策略模型,稱之為SFT模型。
數(shù)據(jù)收集:選擇一份提示列表,要求一組人工標注人員寫下預期的輸出響應。ChatGPT使用了兩種不同的提示來源:一些是直接從標注人員或開發(fā)人員那里獲取到的的,一些是從OpenAI的API請求中取樣的(即來自GPT-3客戶)。整個過程速度緩慢并且代價昂貴,輸出結(jié)果是一個相對較小的、高質(zhì)量的管理數(shù)據(jù)集(大概大約有12-15k個數(shù)據(jù)點),將利用該數(shù)據(jù)集微調(diào)預先訓練的語言模型。
模型選?。?/strong>開發(fā)人員選擇了在GPT-3.5系列中選擇一個預訓練模型,而不是對原來的GPT-3模型進行微調(diào)??墒褂米钚碌幕€模型——text-davinci-003,這也是一個GPT-3模型,對主要的編程代碼進行微調(diào)。
由于這一步的數(shù)據(jù)量有限,在此過程之后獲得的SFT模型很可能輸出用戶不太關(guān)注的文本,而且往往會出現(xiàn)錯位的問題。這里的問題是,監(jiān)督學習這一步存在很高的可擴展性成本。
為了克服上述問題,利用人工標記創(chuàng)建一個更大的數(shù)據(jù)集,這個速度緩慢而代價昂貴的過程,采用一個新的策略,為人工標記的SFT模型輸出創(chuàng)建一個獎勵模型——在下面的內(nèi)容中進行更詳細的解釋。
獎勵模型
在步驟1 中訓練 SFT 模型后,該模型會對用戶提示生成更一致的響應。接下來是訓練獎勵模型,其中模型輸入是一系列提示和響應,輸出是一個縮放值,稱為獎勵。需要獎勵模型以利用強化學習,在強化學習中模型學習產(chǎn)生輸出以最大化其獎勵。
直接從數(shù)據(jù)中學習出一個目標函數(shù)(獎勵模型)。這個函數(shù)的目的是給SFT模型的輸出給出一個分值,這一分值與人類對輸出的可取程度成比例。在實踐中,這將反映出選定的標記人員群體的具體偏好和他們同意遵循的準則。最后,這一過程將從數(shù)據(jù)中提取出一個模仿人類偏好的自動回答系統(tǒng)。其工作原理如下:
-
選擇一個提示列表,SFT模型為每個提示生成多個SFT 模型輸出(在4個到9個之間);
-
標注人員將輸出從好到壞進行排序,結(jié)果是生成一個新的標記數(shù)據(jù)集,其中的排名是標記。這個數(shù)據(jù)集的大小大約是SFT模型數(shù)據(jù)集的10倍;
-
利用這些新數(shù)據(jù)訓練一個獎勵模型(RM)。該模型將某些SFT模型輸出作為輸入,并根據(jù)人類偏好對它們進行排序。
對于標注者來說,對輸出進行排序比從頭開始生成它們要容易得多,因此這個過程的縮放效率會更高。在實踐中,從30-40k個提示符(prompts)中生成一個數(shù)據(jù)集,要求將這些輸出從最好到最差進行排名,創(chuàng)建輸出排名組合。在排名階段,將不同標注的輸出呈現(xiàn)給不同的提示符。
利用近端策略優(yōu)化(PPO)算法微調(diào)SFT模型
接下來,利用強化學習微調(diào)SFT策略,讓它優(yōu)化獎勵模型。模型會收到隨機提示并返回響應。響應是使用模型在步驟2 中學習的“策略”生成的。策略表示機器已經(jīng)學會使用以實現(xiàn)其目標的策略;在這種情況下,最大化其獎勵?;谠诓襟E 2 中開發(fā)的獎勵模型,然后為提示和響應對確定縮放器獎勵值。然后獎勵反饋到模型中以改進策略。所使用的算法為近端策略優(yōu)化(PPO)算法,而微調(diào)后的模型稱為PPO模型。
2017年,舒爾曼等人。引入了近端策略優(yōu)化 (PPO),該方法用于在生成每個響應時更新模型的策略。PPO 包含來自 SFT 模型的每個代幣 Kullback–Leibler (KL)?懲罰。KL 散度衡量兩個分布函數(shù)的相似性并對極端距離進行懲罰。在這種情況下,使用 KL 懲罰會減少響應與步驟 1 中訓練的 SFT 模型輸出之間的距離,以避免過度優(yōu)化獎勵模型和與人類意圖數(shù)據(jù)集的偏差太大。PPO算法的具體實現(xiàn)已經(jīng)在前文4.4 節(jié)中進行了描述,這種方法的要點:
-
PPO是一種用于訓練強化學習中智能體的算法,為策略算法,正如DQN(深度q網(wǎng)絡)等算法一樣,它直接從當前策略中學習和更新策略,而非從過去的經(jīng)驗中學習算法。PPO根據(jù)智能體所采取的行動和它所獲得的獎勵,不斷地調(diào)整當前的政策;
-
PPO使用置信區(qū)間優(yōu)化方法對策略進行訓練,它將策略的變化限制在與先前策略的一定距離內(nèi),以確保穩(wěn)定性。這與其他策略梯度方法相反,其他策略梯度方法有時會對策略進行大量更新,從而使學習不穩(wěn)定;
-
PPO使用價值函數(shù)來估計給定狀態(tài)或動作的預期回報。利用價值函數(shù)計算優(yōu)勢函數(shù),它表示期望回報和當前回報之間的差值,使用優(yōu)勢函數(shù)通過比較當前策略所采取的動作與先前策略的本應采取的動作來更新策略,PPO能夠根據(jù)動作的估計值對策略進行更明智的更新。
在該步驟中,由SFT模型初始化PPO模型,由獎勵模型初始化價值函數(shù)。該環(huán)境是一個強盜環(huán)境(bandit environment),它顯示一個隨機的提示符,并期望對該提示符作出響應。給出提示和反響應之后,會生成獎勵(由獎勵模型決定)。在每個標注的SFT模型中添加各個標記的KL懲罰,以優(yōu)化獎勵模型。文章來源:http://www.zghlxwxcb.cn/news/detail-787461.html
結(jié)論
ChatGPT引入了強化學習近端策略優(yōu)化(PPO)算法微調(diào)SFT模型,將人類反饋納入模型訓練過程中,從而大幅度提高了模型訓練的準確度。文章來源地址http://www.zghlxwxcb.cn/news/detail-787461.html
到了這里,關(guān)于| 一文讀懂ChatGPT中的強化學習的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!