ChatGPT技術報告
發表時間:2023-04-10
ChatGPT是一個由OpenAI開發的大型語言模型,是GPT(Generative Pretrained Transformer)系列模型的一部分。它使用了 Transformer 架構,并在大量的文本數據上進行了預訓練。預訓練的目的是使模型能夠從大量的文本中學習語言知識和模式,從而在接下來的任務中更好地進行語言生成。ChatGPT 的應用領域廣泛,包括聊天機器人,問答系統,文本生成,語音識別等。在聊天機器人領域,ChatGPT可以提供人類般的自然語言回答,并且在語法和語義方面的表現十分出色。
一、GPT發展歷程
Generative Pre-trained Transformer (GPT),是一種基于互聯網可用數據訓練的文本生成深度學習模型。它用于問答、文本摘要生成、機器翻譯、分類、代碼生成和對話 AI。
1.GPT-1
2018 年,GPT-1 誕生,這一年也是 NLP(自然語言處理)的預訓練模型元年。性能方面,GPT-1 有著一定的泛化能力,能夠用于和監督任務無關的 NLP 任務中。其常用任務包括:
◇ 自然語言推理:判斷兩個句子的關系(包含、矛盾、中立)
◇ 問答與常識推理:輸入文章及若干答案,輸出答案的準確率
◇ 語義相似度識別:判斷兩個句子語義是否相關
◇ 分類:判斷輸入文本是指定的哪個類別
雖然 GPT-1 在未經調試的任務上有一些效果,但其泛化能力遠低于經過微調的有監督任務,因此 GPT-1 只能算得上一個還算不錯的語言理解工具而非對話式 AI。
2.GPT-2
GPT-2 也于 2019 年如期而至,不過,GPT-2 并沒有對原有的網絡進行過多的結構創新與設計,只使用了更多的網絡參數與更大的數據集:最大模型共計 48 層,參數量達 15 億,學習目標則使用無監督預訓練模型做有監督任務。在性能方面,除了理解能力外,GPT-2 在生成方面第一次表現出了強大的天賦:閱讀摘要、聊天、續寫、編故事,甚至生成假新聞、釣魚郵件或在網上進行角色扮演通通不在話下。在“變得更大”之后,GPT-2 的確展現出了普適而強大的能力,并在多個特定的語言建模任務上實現了彼時的最佳性能。
3.GPT-3
之后,GPT-3 出現了,作為一個無監督模型,幾乎可以完成自然語言處理的絕大部分任務,例如面向問題的搜索、閱讀理解、語義推斷、機器翻譯、文章生成和自動問答等等。而且,該模型在諸多任務上表現卓越,例如在法語-英語和德語-英語機器翻譯任務上達到當前最佳水平,自動產生的文章幾乎讓人無法辨別出自人還是機器,更令人驚訝的是在兩位數的加減運算任務上達到幾乎 100% 的正確率,甚至還可以依據任務描述自動生成代碼。一個無監督模型功能多效果好,似乎讓人們看到了通用人工智能的希望,這就是 GPT-3 影響如此之大的主要原因。
InstructGPT 的工作原理是開發人員通過結合監督學習+從人類反饋中獲得的強化學習。來提高 GPT-3 的輸出質量。在這種學習中,人類對模型的潛在輸出進行排序;強化學習算法則對產生類似于高級輸出材料的模型進行獎勵。開發人員將提示分為三個部分,并以不同的方式為每個部分創建響應:人類作家會對第一組提示做出響應。開發人員微調了一個經過訓練的 GPT-3 ,將它變成 InstructGPT 以生成每個提示的現有響應。
下一步是訓練一個模型,使其對更好的響應做出更高的獎勵。對于第二組提示,經過優化的模型會生成多個響應。人工評分者會對每個回復進行排名。在給出一個提示和兩個響應后,一個獎勵模型(另一個預先訓練的 GPT-3)學會了為評分高的響應計算更高的獎勵,為評分低的回答計算更低的獎勵。
開發人員使用第三組提示和強化學習方法近端策略優化(Proximal Policy Optimization, PPO)進一步微調了語言模型。給出提示后,語言模型會生成響應,而獎勵模型會給予相應獎勵。PPO 使用獎勵來更新語言模型。
二、ChatGPT的技術原理
總體來說,Chatgpt 和 InstructGPT 一樣,是使用 RLHF(從人類反饋中強化學習)訓練的。不同之處在于數據是如何設置用于訓練(以及收集)的。
ChatGPT是一個大型語言模型,由OpenAI訓練,具有高效的語言處理能力。它的底層原理主要包括三個方面:Transformer架構、自注意力機制和預訓練。
(1) Transformer架構:Transformer是一種用于處理序列數據(如文本)的神經網絡架構,是在自注意力機制的基礎上構建的。編碼器和解碼器是它的兩個主要組成部分,分別用于處理輸入數據和生成輸出數據。
(2) 自注意力機制:自注意力機制是Transformer架構的核心,它通過編碼輸入單元并計算每個輸入單元與每個輸出單元的相關性,來實現對輸入數據的分析。
(3) 預訓練:預訓練是一個在大量文本數據上訓練語言模型的過程。通過預測文本中下一個詞語的概率,模型學習語言的語法、語義和模式。預訓練后的模型可以在新的數據上獲得更好的表現。
ChatGPT的訓練過程分為以下三個階段:
第一階段:訓練監督策略模型
GPT3.5本身很難理解人類不同類型指令中蘊含的不同意圖,也很難判斷生成內容是否是高質量的結果。為了讓GPT3.5初步具備理解指令的意圖,首先會在數據集中隨機抽取問題,由人類標注人員,給出高質量答案,然后用這些人工標注好的數據來微調GPT-3.5模型(獲得SFT模型,Supervised Fine-Tuning) 。此時的SFT模型在遵循指令/對話方面已經優于GPT-3,但不一定符合人類偏好。
第二階段:訓練獎勵模型(Reward Mode,RM)
這個階段的主要是通過人工標注訓練數據(約33K個數據),來訓練回報模型。在數據集中隨機抽取問題,使用第一階段生成的模型,對于每個問題,生成多個不同的回答。人類標注者對這些結果綜合考慮給出排名順序。這一過程類似于教練或老師輔導。
接下來,使用這個排序結果數據來訓練獎勵模型。對多個排序結果,兩兩組合,形成多個訓練數據對RM模型接受一個輸入,給出評價回答質量的分數。這樣,對于一對訓練數據,調節參數使得高質量回答的打分比低質量的打分要高。
第三階段:采用PPO(Proximal Policy Optimization,近端策略優化)強化學習來優化策略。
PPO的核心思路在于將Policy Gradient中On-policy的訓練過程轉化為Off-policy,即將在線學習轉化為離線學習,這個轉化過程被稱之為lmportance Sampling。這一階段利用第二階段訓練好的獎勵模型,靠獎勵打分來更新預訓練模型參數。在數據集中隨機抽取問題,使用PPO模型生成回答,并用上一階段訓練好的RM模型給出質量分數。把回報分數依次傳遞,由此產生策略梯度,通過強化學習的方式以更新PPO模型參數。