自 ChatGPT 發(fā)布以來,,已經(jīng)吸引了無數(shù)人一探究竟,。但 ChatGPT 實(shí)際上是如何工作的?盡管它內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)尚未公布,,我們卻可以從最近的研究中一窺它的基本原理,。
ChatGPT 是 OpenAI 發(fā)布的最新語言模型,比其前身 GPT-3 有顯著提升,。與許多大型語言模型類似,,ChatGPT 能以不同樣式、不同目的生成文本,,并且在準(zhǔn)確度,、敘述細(xì)節(jié)和上下文連貫性上具有更優(yōu)的表現(xiàn)。它代表了 OpenAI 最新一代的大型語言模型,,并且在設(shè)計(jì)上非常注重交互性,。
OpenAI 使用監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的組合來調(diào)優(yōu) ChatGPT,,其中的強(qiáng)化學(xué)習(xí)組件使 ChatGPT 獨(dú)一無二。OpenAI 使用了「人類反饋強(qiáng)化學(xué)習(xí)」(RLHF)的訓(xùn)練方法,,該方法在訓(xùn)練中使用人類反饋,,以最小化無益、失真或偏見的輸出,。
本文將剖析 GPT-3 的局限性及其從訓(xùn)練過程中產(chǎn)生的原因,,同時(shí)將解釋 RLHF 的原理和理解 ChatGPT 如何使用 RLHF 來克服 GPT-3 存在的問題,最后將探討這種方法的局限性,。
大型語言模型中的能力與一致性
「一致性 vs 能力」可以被認(rèn)為是「準(zhǔn)確性 vs 精確性」的更抽象的類比,。
在機(jī)器學(xué)習(xí)中,模型的能力是指模型執(zhí)行特定任務(wù)或一組任務(wù)的能力,。模型的能力通常通過它能夠優(yōu)化其目標(biāo)函數(shù)的程度來評估,。例如,用來預(yù)測股票市場價(jià)格的模型可能有一個(gè)衡量模型預(yù)測準(zhǔn)確性的目標(biāo)函數(shù),。如果該模型能夠準(zhǔn)確預(yù)測股票價(jià)格隨時(shí)間的變化,,則認(rèn)為該模型具有很高的執(zhí)行能力。
一致性關(guān)注的是實(shí)際希望模型做什么,,而不是它被訓(xùn)練做什么,。它提出的問題是「目標(biāo)函數(shù)是否符合預(yù)期」,根據(jù)的是模型目標(biāo)和行為在多大程度上符合人類的期望,。假設(shè)要訓(xùn)練一個(gè)鳥類分類器,,將鳥分類為「麻雀」或「知更鳥」,使用對數(shù)損失作為訓(xùn)練目標(biāo),,而最終目標(biāo)是很高的分類精度,。該模型可能具有較低的對數(shù)損失,即該模型的能力較強(qiáng),,但在測試集上的精度較差,,這就是一個(gè)不一致的例子,模型能夠優(yōu)化訓(xùn)練目標(biāo),,但與最終目標(biāo)不一致,。
原始的 GPT-3 就是非一致模型。類似 GPT-3 的大型語言模型都是基于來自互聯(lián)網(wǎng)的大量文本數(shù)據(jù)進(jìn)行訓(xùn)練,,能夠生成類似人類的文本,,但它們可能并不總是產(chǎn)生符合人類期望的輸出。事實(shí)上,,它們的目標(biāo)函數(shù)是詞序列上的概率分布,,用來預(yù)測序列中的下一個(gè)單詞是什么。
但在實(shí)際應(yīng)用中,,這些模型的目的是執(zhí)行某種形式的有價(jià)值的認(rèn)知工作,,并且這些模型的訓(xùn)練方式與期望使用它們的方式之間存在明顯的差異,。盡管從數(shù)學(xué)上講,機(jī)器計(jì)算詞序列的統(tǒng)計(jì)分布可能是建模語言的高效選擇,,但人類其實(shí)是通過選擇最適合給定情境的文本序列來生成語言,,并使用已知的背景知識和常識來輔助這一過程。當(dāng)語言模型用于需要高度信任或可靠性的應(yīng)用程序(如對話系統(tǒng)或智能個(gè)人助理)時(shí),,這可能是一個(gè)問題,。
盡管這些基于大量數(shù)據(jù)訓(xùn)練的大模型在過去幾年中變得極為強(qiáng)大,但當(dāng)用于實(shí)際以幫助人們生活更輕松時(shí),,它們往往無法發(fā)揮潛力,。大型語言模型中的一致性問題通常表現(xiàn)為:
提供無效幫助:沒有遵循用戶的明確指示。
內(nèi)容胡編亂造:虛構(gòu)不存在或錯(cuò)誤事實(shí)的模型,。
缺乏可解釋性:人們很難理解模型是如何得出特定決策或預(yù)測的,。
內(nèi)容偏見有害:一個(gè)基于有偏見、有害數(shù)據(jù)訓(xùn)練的語言模型可能會在其輸出中出現(xiàn)這種情況,,即使它沒有明確指示這樣做,。
但具體來說,一致性問題源自何處,?語言模型的訓(xùn)練方式本身就容易產(chǎn)生不一致嗎,?
語言模型訓(xùn)練策略如何產(chǎn)生不一致?
Next-token-prediction 和 masked-language-modeling 是用于訓(xùn)練語言模型的核心技術(shù),。在第一種方法中,,模型被給定一個(gè)詞序列作為輸入,,并被要求預(yù)測序列中的下一個(gè)詞,。如果為模型提供輸入句子:
“The cat sat on the”
它可能會將下一個(gè)單詞預(yù)測為「mat」、「chair」或「floor」,,因?yàn)樵谇懊娴纳舷挛闹?,這些單詞出現(xiàn)的概率很高;語言模型實(shí)際上能夠評估給定先前序列的每個(gè)可能詞的可能性,。
masked-language-modeling 方法是 Next-token-prediction 的變體,,其中輸入句子中的一些詞被替換為特殊 token,例如 [MASK],。然后,模型被要求預(yù)測應(yīng)該插入到 mask 位置的正確的詞,。如果給模型一個(gè)句子:
“The [MASK] sat on the ”
它可能會預(yù)測 MASK 位置應(yīng)該填的詞是「cat」,、「dog」。
這些目標(biāo)函數(shù)的優(yōu)點(diǎn)之一是,,它允許模型學(xué)習(xí)語言的統(tǒng)計(jì)結(jié)構(gòu),,例如常見的詞序列和詞使用模式,。這通常有助于模型生成更自然、更流暢的文本,,并且是每個(gè)語言模型預(yù)訓(xùn)練階段的重要步驟,。
然而這些目標(biāo)函數(shù)也可能導(dǎo)致問題,這主要是因?yàn)槟P蜔o法區(qū)分重要錯(cuò)誤和不重要錯(cuò)誤,。一個(gè)非常簡單的例子是,,如果給模型輸入句子:
"The Roman Empire [MASK] with the reign of Augustus."
它可能會預(yù)測 MASK 位置應(yīng)該填入「began」或「ended」,因?yàn)檫@兩個(gè)詞的出現(xiàn)概率都很高,。
一般來說,,這些訓(xùn)練策略可能會導(dǎo)致語言模型在一些更復(fù)雜的任務(wù)中出現(xiàn)不一致,因?yàn)橐粋€(gè)僅被訓(xùn)練來預(yù)測文本序列中的下一個(gè)詞的模型可能不一定會學(xué)習(xí)其含義的某些更高級表征,。因此,,該模型很難推廣到需要對語言更深入理解的任務(wù)。
研究人員正研究各種方法來解決大型語言模型中的一致性問題,。ChatGPT 基于最初的 GPT-3 模型,,但為了解決模型的不一致問題,使用了人類反饋來指導(dǎo)學(xué)習(xí)過程,,對其進(jìn)行了進(jìn)一步訓(xùn)練,。所使用的具體技術(shù)就是前面提到的 RLHF。ChatGPT 是第一個(gè)將此技術(shù)用于實(shí)際場景的模型,。
那 ChatGPT 是如何利用人類反饋來解決一致性問題的呢,?
從人類反饋中進(jìn)行強(qiáng)化學(xué)習(xí)
方法總體上包括三個(gè)不同步驟:
有監(jiān)督的調(diào)優(yōu):預(yù)訓(xùn)練的語言模型在少量已標(biāo)注的數(shù)據(jù)上進(jìn)行調(diào)優(yōu),以學(xué)習(xí)從給定的 prompt 列表生成輸出的有監(jiān)督的策略(即 SFT 模型),;
模擬人類偏好:標(biāo)注者們對相對大量的 SFT 模型輸出進(jìn)行投票,,這就創(chuàng)建了一個(gè)由比較數(shù)據(jù)組成的新數(shù)據(jù)集。在此數(shù)據(jù)集上訓(xùn)練新模型,,被稱為訓(xùn)練回報(bào)模型(Reward Model,,RM);
近端策略優(yōu)化(PPO):RM 模型用于進(jìn)一步調(diào)優(yōu)和改進(jìn) SFT 模型,,PPO 輸出結(jié)果是的策略模式,。
步驟 1 只進(jìn)行一次,而步驟 2 和步驟 3 可以持續(xù)重復(fù)進(jìn)行:在當(dāng)前最佳策略模型上收集更多的比較數(shù)據(jù),,用于訓(xùn)練新的 RM 模型,,然后訓(xùn)練新的策略。接下來,,將對每一步的細(xì)節(jié)進(jìn)行詳述,。
步驟 1:監(jiān)督調(diào)優(yōu)模型
第一步是收集數(shù)據(jù),以訓(xùn)練有監(jiān)督的策略模型。
數(shù)據(jù)收集:選擇一個(gè)提示列表,,標(biāo)注人員按要求寫下預(yù)期的輸出,。對于 ChatGPT,使用了兩種不同的 prompt 來源:一些是直接使用標(biāo)注人員或研究人員準(zhǔn)備的,,另一些是從 OpenAI 的 API 請求(即從 GPT-3 用戶那里)獲取的,。雖然整個(gè)過程緩慢且昂貴,但最終得到的結(jié)果是一個(gè)相對較小,、高質(zhì)量的數(shù)據(jù)集(大概有 12-15k 個(gè)數(shù)據(jù)點(diǎn)),,可用于調(diào)優(yōu)預(yù)訓(xùn)練的語言模型。
模型選擇:ChatGPT 的開發(fā)人員選擇了 GPT-3.5 系列中的預(yù)訓(xùn)練模型,,而不是對原始 GPT-3 模型進(jìn)行調(diào)優(yōu),。使用的基線模型是最新版的 text-davinci-003(通過對程序代碼調(diào)優(yōu)的 GPT-3 模型)。
為了創(chuàng)建像 ChatGPT 這樣的通用聊天機(jī)器人,,開發(fā)人員是在「代碼模型」而不是純文本模型之上進(jìn)行調(diào)優(yōu),。
由于此步驟的數(shù)據(jù)量有限,該過程獲得的 SFT 模型可能會輸出仍然并非用戶關(guān)注的文本,,并且通常會出現(xiàn)不一致問題,。這里的問題是監(jiān)督學(xué)習(xí)步驟具有高可擴(kuò)展性成本。
為了克服這個(gè)問題,,使用的策略是讓人工標(biāo)注者對 SFT 模型的不同輸出進(jìn)行排序以創(chuàng)建 RM 模型,,而不是讓人工標(biāo)注者創(chuàng)建一個(gè)更大的精選數(shù)據(jù)集。
第二步:訓(xùn)練回報(bào)模型
這一步的目標(biāo)是直接從數(shù)據(jù)中學(xué)習(xí)目標(biāo)函數(shù),。該函數(shù)的目的是為 SFT 模型輸出進(jìn)行打分,,這代表這些輸出對于人類來說可取程度有多大。這強(qiáng)有力地反映了選定的人類標(biāo)注者的具體偏好以及他們同意遵循的共同準(zhǔn)則,。最后,,這個(gè)過程將從數(shù)據(jù)中得到模仿人類偏好的系統(tǒng)。
它的工作原理是:
選擇 prompt 列表,,SFT 模型為每個(gè) prompt 生成多個(gè)輸出(4 到 9 之間的任意值),;
標(biāo)注者將輸出從最佳到最差排序。結(jié)果是一個(gè)新的標(biāo)簽數(shù)據(jù)集,,該數(shù)據(jù)集的大小大約是用于 SFT 模型的精確數(shù)據(jù)集的 10 倍,;
此新數(shù)據(jù)用于訓(xùn)練 RM 模型 。該模型將 SFT 模型輸出作為輸入,,并按優(yōu)先順序?qū)λ鼈冞M(jìn)行排序,。
對于標(biāo)注者來說,對輸出進(jìn)行排序比從頭開始打標(biāo)要容易得多,,這一過程可以更有效地?cái)U(kuò)展,。在實(shí)踐中,所選擇的 prompt 的數(shù)量大約為 30-40k,并且包括排序輸出的不同組合,。
步驟 3:使用 PPO 模型微調(diào) SFT 模型
這一步里強(qiáng)化學(xué)習(xí)被應(yīng)用于通過優(yōu)化 RM 模型來調(diào)優(yōu) SFT 模型。所使用的特定算法稱為近端策略優(yōu)化(PPO),,而調(diào)優(yōu)模型稱為近段策略優(yōu)化模型,。
什么是 PPO?該算法的主要特點(diǎn)如下:
PPO 是一種用于在強(qiáng)化學(xué)習(xí)中訓(xùn)練 agent 的算法,。它被稱為「on-policy」算法,,因?yàn)樗苯訉W(xué)習(xí)和更新當(dāng)前策略,而不是像 DQN 的「off-policy」算法那樣從過去的經(jīng)驗(yàn)中學(xué)習(xí),。PPO 根據(jù) agent 所采取的行動(dòng)和所獲得的回報(bào)不斷調(diào)整策略,;
PPO 使用「信任區(qū)域優(yōu)化」方法來訓(xùn)練策略,它將策略的更改范圍限制在與先前策略的一定程度內(nèi)以保證穩(wěn)定性,。這與其它策略使用梯度方法形成鮮明對比,,梯度方法有時(shí)會對策略進(jìn)行大規(guī)模更新,從而破壞策略的穩(wěn)定性,;
PPO 使用價(jià)值函數(shù)來估計(jì)給定狀態(tài)或動(dòng)作的預(yù)期回報(bào),。價(jià)值函數(shù)用于計(jì)算優(yōu)勢函數(shù),它代表預(yù)期收益和當(dāng)前收益之間的差異,。然后使用優(yōu)勢函數(shù)通過比較當(dāng)前策略采取的操作與先前策略將采取的操作來更新策略,。這使 PPO 可以根據(jù)所采取行動(dòng)的估計(jì)價(jià)值對策略進(jìn)行更明智的更新。
在這一步中,,PPO 模型由 SFT 模型初始化,,價(jià)值函數(shù)由 RM 模型初始化。該環(huán)境是一個(gè)「bandit environment」,,它會產(chǎn)生隨機(jī) prompt 并期望對 prompt 做出響應(yīng),。對于給定的 prompt 和響應(yīng),它會產(chǎn)生相應(yīng)的回報(bào)(由 RM 模型決定),。SFT 模型會對每個(gè) token 添加 KL 懲罰因子,,以盡量避免 RM 模型的過度優(yōu)化。
性能評估
因?yàn)槟P褪歉鶕?jù)人工標(biāo)注的輸入進(jìn)行訓(xùn)練的,,所以評估的核心部分也基于人工輸入,,即通過讓標(biāo)注者對模型輸出的質(zhì)量評分來進(jìn)行。為避免訓(xùn)練階段涉及的標(biāo)注者的判斷過擬合,,測試集使用了來自其它 OpenAI 客戶的 prompt,,這些 prompt 未出現(xiàn)在訓(xùn)練數(shù)據(jù)中。
該模型基于三個(gè)標(biāo)準(zhǔn)進(jìn)行評估:
幫助性:判斷模型遵循用戶指示以及推斷指示的能力,。
真實(shí)性:判斷模型在封閉領(lǐng)域任務(wù)中有產(chǎn)生虛構(gòu)事實(shí)的傾向,。
無害性:標(biāo)注者評估模型的輸出是否適當(dāng)、是否包含歧視性內(nèi)容。
該模型還針對傳統(tǒng) NLP 任務(wù)(如解答問題,、閱讀理解和摘要)的零樣本學(xué)習(xí)的性能進(jìn)行了評估,,開發(fā)人員發(fā)現(xiàn)在其中一些任務(wù)上模型的表現(xiàn)比 GPT-3 要差一些,這是一個(gè)「一致性稅」( alignment tax) 的例子,,其中基于 人類反饋強(qiáng)化學(xué)習(xí)的一致性程序是以降低某些任務(wù)的性能為代價(jià)的,。
這些數(shù)據(jù)集的性能回歸可以通過稱為預(yù)訓(xùn)練混合的技巧大大減少:在通過梯度下降訓(xùn)練 PPO 模型期間,通過混合 SFT 模型和 PPO 模型的梯度來計(jì)算梯度更新,。
方法的缺點(diǎn)
該方法的一個(gè)非常明顯的局限性是,,在將語言模型與人類意圖保持一致的過程中,用于 fine-tuning 模型的數(shù)據(jù)會受到各種錯(cuò)綜復(fù)雜的主觀因素的影響,,主要包括:
生成 demo 數(shù)據(jù)的人工標(biāo)注者的偏好,;
設(shè)計(jì)研究和編寫標(biāo)簽說明的研究人員;
選擇由開發(fā)人員制作或由 OpenAI 客戶提供的 prompt,;
標(biāo)注者偏差既包含在 RM 模型訓(xùn)練中,,也包含在模型評估中。
ChatGPT 的作者也承認(rèn)一個(gè)明顯的事實(shí),,即參與訓(xùn)練過程的標(biāo)注人員和研究人員可能并不能完全代表語言模型的所有潛在最終用戶,。
除了這一明顯的「內(nèi)生」限制之外,該方法還有的一些其它缺點(diǎn)和需要解決的問題:
缺乏對照研究:報(bào)告的結(jié)果以 SFT 模型為基準(zhǔn)衡量最終 PPO 模型的性能,。這可能會產(chǎn)生誤導(dǎo):如何知道這些改進(jìn)是由于 RLHF,?因此對照研究非常有必要,包括投入與用于訓(xùn)練 RM 模型的標(biāo)注工時(shí)數(shù)完全相同的時(shí)間,,以創(chuàng)建具有高質(zhì)量數(shù)據(jù)的更大的精選有監(jiān)督調(diào)優(yōu)的數(shù)據(jù)集,。這樣就可以客觀地衡量 RLHF 方法與監(jiān)督方法相比的性能改進(jìn)。簡單來說,,缺乏這樣的對照研究讓一個(gè)基本問題完全懸而未決:RLHF 在一致性語言模型方面真的做得很好嗎,?
比較數(shù)據(jù)缺乏基本事實(shí):標(biāo)注者通常會對模型輸出的排名持不同意見。技術(shù)上講,,產(chǎn)生的風(fēng)險(xiǎn)是在沒有任何基本事實(shí)的情況下,,向比較數(shù)據(jù)添加了很大的方差。
人類的偏好并非同質(zhì):RLHF 方法將人類的偏好視為同質(zhì)和靜態(tài)的,。假設(shè)所有人都有相同的價(jià)值觀,,這明顯是不準(zhǔn)確的,雖然有大量的公共價(jià)值觀,,但在很多事務(wù)上人類還是存在許多不同的認(rèn)知,。
RM 模型 prompt 穩(wěn)定性測試:沒有實(shí)驗(yàn)表明 RM 模型在輸入 prompt 變化方面的敏感性。如果兩個(gè) prompt 在句法上不同但在語義上是等價(jià)的,,RM 模型能否在模型輸出的排名中顯示出顯著差異,?即 prompt 的質(zhì)量對 RM 有多重要,?
其它問題:在 RL 方法中,模型有時(shí)可以學(xué)會控制自己的 RM 模型以實(shí)現(xiàn)期望的結(jié)果,,從而導(dǎo)致「過度優(yōu)化的策略」,。這可能會導(dǎo)致模型重新創(chuàng)建一些模式,因?yàn)槟承┪粗脑?,這些模式使 RM 模型得分較高,。ChatGPT 通過使用 RM 函數(shù)中的 KL 懲罰項(xiàng)對此進(jìn)行了修補(bǔ)。
歡迎關(guān)注電子技術(shù)應(yīng)用2023年2月22日==>>商業(yè)航天研討會<<