在ChatGPT發(fā)布之初,我同許多AI從業(yè)者一樣對這個(gè)被媒體號稱要取代搜索引擎的聊天機(jī)器人產(chǎn)品是持懷疑態(tài)度的,但在深度體驗(yàn)之后,發(fā)現(xiàn)ChatGPT跟以往曇花一現(xiàn)的產(chǎn)品并不一樣,它對于回答成熟的知識確實(shí)已經(jīng)大有替代搜索引擎的能力,而其對上下文層層遞進(jìn)的連續(xù)交互能力簡直顛覆了人們對大語言模型能力的想象。
盡管OpenAI沒有公布ChatGPT的論文和相關(guān)的訓(xùn)練和技術(shù)細(xì)節(jié),但我們可以從其兄弟模型InstructGPT以及網(wǎng)絡(luò)上公開的碎片化的情報(bào)中尋找到實(shí)現(xiàn)ChatGPT的蛛絲馬跡。根據(jù)OpenAI所言,ChatGPT相對于InstructGPT的主要改進(jìn)在于收集標(biāo)注數(shù)據(jù)的方法上,而整個(gè)訓(xùn)練過程沒有什么區(qū)別,因此,可以推測ChatGPT的訓(xùn)練過程應(yīng)該與InstructGPT的類似,大體上可分為3步:
1.預(yù)訓(xùn)練一個(gè)超大的語言模型;
2.收集人工打分?jǐn)?shù)據(jù),訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型;
3.使用強(qiáng)化學(xué)習(xí)方法微調(diào)優(yōu)化語言模型。
預(yù)訓(xùn)練一個(gè)超大的語言模型
從GPT/Bert開始,預(yù)訓(xùn)練語言模型基本遵循這樣一個(gè)兩段式范式,即通過自監(jiān)督方式來預(yù)訓(xùn)練大模型。然后再在此基礎(chǔ)上,在下游具體任務(wù)上進(jìn)行fine-tuning(微調(diào))。其中GPT因?yàn)橛玫氖菃蜗騎ransformer解碼器,因此偏向于自然語言生成,而Bert用的是雙向Transformer編碼器,因此偏向于自然語言理解。因?yàn)锽ert的及時(shí)開源和Google在業(yè)界的強(qiáng)大影響力,外加業(yè)務(wù)導(dǎo)向的AI應(yīng)用公司寄希望的快速落地能力,那個(gè)時(shí)候絕大多數(shù)的從業(yè)者都更加看好Bert,哪怕是openai發(fā)布的GPT2也是反響平平,這也為后來的落后埋下了伏筆。
這種兩段式的語言模型,其Capability(能力)是單一的,即翻譯模型只能翻譯,填空模型只能填空,摘要模型只能做摘要等等,要在實(shí)際任務(wù)中使用,需要各自在各自的數(shù)據(jù)上做微調(diào)訓(xùn)練,這顯然很不智能,為了進(jìn)一步向類似人類思維的通用語言模型靠齊,GPT2開始引入更多的任務(wù)進(jìn)行預(yù)訓(xùn)練,這里的創(chuàng)新之處在于它通過自監(jiān)督的模型來做監(jiān)督學(xué)習(xí)的任務(wù)。經(jīng)過這樣訓(xùn)練的模型,能在沒有針對下游任務(wù)進(jìn)行訓(xùn)練的條件下,就在下游任務(wù)上有很好的表現(xiàn)。也就是說Capability有了較大的擴(kuò)展,但此時(shí)的Alignment(對齊)還相對較弱,實(shí)際應(yīng)用上還不能完全去除fine-tuning,算是為zero-shot leaning(零樣本學(xué)習(xí))奠定了基礎(chǔ)。為了解決Alignment問題,GPT3使用了更大的模型,更多的數(shù)據(jù),并優(yōu)化了in-context learning(上下文學(xué)習(xí))的訓(xùn)練方式,即在訓(xùn)練時(shí)去擬合接近人類語言的Prompt(提示),以指導(dǎo)模型它該做些什么,這進(jìn)一步提升了模型zero-shot learning的能力,總而言之,語言模型在朝著越來越大的方向發(fā)展。
圖1 不同參數(shù)規(guī)模語言模型zero-shot效果對比
正如上面GPT3論文中的對比圖所示,zero-shot極度依賴于大語言模型(LLM),可以說從GPT3開始的語言模型的發(fā)展,已經(jīng)與缺乏資源的普通人無關(guān)了,自然語言處理的發(fā)展已經(jīng)全面進(jìn)入了超大語言模型時(shí)代,但這并不影響我們?nèi)ダ斫夂徒梃b其思想。
ChatGPT也正是依賴于一個(gè)大規(guī)模的語言模型(LLM)來進(jìn)行冷啟動的,具體過程如圖2所示:
圖2 初始化預(yù)訓(xùn)練語言模型
顯然,由于參與初始模型微調(diào)的人工生成數(shù)據(jù)量很少,對于整個(gè)語言模型的訓(xùn)練數(shù)據(jù)而言是滄海一粟,因此初始化語言模型時(shí),這一步的微調(diào)對ChatGPT整體而言大概是可有可無的。
盡管經(jīng)過精心設(shè)計(jì)的LLM的Capability和Alignment均已達(dá)到非常好的水平,但是僅僅憑借預(yù)訓(xùn)練或加一些監(jiān)督文本微調(diào)得到的語言模型終究還是無法應(yīng)對人類所生活的真實(shí)語言環(huán)境的復(fù)雜性,這種模型在實(shí)際應(yīng)用中時(shí)長會暴露以下缺陷:
- 提供無效回答:沒有遵循用戶的明確指示,答非所問。
- 內(nèi)容胡編亂造:純粹根據(jù)文字概率分布虛構(gòu)出不合理的內(nèi)容。
- 缺乏可解釋性:人們很難理解模型是如何得出特定決策的,難以確信回答的準(zhǔn)確性。
- 內(nèi)容偏見有害:模型從數(shù)據(jù)中獲取偏見,導(dǎo)致不公平或不準(zhǔn)確的預(yù)測。
- 連續(xù)交互能力弱:長文本生成較弱,上下文無法做到連續(xù)。
訓(xùn)練人類偏好模型
為了進(jìn)一步增強(qiáng)語言模型的效果,人們試圖將強(qiáng)化學(xué)習(xí)引入到語言模型之中。但由于機(jī)器難以衡量自然語言輸出的質(zhì)量好壞,這個(gè)研究方向一直發(fā)展緩慢,并且不被專業(yè)人員看好。盡管DeepMind早就提出了RLHF(Reinforcement Learning with human feedback)的訓(xùn)練方法,但也一直沒有在實(shí)際產(chǎn)品中看見成效。OpenAI在InstructGPT中用一個(gè)小規(guī)模的GPT3模型通過RLHF微調(diào)后產(chǎn)生了比原始大GPT3更好的效果見證了RLHF的強(qiáng)大,隨后的ChatGPT真正將RLHF發(fā)揚(yáng)光大。
圖3 原始RL框架
回想一下原始的強(qiáng)化學(xué)習(xí)框架,Agent要基于環(huán)境給出的獎(jiǎng)勵(lì)信號來不斷優(yōu)化自身的策略。那么在我們的聊天機(jī)器人的場景下,顯然語言模型作為一個(gè)Agent,它基于用戶輸入上下文語境(Environment)來輸出文本(action)。那么由什么來定義這個(gè)獎(jiǎng)勵(lì)函數(shù)呢?正如前文所言,只有人才能夠評估輸出文本的好壞,那么就讓人來充當(dāng)這個(gè)獎(jiǎng)勵(lì)函數(shù),這就是所謂的human feedback。但是這個(gè)更新過程需要不斷進(jìn)行,顯然不能讓人一直在哪打分,那不妨就搞一個(gè)深度學(xué)習(xí)模型,去學(xué)習(xí)人類評估輸出質(zhì)量的過程,于是便有了獎(jiǎng)勵(lì)模型(Reward Model),如圖4所示。
圖4 獎(jiǎng)勵(lì)(偏好)模型訓(xùn)練框架
獎(jiǎng)勵(lì)模型實(shí)際上就是去學(xué)習(xí)人類的偏好,因此也被叫作偏好模型。他的基本目標(biāo)就是獲得一個(gè)打分模型,接收一系列的文本,并輸出一個(gè)標(biāo)量獎(jiǎng)勵(lì),這個(gè)獎(jiǎng)勵(lì)以數(shù)字的形式代表了人類對輸入輸出好壞的偏好。關(guān)鍵在于這個(gè)模型應(yīng)當(dāng)輸出一個(gè)標(biāo)量獎(jiǎng)勵(lì),這樣方可與現(xiàn)有的RL算法無縫對接。獎(jiǎng)勵(lì)模型基本上是基于其他的語言模型或者是通過Transformer從頭開始訓(xùn)練。
OpenAI使用用戶以往通過GPT API提交的prompt,然后使用初始語言模型來生成一系列的新文本作為提示生成對(prompt-generation pairs)。然后再由人類訓(xùn)練師來對初始LM生成的文本進(jìn)行排序。雖然我們最初的想法是讓人類直接給這些輸出進(jìn)行打分,但這在實(shí)踐中是很難做到的,人的不同打分標(biāo)準(zhǔn)容易導(dǎo)致這些分?jǐn)?shù)跟實(shí)際有所偏差,而排序同樣可以用來比較多個(gè)模型輸出的質(zhì)量,并且能夠創(chuàng)建一個(gè)更好的正則化數(shù)據(jù)集。有很多種方法用于對文本進(jìn)行排序,一種比較成功的方式是讓用戶比較語言模型基于同一個(gè)prompt輸出的不同文本,通過兩個(gè)模型的輸出比較,再使用如Elo rating system(Elo系統(tǒng))之類的方式來生成模型和輸出之間的相對排名,這樣就能將排名標(biāo)準(zhǔn)化為我們所需的標(biāo)量獎(jiǎng)勵(lì)信號。
至此,RLHF系統(tǒng)的兩個(gè)前置條件就達(dá)成了,接下來就是使用RL來進(jìn)一步微調(diào)語言模型了。
強(qiáng)化學(xué)習(xí)微調(diào)
盡管業(yè)界已經(jīng)近乎宣告強(qiáng)化學(xué)習(xí)不適用于語言模型,但仍舊有許多機(jī)構(gòu)和科研人員在探索強(qiáng)化學(xué)習(xí)微調(diào)全部或部分語言模型參數(shù)的可行性,OpenAI就是其中最具代表性的。ChatGPT使用的是OpenAI自己提出的成熟的SOTA強(qiáng)化學(xué)習(xí)模型PPO來進(jìn)行語言模型微調(diào)的,目前在語言模型上取得成功的RL算法也只有PPO,那么接下來就讓我們來看一下這個(gè)微調(diào)過程是如何被描述成一個(gè)RL問題的。
顯然,策略(Policy)是一個(gè)語言模型,它接受Prompt返回文本序列(或者只是文本上的概率分布)。策略的動作空間是語言模型詞匯表對應(yīng)的所有token(通常在50000左右量級),觀測空間則是所有可能輸入的token序列(于是狀態(tài)空間在詞匯表大小^輸入token大小的量級),獎(jiǎng)勵(lì)函數(shù)則由上述的偏好模型和策略轉(zhuǎn)移約束共同決定。于是整個(gè)過程大概是這樣的:
? 從訓(xùn)練集采樣一個(gè)prompt:;
? 從原始的語言模型產(chǎn)生一個(gè)文本序列,從當(dāng)前微調(diào)迭代的語言模型產(chǎn)生一個(gè)文本序列;
? 把當(dāng)前策略產(chǎn)生的文本輸入到偏好模型,得到一個(gè)標(biāo)量獎(jiǎng)勵(lì);
? 將文本與進(jìn)行對比,一般使用KL散度來計(jì)算它們之間的差異,這個(gè)作為一種變化約束,來防止模型生成能夠欺騙偏好模型卻胡言亂語的文本;
? 結(jié)合和就得到了用于RL更新的最終的獎(jiǎng)勵(lì)函數(shù):,不過OpenAI在訓(xùn)練InstructGPT時(shí),還在這個(gè)基礎(chǔ)上還添加了額外的在人類標(biāo)注集合上的預(yù)訓(xùn)練梯度;
? 接下來就是跟普通PPO一樣通過最大化當(dāng)前批次的回報(bào)來進(jìn)行在線更新。
圖5 強(qiáng)化學(xué)習(xí)微調(diào)框架
語言模型經(jīng)過PPO算法的不斷自我迭代,外加獎(jiǎng)勵(lì)函數(shù)的不斷人工糾偏,這個(gè)語言模型將如同AlphaGo那樣不斷完成進(jìn)行自我進(jìn)化,最終達(dá)到令人驚艷的效果。
總結(jié)
1?? ChatGPT向業(yè)界證明了GPT路線的優(yōu)越性。實(shí)際上從GPT3開始,GPT技術(shù)路線在通用人工智能上已經(jīng)成為一種演進(jìn)趨勢。
2?? ChatGPT以其卓越的表現(xiàn)將RLHF方法重新帶入到了研究人員的視野,接下來可能會在更多的場合發(fā)光發(fā)熱,比如將RLHF與圖像領(lǐng)域的Diffusion結(jié)合,或?qū)⑴鲎渤鲆庀氩坏降幕鸹ā?/p>
3?? RLHF在很大程度上解決了語言模型的對齊問題,使通用大模型走進(jìn)人們的生活成為可能,但由于嚴(yán)重依賴人工標(biāo)注者的偏好,這將影響到模型的公平性,或存在安全隱患。
參考文獻(xiàn)
[1] Paul Christiano, Jan Leike, Tom B. Brown et al.?Deep reinforcement learning from human preferences. arXiv preprint arXiv:1706.03741.
[2] Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida et al.Training language models to follow instructions with human feedback. arXiv preprint arXiv:2203.02155.
[3]《Illustrating Reinforcement Learning from Human Feedback (RLHF)》,https://huggingface.co/blog/rlhf.
[4] John Schulman, Filip Wolski, Prafulla Dhariwal, et al.?Proximal Policy Optimization Algorithms. arXiv preprint arXiv:1707.06347.
作者:豐陽露 魯銀冰
單位:中國移動智慧家庭運(yùn)營中心安全產(chǎn)品部
來源:移動Labs