本文介紹了支持 ChatGPT 的機器學習模型的概況,文章將從大型語言模型的介紹開始,深入探討用來訓練 GPT-3 的革命性自我注意機制,然后深入研究由人類反饋的強化學習機制這項讓 ChatGPT 與眾不同的新技術。
大型語言模型
ChatGPT 是一類被稱為大型語言模型(LLM)的機器學習自然語言處理模型的延伸。LLM 消化大量文本數據并推斷文本中不同單詞之間的關系。我們看到,隨著計算能力的進步,這些模型在過去幾年中得到了長足發展。隨著輸入數據集和參數空間大小的增長,LLM 的能力也會不斷提升。
語言模型最基本的訓練過程涉及預測單詞序列中的單詞這一操作。最常見的操作類型是對下一 token 的預測以及帶掩碼機制的語言建模。
上圖是本文作者生成的下一 token 預測和帶掩碼機制的語言建模的一般示例。
在這種通常通過長短期記憶(LSTM)模型部署的基本排序技術中,模型使用給定周圍上下文時統計上概率最高的詞來填充空白。這種順序建模結構有兩大局限。
該模型無法給有關聯的一些詞賦予比其他詞更高的權重。在上面的例子中,雖然“reading”可能最常與“hates”聯系在一起,但在數據庫中,“Jacob”可能是一個狂熱的讀者,因此模型應該給予“Jacob”比“reading”更多的權重,并選擇“love”'而不是'hates'。
輸入數據是獨立和順序處理的,而不是作為整個語料庫的一部分來處理的。這意味著當 LSTM 進行訓練時,上下文窗口是固定的,僅擴展到序列中單個輸入的幾步之外。這限制了單詞之間關系的復雜性和可以導出的含義。
針對這個問題,2017 年谷歌大腦的一個團隊引入了 Transformers。與 LSTM 不同,Transformers 可以同時處理所有輸入數據。該模型基于自注意力機制,可以根據語言序列的任何位置為輸入數據的不同部分賦予不同的權重。此特性大大改善了向 LLM 中注入意義的能力,并支持處理更大的數據集。
GPT 和自注意力機制
2018 年,OpenAI 發布了 Generative Pre-training Transformer(GPT)模型的第一個版本 GPT-1。這一模型在 2019 年繼續發展到了 GPT-2,2020 年發展到了 GPT-3,并在 2022 年發展出了 InstructGPT 和 ChatGPT 兩個擴展。在將人類反饋集成到系統之前,GPT 模型進化的最大進步主要是由計算效率的提升推動的,這種提升使得 GPT-3 能夠接受比 GPT-2 多得多的數據來做訓練,從而賦予它更多樣化的知識庫和執行更廣泛任務的能力。
GPT-2(左)和 GPT-3(右)的對比。
所有 GPT 模型都利用了 Transformer 架構,這意味著它們有一個編碼器來處理輸入序列,還有一個解碼器來生成輸出序列。編碼器和解碼器都有一個多頭自注意力機制,允許模型對序列的不同部分進行不同的加權以推斷文本含義和上下文。此外,編碼器利用掩碼語言建模來理解單詞之間的關系,并生成更易于理解的響應。
驅動 GPT 的自注意力機制具體來說,是將 token(文本片段,可以是單詞、句子或其他文本分組)轉換為表示 token 在輸入序列中的重要性的向量。為此,模型需要
為輸入序列中的每個 token 創建查詢、鍵和值向量。
取兩個向量的點積來計算第一步中的查詢向量與其他每一個 token 的鍵向量之間的相似度。
將步驟 2 的輸出輸入 softmax 函數來生成歸一化權重。
將步驟 3 中生成的權重乘以每個 token 的值向量,從而生成一個最終向量,表示 token 在序列中的重要性。
GPT 使用的“多頭”注意力機制是自注意力機制的進化。模型不會只執行上述 1 到 4 步驟一次,而是并行地對這些步驟多次迭代,每次都生成查詢、鍵和值向量的新的線性投影。這種方式擴展了自注意力機制,讓該模型能夠掌握輸入數據中的子含義和更復雜的關系。
作者生成的 ChatGPT 對話的截圖。
盡管 GPT-3 在自然語言處理方面取得了顯著進步,但它欠缺足夠的符合用戶意圖的能力。例如,GPT-3 可能生成的輸出
缺乏幫助,意思是說輸出不遵循用戶的明確指示。
包含幻覺,指的是不存在或不正確的事實。
缺乏可解釋性,使人類難以理解模型是如何得出特定決策或預測的。
包括有毒或有偏見的內容,指的是有害或令人反感,并傳播錯誤信息的內容。
ChatGPT 中引入了創新的訓練方法,以解決標準 LLM 的一些固有問題。
ChatGPT
ChatGPT 是 InstructGPT 的衍生產品,它引入了一種新穎的方法,將人類反饋納入訓練過程,以使模型輸出與用戶意圖更好地保持一致。OpenAI 在 2022 年發布的論文《訓練語言模型遵循帶有人類反饋的指令》對人類反饋強化學習(RLHF)機制做了深入描述,下文對此做了簡要總結。
第一步:監督微調(SFT)模型
第一項開發工作是通過 OpenAI 招募的 40 家承包商創建的監督訓練數據集來微調 GPT-3 模型,在這一數據集中每個輸入都有已知輸出,供模型學習。輸入,或者叫提示,是從實際用戶輸入到 Open API 的信息中收集的。然后,標注員對提示做出適當的回應,從而為每個輸入創建一個已知的輸出。接下來 OpenAI 使用這個新的監督數據集對 GPT-3 模型進行調整,以創建 GPT-3.5,也稱為 SFT 模型。
為了最大化提示數據集中的多樣性,任何給定的用戶 ID 只能發出 200 個提示,數據集還刪除了所有共享長公共前綴的提示。最后,數據集刪除了所有包含個人身份信息(PII)的提示。
在匯總來自 OpenAI API 的提示后,標注人員還被要求創建一些樣本提示,以填充那些真實樣本數據很少的類別。數據集感興趣的類別包括:
普通提示:任意問題。
Few-shot 提示:包含多個查詢 / 響應對的指令。
基于用戶的提示:對應 OpenAI API 請求的特定用例。
在生成響應時,標注者被要求盡可能推斷用戶指令的具體內容。本文介紹了提示請求信息的三種主要方式。
Direct:“告訴我關于……的信息”
Few-shot:基于這兩個故事的例子,寫另一個關于同一主題的故事。
Continuation:給定一個故事的開頭,完成這個故事。
來自 OpenAI API 的提示匯編和標注人員手寫的提示一共產生了 13,000 個輸入 / 輸出樣本,用于監督模型訓練。
圖(左)是從訓練語言模型插入以遵循人類反饋的指令。上圖來自 OpenAI 在 2022 的論文:https://arxiv.org/pdf/2203.02155.pdf。圖(右)附加的上下文是作者添加的。
第二步:獎勵模型
在步驟 1 中訓練 SFT 模型后,該模型會對用戶提示生成更一致的響應。下一個改進是訓練一個獎勵模型,其中模型輸入是一系列提示和響應,輸出是一個縮放值,稱為獎勵(reward)。獎勵模型用來做強化學習,在強化學習中模型學習如何生成最大化其獎勵的輸出(參見步驟 3)。
為了訓練獎勵模型,每個輸入提示會為標注員提供 4 到 9 個 SFT 模型輸出。他們被要求將這些輸出從最好到最差進行排名,創建輸出排名組合,如下:
響應排名組合示例。
將模型中的每個組合作為單獨的數據點包括在模型內會導致過擬合(無法推斷超出可見數據的范圍)。為了解決這個問題,該模型是利用每組排名作為單個批處理數據點構建的。
圖(左)是從訓練語言模型插入以遵循人類反饋的指令。上圖來自 OpenAI 在 2022 的論文:https://arxiv.org/pdf/2203.02155.pdf。圖(右)附加的上下文是作者添加的。
第三步:強化學習模型
在最后階段,模型會收到隨機提示并返回響應。響應是使用模型在步驟 2 中學習的“策略”生成的。該策略代表了機器已經學會使用的用來實現其目標的策略,這里說的目標就是最大化模型獲得的獎勵。基于在步驟 2 中開發的獎勵模型,接下來要為提示和響應確定一個縮放器獎勵值。然后獎勵會反饋到模型中以改進策略。
2017 年,Schulman 等人引入了近端策略優化(PPO),這種方法用于在生成每個響應時更新模型的策略。PPO 包含來自 SFT 模型的 per-token Kullback–Leibler(KL)懲罰。KL 散度衡量兩個分布函數的相似性,并對極端距離進行懲罰。在這種情況下,使用 KL 懲罰會減少響應與步驟 1 中訓練的 SFT 模型輸出之間的距離,以避免過度優化獎勵模型,避免與人類意圖數據集的偏差太大。
圖(左)是從訓練語言模型插入以遵循人類反饋的指令。上圖來自 OpenAI 在 2022 的論文:https://arxiv.org/pdf/2203.02155.pdf。圖(右)附加的上下文是作者添加的。
該過程的第 2 步和第 3 步可以重復進行,但在實踐中并沒有普遍這樣做。
作者生成的 ChatGPT 對話的截圖。
模型評估
模型的評估過程是通過在訓練期間留出模型未見過的測試集來執行的。OpenAI 在測試集上進行了一系列評估,以確定該模型是否比其前身 GPT-3 表現更出色。
有用性:模型推斷和遵循用戶指令的能力。在 85±3% 的時間里,標注員更喜歡 InstructGPT 而非 GPT-3 的輸出。
真實性:模型產生幻覺的傾向。當使用 Truthful QA 數據集進行評估時,PPO 模型產生的輸出顯示真實性和信息量略有增加。
無害性:模型避免不當、貶損和詆毀內容的能力。OpenAI 使用 RealToxicityPrompts 數據集測試了模型的無害性。測試在三種條件下進行:
指示模型提供有禮貌的響應:結果毒性反應顯著減少。
指示模型提供響應,沒有任何關于禮貌的設置:毒性沒有顯著變化。
指示模型提供毒性響應:模型給出的響應實際上比 GPT-3 模型的毒性大得多。
要了解關于創建 ChatGPT 和 InstructGPT 所用方法的更多信息,請閱讀 OpenAI 在 2022 年發表的原始論文:https://arxiv.org/pdf/2203.02155.pdf。
-
模型
+關注
關注
1文章
3226瀏覽量
48807 -
機器學習
+關注
關注
66文章
8406瀏覽量
132561 -
ChatGPT
+關注
關注
29文章
1558瀏覽量
7595
原文標題:深入探索ChatGPT機器人背后的模型機制
文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論