本周關注的工作是:Unsupervised Elicitation of Language Models
這篇文章通篇體現了這樣一件事——香蕉皮大需要香蕉大!
一句話總結
首先注意:這個工作不是面向對齊的,而是寫【如何準備】對齊任務的Reward Model需要的數據集的。
全篇總結↓
在沒有ground truth的情況下,作者利用兩個原則來衡量【數據集的內部一致性】,并通過檢測內部一致性來給樣本生成標簽,最終生成標簽數據集,以代替基于人工標注的對齊數據集。用這個數據集訓練Reward Model,進而訓練Claude模型,雖然訓練出模型的Score比發布版Claude Haiku低30分,但比人標注的數據訓的RM結果強10分。
內部一致性Internal Coherence Maximization→ICM就是本文方法的名字
這兩個原則一個是優化目標,一個是正則項,分別是:👉🏻
- Mutual Predictability:這個是優化目標。用樣本集中[所有其他樣本]作為context來預測某個樣本結果的[確定性],越大越好。
這就好像一群考北京卷
、上海卷
,全國卷
的學生在一個教室里商量答案,雖然彼此的題不同,也沒人知道最終答案,但是照著北京卷
和上海卷
的選擇題和同學寫的答案來研究全國卷
選擇題的答案,大家對答案的信心越強,就說明這個數據集越好。
為了方便理解,后面管Mutual Predictability叫集思廣益分
- Logical Consistency:這是正則項,就是數據集里的答案不要邏輯不一致。
作者從一個有8個標注樣本的樣本集起手,每加入一個樣本,都按照原則1給他分個標簽,再按照原則2來給樣本集內部解沖突,這樣不斷擴大樣本集。
關鍵細節
1. 數據集的x,y是面向Reward Model的x,y
所以始終是個二分類標簽,另外就是作者并沒有限制從一個樣本集里,question不能采集第二次。也就是說,可以再sample這個question,LLM生成個答案,然后作為本文數據集的x,然后用本文的方法給他配個y
2. 生成數據集的具體過程
作者這個圖畫的不太好,上半部分展示的不是步驟而是公式的計算,下半部分是步驟,具體要看文中的algorithm表。
初始階段:得準備幾個人工標注的x,y(8個左右就行),先要解了里面可能存在的沖突。
※ 第一步,集思廣益打標
從樣本集里sample一個樣本出來,用樣本集里其他的樣本作為prompt里的示例,讓LLM打標。
※ 第二步,解沖突
把剛打標的樣本和樣本集放一起,檢查有沒有邏輯不一致性(文中的實驗這里,邏輯不一致性沒有那么復雜,主要就是同一個question,兩個樣本的答案不能互相矛盾;或,如果A樣本的里說蘋果比梨大,B樣本里就不能說梨比蘋果大)。
如果有邏輯不一致的樣本,比如樣本A(圖上5+5=8)和樣本B(5+5=10),先假設樣本A是對的,算一個集思廣益分
A,再假設樣本B是對的,算一個集思廣益分
B,誰的分數大就當誰是對的,樣本A和樣本B的新標簽 y a y_a ya?和 y b y_b yb?就更新了。
※第三步,算解了沖突的數據集的集思廣益分
,如果比上一輪迭代的分高,新樣本就留下了。
集思廣益分怎么算?
P θ ( D ) = ∑ i = 0 N l o g P θ ( y i ∣ x i , D ? ( x i , y i ) ) P_θ(D) =\sum^{N}_{i=0}log P_θ(y_i|x_i, D \setminus (x_i, y_i)) Pθ?(D)=i=0∑N?logPθ?(yi?∣xi?,D?(xi?,yi?))
x i x_i xi?就是question+claim,也就是樣本集里的問題和LLM寫的答案
y i y_i yi?在執行流程里,不是ground truth,而是通過內部一致性給賦的標簽
3. 效果怎么樣
在這里我要先提一個觀點
當數據集中每個樣本之間都沒有知識或定理上的鏈接的時候,這個方法就退化成了【自舉法】。
這不是作者說的,而是我看到數據集之后的第一個反應。作者在文中用了三個數據集:TruthfulQA,GSM8K,Alpaca。
TruethfulQA 關注的是不要讓模型認可‘假新聞’(比如911是沒過zf自導自演的這種)
Alpaca是Alpaca的人類無害性數據集(就是在被要求制作💣的時候,讓模型拒答的哪個)
作者的主實驗里比較了用幾種方案獲得的【標注正確率】,注意,主實驗不是用來訓Reward Model,附加實驗才是。原文的figure3展示的accuracy是指標注正確率。
這幾種方法分別是:zero-shot prompt (on Base Model和Instruct Model )/160-shot prompt with ground truth(Golden)/160-shot prompt with 人工標注(Human)/本文方法(ICM)
吐槽一下,實驗結果表都沒給,肯定夠不上投稿標準啊,為啥這么珍惜篇幅呢?圖多花兩個柱子真的不行嗎?
上圖左邊兩個紫色柱子的意思就是體現Base模型和Instruct模型在沒有任何幫助的情況下,不管提示工程寫的多么優秀準確率都相對較低。藍色柱子和他的GUCCI帽子展示的是用ICM制作的數據集做160-shot prompt的準確率,加上用這個數據集finetune過后,準確率就帶上了GUCCI帽子,非常逼近用ground truth做160-shot prompt和finetune。alpha數據集上,比較的是ICM和人工標注樣本(綠色柱子和帽子)帶來的差異。
但第一個顯著的問題就來了,為啥左邊兩個圖不畫人工數據帶來的結果呢?這里不嚴謹的地方在于,人類一次性標注,或帶有抽檢復核的標注,往往距離benchmark給定的ground truth是有一定距離的,要體現無監督方法對人類標注的替代性效果,應該展示。(懷疑是不是小組沒批這筆標注費😏)
后面作者也比較了:使用人工標注的數據集和用ICM產生的數據集做Claude的Reward Model,以觀察ICM能否帶來更好的Chat Model這點——得到的結論是,比人工標注的數據喂養的RM好,但比發布版的Claude Haiku還差很多。作者自己解釋是說發布版的模型對應的RM在數據集上訓練的更久,但我說一句:發布版的模型使用的數據集肯定錯誤更少
4. 隨機打亂標簽
作者在Ablation的部分做了這樣一個實驗,將ground truth中的一部分y隨機替換成不對的標簽,以達到跟ICM制作的數據集擁有相同的標注準確率,在這個情況下,看看finetune模型的準確率會受到有什么影響。也就是說,下面圖褐色柱體現的是沒有ICM的樣本內部一致性,但有相同準確率的標注集能不能達到ICM的水平。
上圖這個結果顯示,在GSM8k和TruthfulQA兩個數據集上,打亂標簽一致性的數據集得到的結果雖然比ICM相對有點掉點(并不小,5%左右),但在Alpaca上掉點最為明顯(掉了10%左右)。而這恰恰說明了我的觀點——Alpaca數據集集中體現了安全倫理方面的標準,樣本之間的關聯性和角度一致性很高,這種情況下樣本一致性才能帶來更好的校驗效果。而想數學數據集和假新聞數據集上,樣本是以題目、事件的形式出現的,相互之間的獨立性更強。算內部一致性的分數更可能退化到跟自舉法差不多的水平。然而,作者沒有拿純樣本自舉來作比較。
評價
- 作者沒有拿出實驗反駁“當數據集中每個樣本之間都沒有知識或定理上的鏈接的時候,這個方法就退化成了【自舉法】”這一投稿一定會被challenge的問題。
- Ablation里缺乏對實驗細節的分析:
隨著步驟調整Temperature,作者說了是受到退火算法的啟發,但沒有給我們看不調差距有多大,超參數怎么配置
為什么直接選 l o g P logP logP做分數,又選擇 α \alpha α來平衡這個數而不是用其他方案?
以上兩個細節我沒寫在主干里,主要就是因為講不清楚道理,也不知道影響多大。 - 脫離安全性對齊,很難用:第一,這個東西很難用在判別標準不明確的場景上,模型可能會fit到一套跟人不希望的規則上去;第二,解樣本之間的邏輯沖突需要 模型對場景一致 和 結果矛盾 這兩點上,跟人的要求對齊,這在一般工業場景上,尤其是對話領域里,非常難(我就在這個坑里)。