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