ChatGPT如何使用RLHF來克服GPT-3存在的問題_第1頁
ChatGPT如何使用RLHF來克服GPT-3存在的問題_第2頁
ChatGPT如何使用RLHF來克服GPT-3存在的問題_第3頁
ChatGPT如何使用RLHF來克服GPT-3存在的問題_第4頁
ChatGPT如何使用RLHF來克服GPT-3存在的問題_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

WordChatGPT如何使用RLHF來克服GPT-3存在的問題自ChatGPT發(fā)布以來,已經(jīng)吸引了無數(shù)人一探究竟。但ChatGPT實際上是如何工作的?盡管它內部實現(xiàn)的細節(jié)尚未公布,我們卻可以從最近的研究中一窺它的基本原理。

ChatGPT是Open(AI)發(fā)布的(最新)語言模型,比其前身GPT-3有顯著提升。與許多大型語言模型類似,ChatGPT能以不同樣式、不同目的生成文本,并且在準確度、敘述細節(jié)和上下文連貫性上具有更優(yōu)的表現(xiàn)。它代表了OpenAI最新一代的大型語言模型,并且在設計上非常注重交互性。

OpenAI使用監(jiān)督學習和強化學習的組合來調優(yōu)ChatGPT,其中的強化學習組件使ChatGPT獨一無二。OpenAI使用了「人類反饋強化學習」(RLHF)的訓練方法,該方法在訓練中使用人類反饋,以最小化無益、失真或偏見的輸出。

本文將剖析GPT-3的局限性及其從訓練過程中產生的原因,同時將解釋RLHF的原理和理解ChatGPT如何使用RLHF來克服GPT-3存在的問題,最后將探討這種方法的局限性。

大型語言模型中的能力與一致性

「一致性vs能力」可以被認為是「準確性vs精確性」的更抽象的類比。

在(機器學習)中,模型的能力是指模型執(zhí)行特定任務或一組任務的能力。模型的能力通常通過它能夠優(yōu)化其目標函數(shù)的程度來評估。例如,用來預測股票市場價格的模型可能有一個衡量模型預測準確性的目標函數(shù)。如果該模型能夠準確預測股票價格隨時間的變化,則認為該模型具有很高的執(zhí)行能力。

一致性關注的是實際希望模型做什么,而不是它被訓練做什么。它提出的問題是「目標函數(shù)是否符合預期」,根據(jù)的是模型目標和行為在多大程度上符合人類的期望。假設要訓練一個鳥類分類器,將鳥分類為「麻雀」或「知更鳥」,使用對數(shù)損失作為訓練目標,而最終目標是很高的分類精度。該模型可能具有較低的對數(shù)損失,即該模型的能力較強,但在測試集上的精度較差,這就是一個不一致的例子,模型能夠優(yōu)化訓練目標,但與最終目標不一致。

原始的GPT-3就是非一致模型。類似GPT-3的大型語言模型都是基于來自互聯(lián)網(wǎng)的大量文本數(shù)據(jù)進行訓練,能夠生成類似人類的文本,但它們可能并不總是產生符合人類期望的輸出。事實上,它們的目標函數(shù)是詞序列上的概率分布,用來預測序列中的下一個單詞是什么。

但在實際應用中,這些模型的目的是執(zhí)行某種形式的有價值的認知工作,并且這些模型的訓練方式與期望使用它們的方式之間存在明顯的差異。盡管從數(shù)學上講,機器計算詞序列的統(tǒng)計分布可能是建模語言的高效選擇,但人類其實是通過選擇最適合給定情境的文本序列來生成語言,并使用已知的背景知識和常識來輔助這一過程。當語言模型用于需要高度信任或可靠性的應用程序(如對話系統(tǒng)或(智能)個人助理)時,這可能是一個問題。

盡管這些基于大量數(shù)據(jù)訓練的大模型在過去幾年中變得極為強大,但當用于實際以幫助人們生活更輕松時,它們往往無法發(fā)揮潛力。大型語言模型中的一致性問題通常表現(xiàn)為:

提供無效幫助:沒有遵循用戶的明確指示。

內容胡編亂造:虛構不存在或錯誤事實的模型。

缺乏可解釋性:人們很難理解模型是如何得出特定決策或預測的。

內容偏見有害:一個基于有偏見、有害數(shù)據(jù)訓練的語言模型可能會在其輸出中出現(xiàn)這種情況,即使它沒有明確指示這樣做。

但具體來說,一致性問題源自何處?語言模型的訓練方式本身就容易產生不一致嗎?

語言模型訓練策略如何產生不一致?

Next-token-predic(ti)on和masked-language-modeling是用于訓練語言模型的核心技術。在第一種方法中,模型被給定一個詞序列作為輸入,并被要求預測序列中的下一個詞。如果為模型提供輸入句子:

“Thecatsatonthe”

它可能會將下一個單詞預測為「mat」、「chair」或「floor」,因為在前面的上下文中,這些單詞出現(xiàn)的概率很高;語言模型實際上能夠評估給定先前序列的每個可能詞的可能性。

masked-language-modeling方法是Next-token-prediction的變體,其中輸入句子中的一些詞被替換為特殊token,例如[MASK]。然后,模型被要求預測應該插入到mask位置的正確的詞。如果給模型一個句子:

“The[MASK]satonthe”

它可能會預測MASK位置應該填的詞是「cat」、「dog」。

這些目標函數(shù)的優(yōu)點之一是,它允許模型學習語言的統(tǒng)計結構,例如常見的詞序列和詞使用模式。這通常有助于模型生成更自然、更流暢的文本,并且是每個語言模型預訓練階段的重要步驟。

然而這些目標函數(shù)也可能導致問題,這主要是因為模型無法區(qū)分重要錯誤和不重要錯誤。一個非常簡單的例子是,如果給模型輸入句子:

"The(Rom)anEm(pi)re[MASK]withthereignofAugustus."

它可能會預測MASK位置應該填入「began」或「ended」,因為這兩個詞的出現(xiàn)概率都很高。

一般來說,這些訓練策略可能會導致語言模型在一些更復雜的任務中出現(xiàn)不一致,因為一個僅被訓練來預測文本序列中的下一個詞的模型可能不一定會學習其含義的某些更高級表征。因此,該模型很難推廣到需要對語言更深入理解的任務。

研究人員正研究各種方法來解決大型語言模型中的一致性問題。ChatGPT基于最初的GPT-3模型,但為了解決模型的不一致問題,使用了人類反饋來指導學習過程,對其進行了進一步訓練。所使用的具體技術就是前面提到的RLHF。ChatGPT是第一個將此技術用于實際場景的模型。

那ChatGPT是如何利用人類反饋來解決一致性問題的呢?

從人類反饋中進行強化學習

方法總體上包括三個不同步驟:

有監(jiān)督的調優(yōu):預訓練的語言模型在少量已標注的數(shù)據(jù)上進行調優(yōu),以學習從給定的prompt列表生成輸出的有監(jiān)督的策略(即SFT模型);

(模擬)人類偏好:標注者們對相對大量的SFT模型輸出進行投票,這就創(chuàng)建了一個由比較數(shù)據(jù)組成的新數(shù)據(jù)集。在此數(shù)據(jù)集上訓練新模型,被稱為訓練回報模型(RewardModel,RM);

近端策略優(yōu)化(PPO):RM模型用于進一步調優(yōu)和改進SFT模型,PPO輸出結果是的策略模式。

步驟1只進行一次,而步驟2和步驟3可以持續(xù)重復進行:在當前最佳策略模型上收集更多的比較數(shù)據(jù),用于訓練新的RM模型,然后訓練新的策略。接下來,將對每一步的細節(jié)進行詳述。

步驟1:監(jiān)督調優(yōu)模型

第一步是收集數(shù)據(jù),以訓練有監(jiān)督的策略模型。

數(shù)據(jù)收集:選擇一個提示列表,標注人員按要求寫下預期的輸出。對于ChatGPT,使用了兩種不同的prompt來源:一些是直接使用標注人員或研究人員準備的,另一些是從OpenAI的API請求(即從GPT-3用戶那里)獲取的。雖然整個過程緩慢且昂貴,但最終得到的結果是一個相對較小、高質量的數(shù)據(jù)集(大概有12-15k個數(shù)據(jù)點),可用于調優(yōu)預訓練的語言模型。

模型選擇:ChatGPT的開發(fā)人員選擇了GPT-3.5系列中的預訓練模型,而不是對原始GPT-3模型進行調優(yōu)。使用的基線模型是(最新版)的(te)xt-davinci-003(通過對(程序代碼)調優(yōu)的GPT-3模型)。

為了創(chuàng)建像ChatGPT這樣的通用聊天(機器人),開發(fā)人員是在「代碼模型」而不是純文本模型之上進行調優(yōu)。

由于此步驟的數(shù)據(jù)量有限,該過程獲得的SFT模型可能會輸出仍然并非用戶關注的文本,并且通常會出現(xiàn)不一致問題。這里的問題是監(jiān)督學習步驟具有高可擴展性成本。

為了克服這個問題,使用的策略是讓人工標注者對SFT模型的不同輸出進行排序以創(chuàng)建RM模型,而不是讓人工標注者創(chuàng)建一個更大的精選數(shù)據(jù)集。

第二步:訓練回報模型

這一步的目標是直接從數(shù)據(jù)中學習目標函數(shù)。該函數(shù)的目的是為SFT模型輸出進行打分,這代表這些輸出對于人類來說可取程度有多大。這強有力地反映了選定的人類標注者的具體偏好以及他們同意遵循的共同準則。最后,這個過程將從數(shù)據(jù)中得到模仿人類偏好的系統(tǒng)。

它的(工作原理)是:

選擇prompt列表,SFT模型為每個prompt生成多個輸出(4到9之間的任意值);

標注者將輸出從最佳到最差排序。結果是一個新的標簽數(shù)據(jù)集,該數(shù)據(jù)集的大小大約是用于SFT模型的精確數(shù)據(jù)集的10倍;

此新數(shù)據(jù)用于訓練RM模型。該模型將SFT模型輸出作為輸入,并按優(yōu)先順序對它們進行排序。

對于標注者來說,對輸出進行排序比從頭開始打標要容易得多,這一過程可以更有效地擴展。在實踐中,所選擇的prompt的數(shù)量大約為30-40k,并且包括排序輸出的不同組合。

步驟3:使用PPO模型微調SFT模型

這一步里強化學習被應用于通過優(yōu)化RM模型來調優(yōu)SFT模型。所使用的特定(算法)稱為近端策略優(yōu)化(PPO),而調優(yōu)模型稱為近段策略優(yōu)化模型。

什么是PPO?該算法的主要特點如下:

PPO是一種用于在強化學習中訓練agent的算法。它被稱為「on-policy」算法,因為它直接學習和更新當前策略,而不是像DQN的「off-policy」算法那樣從過去的經(jīng)驗中學習。PPO根據(jù)agent所采取的行動和所獲得的回報不斷調整策略;

PPO使用「信任區(qū)域優(yōu)化」方法來訓練策略,它將策略的更改范圍限制在與先前策略的一定程度內以保證穩(wěn)定性。這與其它策略使用梯度方法形成鮮明對比,梯度方法有時會對策略進行大規(guī)模更新,從而破壞策略的穩(wěn)定性;

PPO使用價值函數(shù)來估計給定狀態(tài)或動作的預期回報。價值函數(shù)用于計算優(yōu)勢函數(shù),它代表預期收益和當前收益之間的差異。然后使用優(yōu)勢函數(shù)通過比較當前策略采取的操作與先前策略將采取的操作來更新策略。這使PPO可以根據(jù)所采取行動的估計價值對策略進行更明智的更新。

在這一步中,PPO模型由SFT模型初始化,價值函數(shù)由RM模型初始化。該環(huán)境是一個「banditenvironment」,它會產生隨機prompt并期望對prompt做出響應。對于給定的prompt和響應,它會產生相應的回報(由RM模型決定)。SFT模型會對每個token添加KL懲罰因子,以盡量避免RM模型的過度優(yōu)化。

性能評估

因為模型是根據(jù)人工標注的輸入進行訓練的,所以評估的核心部分也

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論