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