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