玩不起RLHF?港科大開源高效對(duì)齊算法RAFT「木筏」,GPT擴(kuò)散模型都能用
開源大模型火爆,已有大小羊駝LLaMA、Vicuna等很多可選。
但這些羊駝們玩起來經(jīng)常沒有ChatGPT效果好,比如總說自己只是一個(gè)語言模型、沒有感情blabla,拒絕和用戶交朋友。
歸根結(jié)底,是這些模型沒有ChatGPT那么對(duì)齊(Alignment),也就是沒那么符合人類用語習(xí)慣和價(jià)值觀。
為此,港科大LMFlow團(tuán)隊(duì)提出全新對(duì)齊算法RAFT,輕松把伯克利Vicuna-7b模型定制成心理陪伴機(jī)器人,從此AI會(huì)盡力做你的朋友。
相較于OpenAI所用RLHF對(duì)齊算法的高門檻,RAFT(Reward rAnked Fine-Tuning)易于實(shí)現(xiàn),在訓(xùn)練過程中具有較高的穩(wěn)定性,并能取得更好的對(duì)齊效果。
并且任意生成模型都可以用此算法高效對(duì)齊,NLP/CV通用。
用在Stable Diffusion上,還能對(duì)齊生成圖片和提示詞,讓模型生成更加符合提示詞描述的圖片。
另外,團(tuán)隊(duì)特別提示RAFT的對(duì)齊訓(xùn)練過程中生成與訓(xùn)練過程完全解耦。
這樣就可以在生成過程中利用一些魔法提示詞 (magic prompts),讓最終對(duì)齊的模型不需要魔法提示詞也能得到好的效果。從而大大減少了提示詞編寫的難度!
可以說,RAFT為AIGC社區(qū)的研究者和工作者提供了一種新的可選的AI對(duì)齊策略。
RAFT模型對(duì)齊
OpenAI在ChatGPT前身Instruct論文中介紹了基于人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)算法。
首先利用人類標(biāo)注數(shù)據(jù)訓(xùn)練一個(gè)打分器 (reward model),然后通過強(qiáng)化學(xué)習(xí)算法(如PPO)來調(diào)節(jié)模型的行為,使得模型可以學(xué)習(xí)人類的反饋。
但PPO等強(qiáng)化學(xué)習(xí)算法高度依賴反向梯度計(jì)算,導(dǎo)致訓(xùn)練代價(jià)較高,并且由于強(qiáng)化學(xué)習(xí)通常具有較多的超參數(shù), 導(dǎo)致其訓(xùn)練過程具有較高的不穩(wěn)定性。
相比之下,RAFT算法通過使用獎(jiǎng)勵(lì)模型對(duì)大規(guī)模生成模型的生成樣本進(jìn)行排序,篩選得到符合用戶偏好和價(jià)值的樣本,并基于這些樣本微調(diào)一個(gè)對(duì)人類更友好的AI模型。
具體而言,RAFT分為三個(gè)核心步驟:
(1)數(shù)據(jù)收集:數(shù)據(jù)收集可以利用正在訓(xùn)練的生成模型作為生成器,也可以利用預(yù)訓(xùn)練模型(例如LLaMA、ChatGPT,甚至人類)和訓(xùn)練模型的混合模型作為生成器,有利于提升數(shù)據(jù)生成的多樣性和質(zhì)量。
(2)數(shù)據(jù)排序:一般在RLHF中我們都擁有一個(gè)與目標(biāo)需求對(duì)齊的分類器或者回歸器,從而篩選出最符合人類需求的樣本。
(3)模型微調(diào):利用最符合人類需求的樣本來實(shí)現(xiàn)模型的微調(diào),使得訓(xùn)練之后的模型能夠與人類需求相匹配。
在RAFT算法中,模型利用了更多次采樣 (當(dāng)下采樣后用以精調(diào)的樣本一定時(shí)),和更少次梯度計(jì)算(因?yàn)榇蟛糠值唾|(zhì)量數(shù)據(jù)被reward函數(shù)篩選掉了),讓模型更加穩(wěn)定和魯棒。
同時(shí),在某些情況下, 由于有監(jiān)督微調(diào)本身對(duì)于超參數(shù)敏感性更低, 有更穩(wěn)健的收斂性, 在相同reward情況下,RAFT可以擁有更好的困惑度 (perplexity, 對(duì)應(yīng)其生成多樣性和流暢性更好)。
完整算法如下所示:
定制垂直領(lǐng)域GPT
作者在多個(gè)任務(wù)上進(jìn)行了實(shí)驗(yàn),首先是正向影評(píng)補(bǔ)全。
作者實(shí)驗(yàn)發(fā)現(xiàn),給出一個(gè)電影評(píng)論的起始句,RAFT微調(diào)后的大模型可以輕松補(bǔ)齊電影評(píng)論,而且更加積極和流暢。
如下圖所示,LLaMA未經(jīng)調(diào)整的影評(píng)會(huì)以隨機(jī)概率輸出正面和負(fù)面的評(píng)論,RAFT和PPO都能夠?qū)⒃u(píng)論的態(tài)度傾向正面。
在基于Vicuna制作的一個(gè)心理陪伴機(jī)器人演示中,作者模擬了一個(gè)因?yàn)榭荚囀Ю那榈吐涞娜撕蜋C(jī)器人在聊天。
可以看到在使用RAFT進(jìn)行對(duì)齊之前,模型說自己沒有情感和感情,拒絕和人類交友。
但是在RAFT對(duì)齊之后,模型的共情能力明顯增強(qiáng),不斷地在安慰人類說,“雖然我是一個(gè)AI,但是我會(huì)盡力做你的朋友”。
增強(qiáng)Stable Diffusion
除了在語言模型上的對(duì)齊能力以外,作者還在擴(kuò)散模型上驗(yàn)證了文生圖的對(duì)齊能力,這是之前PPO算法無法做到的事情。
原始Stable Diffusion在256x256分辨率生成中效果不佳 ,但經(jīng)過RAFT微調(diào)之后不僅產(chǎn)生不錯(cuò)的效果,所需要的時(shí)間也僅為原版的20%。
對(duì)計(jì)算資源不足的AIGC愛好者來說無疑是一個(gè)福音。
除了提升256分辨率圖片的生成能力以外,RAFT還能夠?qū)R生成圖片和提示詞,讓模型生成更加符合提示詞描述的圖片。
如下圖所示,給出提示詞“莫奈風(fēng)格的貓”,原始的stable diffusion生成的圖片里,大多數(shù)沒有貓,而是生成了“莫奈風(fēng)格”的其他作品,這是由于“莫奈作品”中鮮有貓的身影,而stable diffusion沒有完全理解文本的含義。
而經(jīng)過RAFT微調(diào)后,stable diffusion認(rèn)識(shí)到“貓”的概念,所以每張圖片里都會(huì)有貓的身影。
RAFT來自香港科技大學(xué)統(tǒng)計(jì)和機(jī)器學(xué)習(xí)實(shí)驗(yàn)室團(tuán)隊(duì),也是開源LMFlow模型微調(diào)框架的一次重大升級(jí)。
LMFlow包括完整的訓(xùn)練流程、模型權(quán)重和測(cè)試工具。您可以使用它來構(gòu)建各種類型的語言模型,包括對(duì)話模型、問答模型和文本生成模型等。
自框架發(fā)布兩周以來,LMFlow團(tuán)隊(duì)仍在進(jìn)行著密集的迭代,并在4月9號(hào)正式上線了RAFT算法,補(bǔ)齊了AI對(duì)齊的訓(xùn)練流程。
LMFlow框架的逐步完善,將更加便利于科研人員和開發(fā)者在有限算力下微調(diào)和部署大模型。
論文:https://arxiv.org/abs/2304.06767
GitHub:?https://github.com/OptimalScale/LMFlow?
文檔: ?https://optimalscale.github.io/LMFlow/examples/raft.html?