ChatGPT發展歷程、原理和技術架構
TAMER框架論文
引入人類標記者的主要目的是加快訓練速度。盡管強化學習技術在很多領域有突出表現,但是仍然存在著許多不足,例如訓練收斂速度慢,訓練成本高等特點。特別是現實世界中,許多任務的探索成本或數據獲取成本很高。如何加快訓練效率,是如今強化學習任務待解決的重要問題之一。
而TAMER則可以將人類標記者的知識,以獎勵信反饋的形式訓練Agent,加快其快速收斂。TAMER不需要標記者具有專業知識或編程技術,語料成本更低。通過TAMER+RL(強化學習),借助人類標記者的反饋,能夠增強從馬爾可夫決策過程 (MDP) 獎勵進行強化學習 (RL) 的過程。
TAMER架構在強化學習中的應用
具體實現上,人類標記者扮演對話的用戶和人工智能助手,提供對話樣本,讓模型生成一些回復,然后標記者會對回復選項打分排名,將更好的結果反饋回模型中,Agents同時從兩種反饋模式中學習——人類強化和馬爾可夫決策過程獎勵作為一個整合的系統,通過獎勵策略對模型進行微調并持續迭代。
在此基礎上,ChatGPT 可以比 GPT-3 更好的理解和完成人類語言或指令,模仿人類,提供連貫的有邏輯的文本信息的能力。
3.4 ChatGPT的訓練
ChatGPT的訓練過程分為以下三個階段:
第一階段:訓練監督策略模型
GPT 3.5本身很難理解人類不同類型指令中蘊含的不同意圖,也很難判斷生成內容是否是高質量的結果。為了讓GPT 3.5初步具備理解指令的意圖,首先會在數據集中隨機抽取問題,由人類標注人員,給出高質量答案,然后用這些人工標注好的數據來微調 GPT-3.5模型(獲得SFT模型, Supervised Fine-Tuning)。
此時的SFT模型在遵循指令/對話方面已經優于 GPT-3,但不一定符合人類偏好。
ChatGPT模型的訓練過程
第二階段:訓練獎勵模型(Reward Mode,RM)
這個階段的主要是通過人工標注訓練數據(約33K個數據),來訓練回報模型。在數據集中隨機抽取問題,使用第一階段生成的模型,對于每個問題,生成多個不同的回答。人類標注者對這些結果綜合考慮給出排名順序。這一過程類似于教練或老師輔導。
接下來,使用這個排序結果數據來訓練獎勵模型。對多個排序結果,兩兩組合,形成多個訓練數據對。RM模型接受一個輸入,給出評價回答質量的分數。這樣,對于一對訓練數據,調節參數使得高質量回答的打分比低質量的打分要高。
第三階段:采用PPO(Proximal Policy Optimization,近端策略優化)強化學習來優化策略。
PPO的核心思路在于將Policy Gradient中On-policy的訓練過程轉化為Off-policy,即將在線學習轉化為離線學習,這個轉化過程被稱之為Importance Sampling。這一階段利用第二階段訓練好的獎勵模型,靠獎勵打分來更新預訓練模型參數。在數據集中隨機抽取問題,使用PPO模型生成回答,并用上一階段訓練好的RM模型給出質量分數。把回報分數依次傳遞,由此產生策略梯度,通過強化學習的方式以更新PPO模型參數。
如果我們不斷重復第二和第三階段,通過迭代,會訓練出更高質量的ChatGPT模型。
4,ChatGPT的局限
只要用戶輸入問題,ChatGPT 就能給予回答,是否意味著我們不用再拿關鍵詞去喂 Google或百度,就能立即獲得想要的答案呢?
盡管ChatGPT表現出出色的上下文對話能力甚至編程能力,完成了大眾對人機對話機器人(ChatBot)從“人工智障”到“有趣”的印象改觀,我們也要看到,ChatGPT技術仍然有一些局限性,還在不斷的進步。
1)ChatGPT在其未經大量語料訓練的領域缺乏“人類常識”和引申能力,甚至會一本正經的“胡說八道”。ChatGPT在很多領域可以“創造答案”,但當用戶尋求正確答案時,ChatGPT也有可能給出有誤導的回答。例如讓ChatGPT做一道小學應用題,盡管它可以寫出一長串計算過程,但最后答案卻是錯誤的。
2)ChatGPT無法處理復雜冗長或者特別專業的語言結構。對于來自金融、自然科學或醫學等非常專業領域的問題,如果沒有進行足夠的語料“喂食”,ChatGPT可能無法生成適當的回答。
3)ChatGPT需要非常大量的算力(芯片)來支持其訓練和部署。拋開需要大量語料數據訓練模型不說,在目前,ChatGPT在應用時仍然需要大算力的服務器支持,而這些服務器的成本是普通用戶無法承受的,即便數十億個參數的模型也需要驚人數量的計算資源才能運行和訓練。,如果面向真實搜索引擎的數以億記的用戶請求,如采取目前通行的免費策略,任何企業都難以承受這一成本。因此對于普通大眾來說,還需等待更輕量型的模型或更高性價比的算力平臺。
4)ChatGPT還沒法在線的把新知識納入其中,而出現一些新知識就去重新預訓練GPT模型也是不現實的,無論是訓練時間或訓練成本,都是普通訓練者難以接受的。如果對于新知識采取在線訓練的模式,看上去可行且語料成本相對較低,但是很容易由于新數據的引入而導致對原有知識的災難性遺忘的問題。
5)ChatGPT仍然是黑盒模型。目前還未能對ChatGPT的內在算法邏輯進行分解,因此并不能保證ChatGPT不會產生攻擊甚至傷害用戶的表述。
當然,瑕不掩瑜,有工程師貼出了要求ChatGPT寫verilog代碼(芯片設計代碼)的對話。可以看出ChatGPT水平已經超出一些verilog初學者了。