[點(diǎn)晴永久免費(fèi)OA]解析ChatGPT背后的工作原理
ChatGPT 是 OpenAI 發(fā)布的最新語(yǔ)言模型,比其前身 GPT-3 有顯著提升。與許多大型語(yǔ)言模型類(lèi)似,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 使用了「人類(lèi)反饋強(qiáng)化學(xué)習(xí)」(RLHF)的訓(xùn)練方法,該方法在訓(xùn)練中使用人類(lèi)反饋,以最小化無(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 精確性」的更抽象的類(lèi)比。 在機(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)和行為在多大程度上符合人類(lèi)的期望。假設(shè)要訓(xùn)練一個(gè)鳥(niǎo)類(lèi)分類(lèi)器,將鳥(niǎo)分類(lèi)為「麻雀」或「知更鳥(niǎo)」,使用對(duì)數(shù)損失作為訓(xùn)練目標(biāo),而最終目標(biāo)是很高的分類(lèi)精度。該模型可能具有較低的對(duì)數(shù)損失,即該模型的能力較強(qiáng),但在測(cè)試集上的精度較差,這就是一個(gè)不一致的例子,模型能夠優(yōu)化訓(xùn)練目標(biāo),但與最終目標(biāo)不一致。 原始的 GPT-3 就是非一致模型。類(lèi)似 GPT-3 的大型語(yǔ)言模型都是基于來(lái)自互聯(lián)網(wǎng)的大量文本數(shù)據(jù)進(jìn)行訓(xùn)練,能夠生成類(lèi)似人類(lèi)的文本,但它們可能并不總是產(chǎn)生符合人類(lèi)期望的輸出。事實(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ǔ)言的高效選擇,但人類(lèi)其實(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)為:
但具體來(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è)詞。如果為模型提供輸入句子:
它可能會(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è)句子:
它可能會(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)單的例子是,如果給模型輸入句子:
它可能會(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)反饋來(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)反饋來(lái)解決一致性問(wèn)題的呢? 從人類(lèi)反饋中進(jìn)行強(qiáng)化學(xué)習(xí) 方法總體上包括三個(gè)不同步驟:
步驟 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)督的策略模型。
為了創(chuàng)建像 ChatGPT 這樣的通用聊天機(jī)器人,開(kāi)發(fā)人員是在「代碼模型」而不是純文本模型之上進(jìn)行調(diào)優(yōu)。 由于此步驟的數(shù)據(jù)量有限,該過(guò)程獲得的 SFT 模型可能會(huì)輸出仍然并非用戶(hù)關(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)來(lái)說(shuō)可取程度有多大。這強(qiáng)有力地反映了選定的人類(lèi)標(biāo)注者的具體偏好以及他們同意遵循的共同準(zhǔn)則。最后,這個(gè)過(guò)程將從數(shù)據(jù)中得到模仿人類(lèi)偏好的系統(tǒng)。 它的工作原理是:
對(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 模型。所使用的特定算法稱(chēng)為近端策略?xún)?yōu)化(PPO),而調(diào)優(yōu)模型稱(chēng)為近段策略?xún)?yōu)化模型。 什么是 PPO?該算法的主要特點(diǎ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 客戶(hù)的 prompt,這些 prompt 未出現(xiàn)在訓(xùn)練數(shù)據(jù)中。 該模型基于三個(gè)標(biāo)準(zhǔn)進(jìn)行評(píng)估:
該模型還針對(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) 的例子,其中基于 人類(lèi)反饋強(qiáng)化學(xué)習(xí)的一致性程序是以降低某些任務(wù)的性能為代價(jià)的。 這些數(shù)據(jù)集的性能回歸可以通過(guò)稱(chēng)為預(yù)訓(xùn)練混合的技巧大大減少:在通過(guò)梯度下降訓(xùn)練 PPO 模型期間,通過(guò)混合 SFT 模型和 PPO 模型的梯度來(lái)計(jì)算梯度更新。 方法的缺點(diǎn) 該方法的一個(gè)非常明顯的局限性是,在將語(yǔ)言模型與人類(lèi)意圖保持一致的過(guò)程中,用于 fine-tuning 模型的數(shù)據(jù)會(huì)受到各種錯(cuò)綜復(fù)雜的主觀因素的影響,主要包括:
ChatGPT 的作者也承認(rèn)一個(gè)明顯的事實(shí),即參與訓(xùn)練過(guò)程的標(biāo)注人員和研究人員可能并不能完全代表語(yǔ)言模型的所有潛在最終用戶(hù)。 除了這一明顯的「內(nèi)生」限制之外,該方法還有的一些其它缺點(diǎn)和需要解決的問(wèn)題:
相關(guān)閱讀:
參考內(nèi)容: https://www.assemblyai.com/blog/how-chatgpt-actually-works/?continueFlag=1bafdcd5c034def869fecb4f3bdaed70 --完-- 該文章在 2023/3/27 18:55:49 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |