ChatGPT/GPT的原理
1.NLP
NLP/NLU領域已知侷限包括對重複文字、對高度專業的主題的誤解,以及對上下文短語的誤解。
對於人類或AI,通常需接受多年的訓練才能正常對話。
NLP類模型不僅要理解單詞的含義,還要理解如何造句和給出上下文有意義的回答,甚至使用合適的俚語和專業詞彙。
NLP技術的應用領域
本質上,作為ChatGPT基礎的GPT-3或GPT-3.5 是一個超大的統計語言模型或順序文字預測模型。
2. GPT v.s. BERT
與BERT模型類似,ChatGPT或GPT-3.5都是根據輸入語句,根據語言/語料機率來自動生成回答的每一個字(詞語)。
從數學或從機器學習的角度來看,語言模型是對詞語序列的機率相關性分佈的建模,即利用已經說過的語句(語句可以視為數學中的向量)作為輸入條件,預測下一個時刻不同語句甚至語言集合出現的機率分佈。
ChatGPT 使用來自人類反饋的強化學習進行訓練,這種方法透過人類干預來增強機器學習以獲得更好的效果。
在訓練過程中,人類訓練者扮演著使用者和人工智慧助手的角色,並透過近端策略最佳化演算法進行微調。
由於ChatGPT更強的效能和海量引數,它包含了更多的主題的資料,能夠處理更多小眾主題。
ChatGPT現在可以進一步處理回答問題、撰寫文章、文字摘要、語言翻譯和生成計算機程式碼等任務。
ChatGPT的訓練
ChatGPT的訓練過程分為以下三個階段:
第一階段:訓練監督策略模型
GPT 3.5本身很難理解人類不同型別指令中蘊含的不同意圖,也很難判斷生成內容是否是高質量的結果。
為了讓GPT 3.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,即將線上學習轉化為離線學習,這個轉化過程被稱之為Importance Sampling。
這一階段利用第二階段訓練好的獎勵模型,靠獎勵打分來更新預訓練模型引數。在資料集中隨機抽取問題,使用PPO模型生成回答,並用上一階段訓練好的RM模型給出質量分數。
把回報分數依次傳遞,由此產生策略梯度,透過強化學習的方式以更新PPO模型引數。
如果我們不斷重複第二和第三階段,透過迭代,會訓練出更高質量的ChatGPT模型。
ChatGPT的侷限
- ChatGPT還沒法線上的把新知識納入其中,而出現一些新知識就去重新預訓練GPT模型也是不現實的,無論是訓練時間或訓練成本,都是普通訓練者難以接受的。如果對於新知識採取線上訓練的模式,看上去可行且語料成本相對較低,但是很容易由於新資料的引入而導致對原有知識的災難性遺忘的問題。
- ChatGPT仍然是黑盒模型。目前還未能對ChatGPT的內在演算法邏輯進行分解,因此並不能保證ChatGPT不會產生攻擊甚至傷害使用者的表述。