首頁  >  文章  >  科技週邊  >  深入淺出,解析ChatGPT背後的工作原理

深入淺出,解析ChatGPT背後的工作原理

WBOY
WBOY轉載
2023-04-15 23:25:011812瀏覽

ChatGPT 是 OpenAI 发布的最新语言模型,比其前身 GPT-3 有显著提升。与许多大型语言模型类似,ChatGPT 能以不同样式、不同目的生成文本,并且在准确度、叙述细节和上下文连贯性上具有更优的表现。它代表了 OpenAI 最新一代的大型语言模型,并且在设计上非常注重交互性。

OpenAI 使用监督学习和强化学习的组合来调优 ChatGPT,其中的强化学习组件使 ChatGPT 独一无二。OpenAI 使用了「人类反馈强化学习」(RLHF)的训练方法,该方法在训练中使用人类反馈,以最小化无益、失真或偏见的输出。

本文将剖析 GPT-3 的局限性及其从训练过程中产生的原因,同时将解释 RLHF 的原理和理解 ChatGPT 如何使用 RLHF 来克服 GPT-3 存在的问题,最后将探讨这种方法的局限性。

大型语言模型中的能力与一致性

深入淺出,解析ChatGPT背後的工作原理

「一致性 vs 能力」可以被认为是「准确性 vs 精确性」的更抽象的类比。

在机器学习中,模型的能力是指模型执行特定任务或一组任务的能力。模型的能力通常通过它能够优化其目标函数的程度来评估。例如,用来预测市场价格的模型可能有一个衡量模型预测准确性的目标函数。如果该模型能够准确预测票价随时间的变化,则认为该模型具有很高的执行能力。

一致性关注的是实际希望模型做什么,而不是它被训练做什么。它提出的问题是「目标函数是否符合预期」,根据的是模型目标和行为在多大程度上符合人类的期望。假设要训练一个鸟类分类器,将鸟分类为「麻雀」或「知更鸟」,使用对数损失作为训练目标,而最终目标是很高的分类精度。该模型可能具有较低的对数损失,即该模型的能力较强,但在测试集上的精度较差,这就是一个不一致的例子,模型能够优化训练目标,但与最终目标不一致。

原始的 GPT-3 就是非一致模型。类似 GPT-3 的大型语言模型都是基于来自互联网的大量文本数据进行训练,能够生成类似人类的文本,但它们可能并不总是产生符合人类期望的输出。事实上,它们的目标函数是词序列上的概率分布,用来预测序列中的下一个单词是什么。

但在实际应用中,这些模型的目的是执行某种形式的有价值的认知工作,并且这些模型的训练方式与期望使用它们的方式之间存在明显的差异。尽管从数学上讲,机器计算词序列的统计分布可能是建模语言的高效选择,但人类其实是通过选择最适合给定情境的文本序列来生成语言,并使用已知的背景知识和常识来辅助这一过程。当语言模型用于需要高度信任或可靠性的应用程序(如对话系统或智能个人助理)时,这可能是一个问题。

尽管这些基于大量数据训练的大模型在过去几年中变得极为强大,但当用于实际以帮助人们生活更轻松时,它们往往无法发挥潜力。大型语言模型中的一致性问题通常表现为:

  • 提供无效帮助:没有遵循用户的明确指示。
  • 内容胡编乱造:虚构不存在或错误事实的模型。
  • 缺乏可解释性:人们很难理解模型是如何得出特定决策或预测的。
  • 内容偏见有害:一个基于有偏见、有害数据训练的语言模型可能会在其输出中出现这种情况,即使它没有明确指示这样做。

但具体来说,一致性问题源自何处?语言模型的训练方式本身就容易产生不一致吗?

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

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

“The cat sat on the”

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

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

「The [MASK] sat on the 」

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

這些目標函數的優點之一是,它允許模型學習語言的統計結構,例如常見的單字序列和單字使用模式。這通常有助於模型產生更自然、更流暢的文本,並且是每個語言模型預訓練階段的重要步驟。

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

"The Roman Empire [MASK] with the reign of Augustus." 

它可能會預測MASK位置應該填入“began”或“ended”,因為這兩個字的出現機率都很高。

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

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

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

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

方法整體上包含三個不同步驟:

  • 有監督的調優:預先訓練的語言模型在少量已標註的資料上進行調優,以學習從給定的prompt 列表生成輸出的有監督的策略(即SFT 模型);
  • #模擬人類偏好:標註者們對相對大量的SFT 模型輸出進行投票,這就創建了一個由比較資料組成的新資料集。在此資料集上訓練新模型,被稱為訓練回報模型(Reward Model,RM);
  • #近端策略最佳化(PPO):RM 模型用於進一步調優和改進SFT 模型,PPO 輸出結果是的策略模式。

步驟1 只進行一次,而步驟2 和步驟3 可以持續重複進行:在目前最佳策略模型上收集更多的比較數據,用於訓練新的RM 模型,然後訓練新的策略。接下來,將對每一步的細節進行詳述。

步驟1:監督調校模型

#     第一步是收集數據,以訓練有監督的策略模型。

  • 資料收集:選擇提示列表,標註人員依要求寫下預期的輸出。對於 ChatGPT,使用了兩種不同的 prompt 來源:有些是直接使用標註人員或研究人員準備的,有些則是從 OpenAI 的 API 請求(即從 GPT-3 使用者)取得的。雖然整個過程緩慢且昂貴,但最終得到的結果是一個相對較小、高品質的資料集(大概有 12-15k 個資料點),可用於調優預訓練的語言模型。
  • 模型選擇:ChatGPT 的開發人員選擇了 GPT-3.5 系列中的預訓練模型,而不是對原始 GPT-3 模型進行調優。使用的基線模型是最新版的 text-davinci-003(透過程式碼調優的 GPT-3 模型)。

為了創建像 ChatGPT 這樣的通用聊天機器人,開發人員是在「程式碼模型」而不是純文字模型之上進行調優。

深入淺出,解析ChatGPT背後的工作原理

由於此步驟的資料量有限,該過程獲得的SFT 模型可能會輸出仍然並非使用者關注的文本,並且通常會出現不一致問題。這裡的問題是監督學習步驟具有高可擴展性成本。

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

第二步:訓練回報模型

#這一步的目標是直接從資料中學習目標函數。此函數的目的是為 SFT 模型輸出進行評分,這代表這些輸出對於人類來說可取程度有多大。這強烈地反映了選定的人類標註者的具體偏好以及他們同意遵循的共同準則。最後,這個過程將從數據中得到模仿人類偏好的系統。

它的工作原理是:

  • #選擇prompt 列表,SFT 模型為每個prompt 產生多個輸出(4 到9 之間的任意值);
  • 標註者將輸出從最佳到最差排序。結果是一個新的標籤資料集,該資料集的大小大約是用於 SFT 模型的精確資料集的 10 倍;
  • 此新資料用於訓練 RM 模型 。該模型將 SFT 模型輸出作為輸入,並按優先順序對它們進行排序。

深入淺出,解析ChatGPT背後的工作原理

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

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

這一步驟強化學習被應用於透過最佳化RM模型來調優SFT 模型。所使用的特定演算法稱為近端策略最佳化(PPO),而調優模型稱為近段策略最佳化模型。

什麼是 PPO?此演算法的主要特點如下:

  • PPO 是一種用於在強化學習中訓練 agent 的演算法。它被稱為「on-policy」演算法,因為它直接學習和更新當前策略,而不是像 DQN 的「off-policy」演算法那樣從過去的經驗中學習。 PPO 根據agent 所採取的行動和所獲得的回報不斷調整策略;
  • PPO 使用「信任區域優化」方法來訓練策略,它將策略的更改範圍限制在與先前策略的一定程度內以確保穩定性。這與其它策略使用梯度方法形成鮮明對比,梯度方法有時會對策略進行大規模更新,從而破壞策略的穩定性;
  • PPO 使用價值函數來估計給定狀態或動作的預期回報。價值函數用於計算優勢函數,它代表預期收益和當前收益之間的差異。然後使用優勢函數透過比較目前策略採取的操作與先前策略將採取的操作來更新策略。這使 PPO 可以根據所採取行動的估計價值對策略進行更明智的更新。

在這一步驟中,PPO 模型由 SFT 模型初始化,價值函數由 RM 模型初始化。這個環境是一個“bandit environment”,它會產生隨機 prompt 並期望對 prompt 做出回應。對於給定的 prompt 和回應,它會產生相應的回報(由 RM 模型決定)。 SFT 模型會為每個 token 加入 KL 懲罰因子,以盡量避免 RM 模型的過度最佳化。

深入淺出,解析ChatGPT背後的工作原理

效能評估

因為模型是根據手動標註的輸入進行訓練的,所以評估的核心部分也基於手動輸入,即透過讓標註者對模型輸出的品質評分來進行。為避免訓練階段涉及的標註者的判斷過擬合,測試集使用了來自其它 OpenAI 客戶的 prompt,這些 prompt 未出現在訓練資料中。

此模型基於三個標準進行評估:

  • #幫助性:判斷模型遵循使用者指示以及推斷指示的能力。
  • 真實性:判斷模型在封閉領域任務中有產生虛構事實的傾向。
  • 無害性:標註者評估模型的輸出是否適當、是否包含歧視性內容。

該模型還針對傳統NLP 任務(如解答問題、閱讀理解和摘要)的零樣本學習的表現進行了評估,開發人員發現在其中一些任務上模型的表現比GPT-3 差一些,這是一個「一致性稅」( alignment tax) 的例子,其中基於人類回饋強化學習的一致性程序是以降低某些任務的表現為代價的。

這些資料集的效能回歸可以透過稱為預訓練混合的技巧大大減少:在透過梯度下降訓練PPO 模型期間,透過混合SFT 模型和PPO 模型的梯度來計算梯度更新。

方法的缺點

該方法的一個非常明顯的限制是,在將語言模型與人類意圖保持一致的過程中,用於fine-tuning模型的資料會受到各種錯綜複雜的主觀因素的影響,主要包括:

  • #產生demo 資料的人工標註者的偏好;
  • 設計研究和編寫標籤說明的研究人員;
  • 選擇由開發人員製作或由OpenAI 客戶提供的prompt;
  • 標註者偏差既包含在RM 模型訓練中,也包含在模型評估中。

ChatGPT 的作者也承認一個明顯的事實,即參與訓練過程的標註人員和研究人員可能並不能完全代表語言模型的所有潛在最終用戶。

除了這個明顯的「內生」限制之外,該方法還有的一些其它缺點和需要解決的問題:

  • 缺乏對照研究:報告的結果以 SFT 模型為基準衡量最終 PPO 模型的表現。這可能會產生誤導:如何知道這些改進是由於 RLHF?因此對照研究非常有必要,包括投入與用於訓練 RM 模型的標註工時數完全相同的時間,以創建具有高質量數據的更大的精選有監督調優的數據集。這樣就可以客觀地衡量 RLHF 方法與監督方法相比的性能改進。簡單來說,缺乏這樣的對照研究讓一個基本問題完全懸而未決:RLHF 在一致性語言模型方面真的做得很好嗎?
  • 比較資料缺乏基本事實:標註者通常會對模型輸出的排名持不同意見。技術上講,產生的風險是在沒有任何基本事實的情況下,為比較數據添加了很大的變異數。
  • 人類的偏好並非同質:RLHF 方法將人類的偏好視為同質和靜態的。假設所有人都有相同的價值觀,這明顯是不準確的,雖然有大量的公共價值觀,但在許多事務上人類還是存在著許多不同的認知。
  • RM 模型 prompt 穩定性測試:沒有實驗顯示 RM 模型在輸入 prompt 變化方面的敏感度。如果兩個 prompt 在句法上不同但在語意上是等價的,RM 模型能否在模型輸出的排名中顯示出顯著差異?即 prompt 的品質對 RM 有多重要?
  • 其它問題:在 RL 方法中,模型有時可以學會控制自己的 RM 模型以實現期望的結果,從而導致「過度最佳化的策略」。這可能會導致模型重新創建一些模式,因為某些未知的原因,這些模式使 RM 模型得分較高。 ChatGPT 透過使用 RM 函數中的 KL 懲罰項對此進行了修補。

相關閱讀:

  • #關於用於ChatGPT 的RLHF 方法的相關的論文:Training language models to follow instructions with human feedback(https://arxiv.org/pdf/2203.02155.pdf),它實際上詳細描述了一個名為InstructionGPT 的模型,OpenAI 稱之為ChatGPT 的「兄弟模型」。
  • Learning to summarize from Human Feedback (https://arxiv.org/pdf/2009.01325.pdf)描述了文字摘要上下文中的 RLHF。
  • PPO(https://arxiv.org/pdf/1707.06347.pdf):PPO 演算法論文。
  • Deep reinforcement learning from human preferences (https://arxiv.org/abs/1706.03741)
  • DeepMind 在Sparrow 中提出了OpenAI RLHF 的替代方案(https://arxiv.org/pdf/2209.14375.pdf) 和GopherCite (https://arxiv.org/abs/2203.11147)文件。
#

以上是深入淺出,解析ChatGPT背後的工作原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除