聊聊對強化微調(RFT)的理解及看法
在看了 OpenAI 的直播,精讀了字節論文,以及和 知乎@真中合歡 激烈辯論后。我對 RFT ( Reinforcement Fine-Tuning ) 也有了一些自己的認知,這篇文章給大家分享一下我的理解。
首先給出我的結論:RFT 并不是新的技術范式,而是 PPO 技術范式下的新應用范式,RFT 相比于傳統 PPO 的創新點是 rule-based reward_model。
疊甲聲明:RFT 屬于應用范式,RFT 依賴的是 rule-based reward_model ,這兩個觀點屬于個人看法,如有不對,還望輕噴。至于 “dozens of data” 就能生效,是不是能間接說明 RFT 相較于 PPO 之外,有更多的細節,我目前沒有從 OpenAI 紕漏的 demo 中觀察出來。
RFT 是什么
從 OpenAI 展示的內容中,我們可以這么理解:RFT 就是針對給定 prompt,產生一些包含 cot 的 response ,再通過一個 verifier 來判斷 response 是否正確,作為信號來指導模型進行參數更新。
拋開 cot 過程不談,如果我們把這套流程的 verifier 換成 reward_model ,這個流程看上去是不是感到很熟悉?—— 那就是最傳統的基于 PPO 的 RLHF。
好,目前為止,在我的認知中,RFT 和 RLHF 唯一的區別就是,它的 return (reward 信號) 是通過 verifier 算出來的,而不是一個 reward_model 計算出來的。verifier 本身則可以看成是一個 rule,比如 math 任務的答案是否正確,code 任務的代碼是否能執行 …… 因此, RFT = PPO + rule_based reward_model
RFT 的價值
OpenAI 在介紹 RFT 的時候說了這樣一句話:“RFT 旨在使開發者和機器學習工程師能夠創建專門針對特定復雜、特定領域任務的專家模型”。這就是 RFT 的價值:只要能定制好一個任務的 verifier,那么 RFT 便可以在這個新的領域場景,以十分之一或更少的數據,輕松超過 SFT 的結果。當然,用 PPO 訓練模型能帶來的所有收益也都是 RFT 的優點,這里就不贅述了。
介紹中還提到,RFT 擅長解決法律、保險、醫療、金融和工程領域等任務,而這些任務通常有明確的“正確答案”。是因為 RFT 只適合答案固定的場景嗎?不是,僅僅是因為答案固定的場景 verifier 非常容易制定。
Sam Altman 在直播中認為 RFT 是 2024 最牛的技術進展,能幫助大家搞定專業模型的訓練。說的沒錯,RFT 在大模型應用方向確實是劃時代的,因為它真的能幫 OpenAI 賣更多的定制化服務。LLM 從業者們也能從中些許受益,掌握了 RFT 技術后,以后老板再提出做一個新的應用模型,我們就不需要再枯燥的標注大量的 SFT 數據,而是花一點時間訓個 verifier 即可。
字節的 ReFT
說完 OpenAI 的 RFT,我們再來聊聊字節的 ReFT。字節的 ReFT 可以看作是 OpenAI 的 RFT 在數學任務上的一個極簡版實現方案(僅從 OpenAI 紕漏出來的細節,我沒看出來二者有本質的區別,或許 dozens of data 這幾個單詞背后埋藏了更多的技術細節):
- SFT 得到一個較好的模型;
- 給定 prompt,do_sample 多次,生成一些帶 cot 的 response;
- 答案正確,1 分;答案錯誤,0.1 分;提取不到答案(說明沒有 follow 輸出格式),0分;
- 根據 returns 更新模型。
如果我們現在再讀 ReFT 論文,會覺著這篇論文并沒有太多的閃光點,好像里面提到的方案自己也都能想到。我想說的是:ReFT 這篇論文,好就好在它是在 o1 之前發表的。因為 o1 的出現,“cot 的推理過程,MCTS 采樣,PRM,ORM,rule-based reward_model” 等概念,已經在 LLM 圈深入人心了。大家頂著 o1 的知識背景,回頭看今年上半年的創新工作,自然會覺著有些稚嫩。
ReFT 這篇論文固然偉大,但就像我前面說的,RFT 只是 PPO 技術范式下的一個新應用范式。它本身并不是一個全新的技術范式,所以我個人覺著談不上說誰首創了這個技術范式。
RFT 會改變什么
對于字節這樣的算力大廠,本來就有賣大模型服務的業務線,那么 RFT 既然能幫 OpenAI 賣服務,自然也能幫字節賣服務。所以大廠需要立刻跟進這項應用技術。
對于 LLM 的普通從業者,短期內則是無事發生,該訓 SFT 還得訓,該洗數據還得洗。但長遠來看,我們的心態和學習方向需要發生變化,我們必須留意到,這已經是 OpenAI 今年第二次告訴大家說 PPO 真的很重要了,上一次是 o1。如果大家還是“兩耳不聞強化事,一心只搞 dpo”,我只能說心態確實夠頂。
寫在最后
希望大家不要再感慨 SFT 沒價值了,也別感慨 RFT 真牛啊,完全追不上 OpenAI 之類的話,感慨無用,如果對 RFT 感興趣,請 git clone OpenRLHF 代碼,然后 bash train_ppo.sh。?
本文轉載自 ??NLP工作站??,作者: ybq
