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