上一章我們主要嘮了RLHF訓練相關的方案,這一章我們主要針對RLHF的樣本構建階段,引入機器標註來降低人工標註的成本。主要介紹兩個方案:RLAIF,和IBM的SALMON。
RLAIF
- RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback
RLAIF給出的方案是完全使用大模型來進行偏好樣本的標註,論文主要測試了摘要任務,對話的無害性和有用性上,RLAIF能獲得和RLHFg相似的效果。我們在後期也採用了機器標註,因為真的不標不知道一標嚇一跳,想獲得足夠用來訓練RL的高質量標註樣本的成本大的嚇人......
既然是用大模型來標註偏好樣本,那核心又回到瞭如何寫Prompt, RLAIF一個基礎的Prompt構建如下:Preamble是如何進行評估的任務指令,Exampler是高質量的標註few-shot,然後是上文和兩條待評估的摘要,最後是模型輸出。
論文還提到了幾個指令最佳化細節
- soft label:想讓模型評估兩個樣本的優劣,有很多種打分方式,論文選擇了輸出樣本序號的方式,這樣既符合自然語言表達,同時因為就1個輸出字元,可以很直觀的計算1和2的解碼機率,從而得到soft label,後續用於RM訓練
- Positional bias: 考慮summary1和2的前後順序會影響模型的評估結果,論文會分別對12,21的兩組樣本進行打分,並取soft label的平均值。這裡論文驗證了越小的模型位置偏差越嚴重。
- 加入COT: 在Ending的部分加入思維鏈指令"Consider the coherence, accuracy, coverage, and overall quality of each summary and explain which one is better. Rationale:"
- 解碼策略:在附錄中論文對比了self-consistency和greedy decode,效果上greedy更好,哈哈但是self-consistency的樣本最多隻用到16,所以這個對比做的不是非常充分。
獲取到機器標註資料後,論文使用soft-label[0.6,0.4]來進行Reward模型的訓練再對SFT之後的模型進行對齊。注意這裡有一個細節就是論文使用了soft label,從模型蒸餾的角度,soft label比[0,1]的hard label包含遠遠更多的資訊,在蒸餾方案中往往可以顯著提高蒸餾效果,因此不排除RLAIF超過人工標註效果的部分原因,來自soft-label而非machine label。對齊後的模型效果對比如下,RLAIF的無害率提升更加明顯,勝率和RLHF齊平
細看會發現上面對比中還有兩個細節
- same-size RLAIF:RLAIF的標註模型是PaLM2 Large,而SFT模型是PaLM2 XS。論文同時測試了當標註模型和SFT模型大小同樣為PaLM2 XS的效果。說明RLAIF的效果不完全來自模型大到小的蒸餾,在同樣大小上模型標註可以帶來自我提升
- Direct RLAIF:是不使用Reward模型進行訓練,直接使用大模型(PaLM2 XS)標註出1-10分的打分,並把打分機率歸一化到sum(1).然後直接使用模型打分作為reward來進行對齊。但個人對這種方案表示存疑,因為在我們的嘗試中模型的絕對打分能力並不高,哈哈不排除我們任務有點複雜prompt沒寫好。論文使用的prompt如下
prompt = """You are an expert summary rater. Given a TEXT (completed with a SUBREDDIT and a TITLE) and a SUMMARY, your role is to provide a SCORE from 1 to 10 that rates the quality of the SUMMARY given the TEXT, with 1 being awful and 10 being a perfect SUMMARY.
"""
IBM SALMON
- SALMON: SELF-ALIGNMENT WITH PRINCIPLE-FOLLOWING REWARD MODELS
- https://github.com/IBM/Dromedary
SALMON在RLAIF的基礎上最佳化了機器標註的部分,並給出了新的Reward模型的訓練方案- Principle-Following Reward Model,背後其實也是用到了對比學習的思路。個人感覺這個思路更優的點在於,不直接讓模型學習什麼回答更好,什麼回答更不好,因為好和不好的判定更容易陷入reward hacking,相反SALMON讓模型學習每個具體的好和不好的偏好標準的表徵。
先說偏好樣本標註,同樣是基於SFT模型取樣兩個候選回答,在使用大模型進行偏好標註時,SALMON對偏好進行了更為細緻的拆分,總結了小20條偏好標準,包括事實性,數值 敏感,時間敏感等等。論文沒有把所有原則合併成一個prompt,而是每一條原則,都會讓模型對兩個候選回答進行獨立打分,打分是回答A、B解碼機率的對數之差。這裡同樣考慮了position bias,因此會swap位置求平均。prompt模板如下
透過以上的標註我們能得到prompt_i,responseiA,responseiB,princle_j, score_iaj, score_ibj的偏好樣本。在RL模型訓練時,SALMON沒有像以上RLAIF直接使用soft label進行模型微調,而是採用了指令微調的方案,並引入了負向原則,例如非事實性,無用性等等,更全面的讓Reward模型學習每一個偏好原則的具體表徵。具體的指令樣本構建方式如下
- 對所有正面 原則,構建對應的負面原則描述,以下為簡潔性原則的正負面principle
- 輸入:對每個prompt,取樣3個原則,並對取樣的原則進行隨機反轉。在以下的指令樣本中,隨機取樣的principle分別是Concise ,Ethical和precise, 其中Eithical被隨機反轉成負面原則。
- 輸出:如果responseA 和resposneB 對應以上3個原則 的打分分別是(2,3,6)和(1,5,5),這時選擇AB打分差異最大的一個principle來決定最終的輸出結果,這時分差最大的是Ethical Principle,又因為該原則被反轉,因此模型的解碼結果是該維度上得分更低的A。
最後使用以上構建的指令樣本進行微調得到可以理解正負面偏好原則並對回答進行打分的Reward模型。
同樣因為訓練了Reward模型的Principle理解能力,在推理使用Reward模型時,論文指出可以透過動態調整上文principle來解決一些已經發現的reward hacking的問題,哈哈所謂頭疼醫頭,腳疼醫腳。最開始讀到這個思路時覺得有點逗,後來訓練發現時不時就會發現Reward模型存在各種奇葩Bias時,才發現能快速透過prompt修復一兩個小問題真的很香,雖然不是終極解決方案,但勝在臨時好用。針對三個發現的Reward hacking問題,論文分別在推理時加入了以下的新principle
說完RL訓練策略最佳化,和樣本標註最佳化,過幾章我們接著說RL相關的對抗訓練和訓練過程最佳化方案~
想看更全的大模型相關論文梳理·微調及預訓練資料和框架·AIGC應用,移步Github >> DecryPrompt