這篇對賦能ChatGPT的機器學習模型的簡要介紹,將從大型語言模型(LLM)開始,進而探討使GPT-3得到訓練的革命性的自注意力機制 (self-attention mechanism),之后研究人類反饋強化學習 (Reinforcement Learning From Human Feedback, RLHF)——使ChatGPT與眾不同的創(chuàng)新技術。
ChatGPT是一類被稱為大型語言模型 (LLM) 的機器學習自然語言處理模型的外推。LLM消化大量的文本數(shù)據(jù)并據(jù)此推斷出文本中單詞之間的關系。過去幾年,計算能力的進步肉眼可見,這些模型也得到了發(fā)展。隨著輸入數(shù)據(jù)集和參數(shù)空間大小的增加,LLM的性能也在增強。
語言模型最基本的訓練涉及預測單詞序列中的單詞。最常見的方法是下個標記預測 (next-token prediction) 和掩碼語言建模 (masked-language-modeling, MLM)。
圖1:作者對下個標記預測和掩碼語言建模(MLM)的舉例
通常利用長短期記憶 (LSTM) 模型進行序列建模,該模型根據(jù)給定上下文,用統(tǒng)計意義上最可能的詞來填補空白。這種序列模型有兩個主要限制:
1. 該模型無法賦予某些詞更高的權重。在上面的例子中,雖然“閱讀”可能最常與“討厭”聯(lián)系在一起,但在數(shù)據(jù)庫中,“雅各布”可能是一名狂熱的讀者,那么模型就應該給“雅各布”比“閱讀”更多的權重,選擇“喜愛”而不是“討厭”。
2. 輸入的數(shù)據(jù)是一步一步連續(xù)處理的,而不是通過分析整體處理的。這意味著訓練LSTM模型時,上下文窗口是固定不變的,僅涵蓋單個輸入,依次分步處理。這限制了詞語間關系的復雜性和由此可推導出的內涵。
針對這個問題,2017年,谷歌大腦的一個團隊引入了Transformer模型。與LSTM不同,它能同時處理所有輸入數(shù)據(jù)。它采用自注意力機制,還可以在語句的任何位置針對輸入數(shù)據(jù)的不同片段分配不同的注意力分數(shù)。這一特點使它為LLM注入靈魂,使之能捕捉更豐富的內涵,處理更大的數(shù)據(jù)集。
生成式預訓練Transformer (GPT) 模型于2018年首次由OpenAI推出,名為GPT-1。這套模型迭代進化出2019年的GPT-2、2020年的GPT-3、最近2022年的InstructGPT和ChatGPT。在將人類反饋集成到系統(tǒng)的階段之前,GPT模型進化的最大的進步是由計算效率方面的成就推動的。計算效率的提升,使GPT-3能接受比GPT-2多得多的數(shù)據(jù)訓練,使其擁有更多樣化的知識庫,和執(zhí)行更廣泛任務的能力。
圖2: 作者對GPT-2(左)和GPT-3(右)的比較
所有GPT模型都利用了Transformer架構,這意味著它們有一個編碼器來處理輸入序列,一個解碼器來生成輸出序列。編碼器和解碼器都有一個多頭自注意力機制,該機制允許模型對序列的不同部分進行不同的加權,以推斷含義和上下文。此外,編碼器利用掩碼語言建模(MLM) 來理解單詞之間的關系,并產生更易理解的反應。
驅動GPT的自注意力機制通過將標記(可以是單詞、句子或其他文本分組的文本片段)轉換為向量來工作,向量代表標記在輸入序列中的重要性。該模型分四步做到這一點:
1. 為輸入序列中的每個標記創(chuàng)建三個向量:“查詢”、“鍵”和“值”。
2. 通過取兩個向量的點積來計算步驟1中的“查詢”向量與其他每個標記的“鍵”向量之間的相似性。
3. 通過將第2步的輸出傳入softmax函數(shù)來生成歸一化的權重。
4. 通過將步驟3中生成的權重乘以每個標記的“值”向量,生成一個最終向量,代表標記在序列中的重要性。
GPT使用的“多頭”注意力機制,是自注意力機制的進化版。該模型不是一次性執(zhí)行步驟1到4,而是多次迭代此機制:每次 為“查詢”、“鍵”和“值” 生成新的向量投影。通過以這種方式擴展自注意力,該模型能夠掌握輸入詞語數(shù)據(jù)的潛在含義更復雜的關系。
圖3: 作者從ChatGPT生成的截圖。
盡管GPT-3在自然語言處理方面取得顯著進步,但它在符合用戶意圖方面是能力有限的。例如,GPT-3可能會產生有以下性質的輸出:
ChatGPT中引入了新穎的訓練方法,以解決標準版LLM的一些固有問題。
ChatGPT是InstructGPT的衍生版,它引入了一種新的方法,將人類反饋納入訓練過程,以更好地使模型輸出與用戶意圖保持一致。OpenAI 2022年的論文《訓練語言模型以遵循人類反饋的指令》(Training language models to follow instructions with human feedback) 深入描述了人類反饋強化學習 (RLHF) ,下文將簡述。
第一步開發(fā)涉及通過雇用40名合同工創(chuàng)建監(jiān)督訓練數(shù)據(jù)集來微調GPT-3模型,其中輸入具有供模型學習的已知輸出。輸入或提示是從實際用戶輸入到開放API中收集的。然后,標注員根據(jù)提示寫出適當?shù)幕貜?,從而為每個輸入創(chuàng)建已知輸出。然后,GPT-3模型使用這個新監(jiān)督數(shù)據(jù)集進行微調,以創(chuàng)建GPT-3.5,也稱為SFT模型。
為了把提示數(shù)據(jù)集的多樣性最大化,任何給定的用戶ID只能有200條提示入圍,任何共有較長相同前綴的提示也被刪除。最后,所有含有個人身份信息 (PII) 的提示都被刪除。
在匯總OpenAI API的提示信息后,標注員也被要求為那些有極少實際樣本數(shù)據(jù)的幾類提示手動創(chuàng)建樣本提示,使提示數(shù)據(jù)集更豐富。包括:
在生成回應時,標注員被要求盡力推斷出用戶的指令是什么。論文描述了提示請求信息的主要三種方式:
1. 直接式:'告訴我關于......'
2. 小樣本式:給出兩個關于某個主題的故事的例子,然后寫一個關于同一主題的故事。
3. 續(xù)寫式:給出一個故事的開頭,然后完成它。
把OpenAI API的提示和標注員手寫的提示匯編在一起,共產生了13,000個輸入/輸出樣本,用于訓練監(jiān)督模型。
圖4: 圖片(左)來自OpenAI發(fā)表于2022年的論文Training language models to follow instructions with human feedback。紅字(右)為作者添加的額外內容。
在第一步中訓練完SFT模型后,該模型會對用戶提示產生更符合要求的響應。下一步的改進是通過訓練獎勵模型來實現(xiàn)的,該模型的輸入是一系列提示和響應,輸出是一個名為“獎勵”的標量。獎勵模型的訓練是為了利用強化學習(Reinforcement Learning),讓模型學習如何產生輸出以最大化其獎勵值(見第三步)。
為了訓練獎勵模型,標注員會看到單個輸入提示的4至9個SFT模型輸出。他們被要求將這些輸出從最佳到最差進行排名,并創(chuàng)建輸出排名組合,如下所示。
圖5: 作者對響應排名組合的舉例。
將每個組合作為一個獨立的數(shù)據(jù)點納入模型會導致過度擬合(無法推廣到未見過的數(shù)據(jù))。為解決這個問題,模型將每組排名作為一個批次數(shù)據(jù)點。
圖6: 圖片(左)來自OpenAI發(fā)表于2022年的論文Training language models to follow instructions with human feedback。紅字(右)為作者添加的額外內容。
在最后階段,給模型提供一個隨機提示并返回一個響應。該響應是使用模型在第二步學到的“策略”所產生的。該策略代表機器學習的目標,即最大化它的獎勵?;诘诙介_發(fā)的獎勵模型會為提示和響應對算出一個獎勵值。獎勵會反饋到模型中,以升級策略。
2017年,Schulman等人介紹了近端策略優(yōu)化(PPO),該方法用于更新模型的策略,每生成一個響應就會進行更新。PPO納入了SFT模型的每個標記的Kullback-Leibler(KL)懲罰。KL散度測量兩個分布函數(shù)之間的相似度,并懲罰極端距離。在這種情況下,使用KL懲罰以限制第二步獎勵模型產生的響應與第一步中訓練的SFT模型輸出之間的距離,以避免過度優(yōu)化獎勵模型以及過度偏離人類意圖數(shù)據(jù)集。
Figure 7: 圖片(左)來自OpenAI發(fā)表于2022年的論文Training language models to follow instructions with human feedback。紅字(右)為作者添加的額外內容。
該過程的第二和第三步可重復迭代,但在實踐中還沒有廣泛地這樣做。
Figure 8: 作者從ChatGPT生成的截圖。
對模型的評估是用模型在訓練期間從未見過的測試數(shù)據(jù)集來執(zhí)行的。用該測試集進行一系列評估,以確定該模型是否比其前身GPT-3更能產生符合要求的回復。
幫助性:模型推理和遵循用戶指令的能力。標注員在85±3%的時間里相比GPT-3更喜歡InstructGPT的輸出。
真實性:控制模型出現(xiàn)虛幻內容的傾向。使用TruthfulQA數(shù)據(jù)集進行評估時,PPO模型產生的輸出顯示了真實性和信息量略有增加。
無害性:模型避免不適當?shù)?、貶低的和詆毀的內容的能力。使用RealToxicityPrompts數(shù)據(jù)集測試了無害性。該測試在三種狀態(tài)下進行:
1. 模型被指示提供友好尊重的回復:導致有毒回復顯著減少。
2. 模型被指示提供回復,沒有任何關于尊重的設置:有害性沒有明顯變化。
3. 模型被指示提供有毒回復:回復實際上比GPT-3模型的更加有毒。
關于創(chuàng)建ChatGPT和InstructGPT所用方法的更多信息,請閱讀OpenAI于2022年發(fā)表的原始論文Training language models to follow instructions with human feedback,
https://arxiv.org/pdf/2203.02155.pdf。
Figure 9: 作者從ChatGPT生成的截圖。
祝學習愉快!
1. https://openai.com/blog/chatgpt/
2. https://arxiv.org/pdf/2203.02155.pdf
3.https://medium.com/r/?url=https%3A%2F%2Fdeepai.org%2Fmachine-learning-glossary-and-terms%2Fsoftmax-layer
4.https://www.assemblyai.com/blog/how-chatgpt-actually-works/
5.https://medium.com/r/url=https%3A%2F%2Ftowardsdatascience.com%2Fproximal-policy-optimization-ppo-explained-abed1952457b
原文鏈接:
https://towardsdatascience.com/how-chatgpt-works-the-models-behind-the-bot-1ce5fca96286
聯(lián)系客服