代碼:
https://jyopari.github.io/posts/seal擬人比喻:
學生把備考的東西,以自己的方式記成筆記精華,更有利于他的理解和記憶。
背景:
Self-improving:
本文:
輸入外界知識,LLM將其整理為筆記(self-edit);拿筆記做訓練數據做SFT,SFT后的模型(臨時用,不更新到最終模型里)用外界知識的QA進行評判打分;作錯題的筆記,直接扔棄;作對題的筆記,將<其外界知識,筆記>輸入到模型進行reward為正的RL訓練,更新模型。
算法:
C是外界知識,
是該知識對應的QA。
損失函數:
reward, 做對了題就是1,做錯了就是0:
經過近似,loss:
說白了就是"SFT on good self-edits"
這里的外層loop相當于teacher, 內層loop相當于student。在本文兩者是同一模型;也可分開為2個模型。
實驗:
1. 知識內化
實驗結果:
Train on Passage: 直接使用原始的外部知識來SFT訓練模型;不使用任何合成數據。(結果表明,效果提升非常小)
Train on Passage+Synthetic: 使用原始外部知識+本模型合成的self-edit數據,共同SFT訓練模型;除了不進行RL訓練,其他設置和SEAL組相同。(結果表明,這組效果提升較大,但加上RL訓練的SEAL能更好些)
Train on Passage+GPT-4.1 Synthetic:?使用原始外部知識+GPT4.1生成的self-edit數據,共同SFT訓練模型;(結果表明,效果提升較大,但SEAL雖然用的小模型來合成self-edit數據,因為有RL訓練,效果更好)
2. ARC推理和泛化能力benchmark
?self-edit的內容,就是:1. 調用tools做數據增強;2.SFT優化的參數;
存在的問題:
災難性遺忘。容易記住新的忘了舊的。?