從這週一晚上開始,對標OpenAI O1的多個國產模型接連發布,刷爆社交媒體。隨著網際網路的文字資料幾乎窮盡,大語言模型的預訓練已經接近瓶頸,透過強化學習(RL)來進行後期訓練(post-train)成了提升模型效能的共識。
我們前段時間也做了關於機器人領域強化學習的科普(機器人強化學習深度科普),這期我非常榮幸的邀請到Kimi的強化學習專家Whisper來解讀KIMI k1.5:《Kimi k1.5:scaling reinforcement learning withLLMs》。Whisper本科畢業於上海交通大學,在瑞士知名的機器人實驗室EPFL LASA讀碩士和博士,主要研究機器人控制和強化學習。
第一部分:關於後訓練階段的RL
1. 預訓已到極限,RL後訓為王?
2. 什麼型別的資料達到極限?
3. 之前的後訓練階段使用的方法是什麼?
4. 目前的RL和RLHF有什麼區別?
5. 後訓練階段用到的RL是什麼型別的RL?
6. 文字類也可以用 RL嗎?
7. RL對訓練效率和GPU的需求上升了嗎?
第二部分 K1.5 利用LLMs擴充套件強化學習
8. 什麼是Kimi的K系列模型?
9. 什麼叫Inference Scaling Law?
10. 怎麼理解Long2Short?
11. 怎麼做Long2Short?
12. 透過RL來提高推理能力有效嗎?
13. 怎麼理解長上下文擴充套件?
14. 一些有趣的現象
第一部分:關於後訓練階段的RL
1. 預訓練階段透過堆資料對模型效能提升已經到頭了嗎?未來的趨勢是在後訓練階段用RL嗎?
這可能是一個行業趨勢,核心問題還是資料的限制。pretrain的scaling已經做了幾年,這裡帶來的收益會逐漸變少,但是仍然有很多可以做的空間,比如搞質量更高的資料,挖掘更diverse的資料,這相關的工作我理解是永無止境的。同時,強化學習(RL)的scaling才剛剛開始,我們期望會有更陡峭的梯度在這裡。RL可以透過互動和最佳化策略,在現有模型的基礎上進一步挖掘潛力,從而彌補資料增長乏力帶來的侷限性。
2. 什麼型別的資料達到極限?是文字還是圖片?
如果是單純的語言模型,關鍵在於文字資料的規模和質量;但如果是多模態模型,除了文字資料之外,還需要其他型別的資料,比如影像、音訊或影片資料,以支援多模態任務的學習和推理。對於多模態資料來說,比如圖片和影片,目前資料的增長空間確實未達到極限,但是也需要更復雜的資料處理。在理想情況下,一個多模態模型的最優狀態應該是既能夠深刻理解資料,也能夠生成高質量內容,也就是在同一個框架下同時訓練生成和理解。
從理解能力的角度來說,目前的模型表現還不錯,比如我們的Kimi k1或Kimi k1.5,它們在圖片理解上的能力相對較好。我們曾在訓練中引入了許多涉及數學和邏輯推理的題目,模型在這些任務上的泛化能力表現還可以。
比如我們試過一個任務,讓模型透過一張圖片推測拍照地點。結果顯示它的推測非常靠譜,總體上表現得不錯。但圖片其實對提升模型的“智力”作用不大。也就是說,模型的核心推理能力和智力還是依賴於文字資料來訓練的。圖片的作用可能更多體現在grounding上,比如幫助模型更好地理解空間關係或者一些具體的場景。
3.強化學習之前的後訓練階段,通常使用的方法是什麼?
一年前在後訓練階段,大家可能會做SFT(Supervised Fine-Tuning,監督微調)。完成SFT後,你可能會發現模型已經有了一定的提升,這時還會利用DPO做進一步最佳化,然後基本上這個階段的訓練就完成了。
我們按照最開始的大模型的訓練方式,先洗一堆資料來做預訓練。最初這個模型是不會對話的,我們透過做SFT(Supervised fine-tuning監督微調),讓它學會對話,學會指令遵循等能力。
這樣處理之後,模型基本上就可以用了。在這之後,比如在以前,還會做一些RLHF(Reinforcement Learning from Human Feedback),但是RLHF和現在的強化學習(RL)還是不太一樣。比如說,DPO(Direct Preference Optimization)可以算是RLHF的一種簡化版本。SFT對模型的提升有一定幫助,但不能做得太多,做太多會對模型的效能有損傷。
在RLHF(Reinforcement Learning with Human Feedback)中,DPO 是 Direct Preference Optimization 的縮寫,它是一種基於偏好最佳化的簡化版本,用於替代傳統RLHF中複雜的強化學習步驟。DPO的核心思想是直接利用人類偏好資料進行最佳化,而不依賴複雜的強化學習演算法。DPO是RLHF方法的一種輕量化實現,適合在有大量人類偏好資料時直接最佳化模型輸出效果,而無需完整的強化學習環節。
4. 現在後訓練階段用到的RL和之前的RLHF有什麼區別?
基於人類反饋的強化學習(RLHF),與傳統強化學習的本質區別主要在於獎勵(reward)的來源不同。RLHF的獎勵來自一個“獎勵模型”(reward model),這個模型透過配置好的資料進行訓練。比如,在訓練過程中,會準備兩條回答資料:一條是人類認為好的回答,另一條是人類認為不好的回答。
透過這些配對的資料,獎勵模型學會了對回答進行評分。例如,問一個問題“今天的天氣怎麼樣?”,如果模型回答了不相關的內容,比如“你好”,這是一個不好的回答。而如果模型回答了與天氣相關的準確內容,那就是一個好的回答。獎勵模型透過這種方式學會為不同回答打分。
基於這個獎勵模型,對策略網路(policy net)進行訓練。但這裡需要注意,訓練不能進行太多步,否則策略網路會過擬合(overfit)獎勵模型。如果過擬合了,獎勵模型就無法提供有效的反饋,這時需要重新訓練一個新的獎勵模型。
而現在我們在後訓練階段用到的RL,更多是根據ground truth來的,例如判斷模型是否正確完成了任務,比如程式碼是否寫對了,或者問題是否回答準確。在這種情況下,獎勵相當於一個“黃金標準”(golden reward),具有更高的可靠性。由於這種黃金標準很難被策略網路“破解”或欺騙,因此可以在這種獎勵下進行更長時間的強化學習訓練。
RLHF是基於人類反饋的強化學習,本質上依賴於人類提供的意見來區分哪些回答是好的,哪些是差的。目前在後訓練階段用到的強化學習(RL)通常針對的是有明確答案的問題,這些答案並不是基於人類的主觀意見,而是由客觀標準決定的。
因此,這兩種方法所處理的問題型別是不同的。RLHF更適合處理主觀性較強的任務,比如文字對話,因為這些任務的評價標準往往因人而異。而傳統RL則主要用於那些答案明確、目標清晰的場景,比如解數學題,或者寫程式碼。所以其實如果總結上來看,在處理一些數學和程式設計相關的問題時,使用RL來進行post-training目前被認為是最優的。
5. 後訓練階段用到的RL是什麼型別的RL?
強化學習中有許多分類,比如基於價值(value-based)和基於策略(policy-based)的方法。當前的主流方法大多采用的是基於策略的方法。
這是因為,比較長時間以來,大家逐漸放棄了基於價值的方法。基於策略的RL比較容易scale,主要是在大規模部署和訓練的角度來說,它有一定的優勢,所以進一步可以解決更難的問題。
目前,業界普遍使用的訓練方法是基於策略的方法,比如以前常見的PPO(Proximal Policy Optimization)。PPO在早期階段被認為非常有效,但現在來看,在LLM中PPO可能已經沒有必要,或者說它的效果並不顯著。當前的主流方法多是採用更簡單的基於策略的訓練演算法,而不再依賴複雜的ppo框架。
從另一個維度Model-free還是Model-based(這裡的model指的是transition model)目前在大語言模型用到的RL都是Model-free,機器人裡用到Model-based的會多一些。
從on-policy和off-policy的角度,在on-policy方法中,訓練的資料是從當前策略網路(policy network)中取樣出來的,每次模型引數更新後,需要重新取樣資料進行訓練。而在off-policy方法中,可以利用之前取樣的資料來繼續訓練,即便模型引數已經更新。這意味著on-policy更強調即時性和一致性,而off-policy則可以更高效地利用歷史資料。我們用的是帶有一定off-policyness的演算法。
RL在後訓練方面的方法其實在我們釋出這篇論文之前,業界並沒有共識,GPT-O1也沒有公佈他們在RL方面的訓練方法。但隨著更多的論文公佈,RL在後訓練方面的方法會受到越來越多人關注。
6. 文字類回答問題是否也存在用RL來進行post-training的趨勢?
這個主要取決於能否準確評估結果,比如如果寫兩段作文,如何準確地評估哪一段更好?這其實是一個挺困難的問題,因為沒有一個明確的、統一的標準能夠完全客觀地衡量優劣。很多時候,這種評估帶有一定的主觀因素。
因此,對於文本回答類的問題,通常還是需要透過RLHF(Reinforcement Learning from Human Feedback)來最佳化。然而,也存在另一種思路,即假設可以透過一套非常複雜的機制(比如有一個套非常複雜的pipeline)來獲得更準確的評估,那麼在這種情況下,也可以進行直接最佳化。
7. RL對訓練效率和GPU的需求上升了嗎?
強化學習(RL)方法並沒有顯著降低訓練成本,其成本依然很高。這是因為RL方法依賴暴力搜尋,需要大量算力支援,生成與訓練需要同時進行。
在生成任務中,例如解決數學題時,模型需要生成答案並根據其正確與否進行評估,從而給予獎勵(reward)。評估方法可能是將生成的答案與標準答案(ground truth)進行對比,或者在程式碼生成的情況下透過執行程式碼並執行測試用例來驗證正確性。這種過程被稱為"rollout",即生成答案並與標準答案進行對比,判斷其準確性。
生成完答案後,還需要進一步訓練,整個過程包括生成、驗證、訓練的迭代操作,最終最佳化模型的效能。
第二部分k1.5利用LLMs擴充套件強化學習
8.什麼是Kimi的k系列模型?
關於k系列的分類,k系列主打長回覆,但他能夠解決複雜的問題,例如,數學競賽和Codeforces程式設計競賽的問題,這屬於k系列的目標應用。k0聚焦於數學問題上的應用,是系列的第一個版本;k1則拓展到多模態,k1.5在k1的基礎上進行了更多的訓練,效能有所提升。
在多模態方面,k系列逐步加入了視覺能力,尤其是2D影像的處理。在預訓練階段當然會有很多網際網路上的圖片資訊,在後訓練RL環節,用到的圖片更有針對性,例如幾何類數學題需要結合題目與圖形資訊才能解答;行測題包含許多圖片推理的內容;智商測試中也有需要圖片推理的題目。這些資料被用來針對性地訓練模型,特別是針對於數學、幾何類問題或需要視覺推理的問題。
總體來看,k系列的研發方向逐漸增強模型在複雜問題和視覺推理方面的能力,同時利用多模態資料擴充套件其應用場景。程式碼需要多模態的部分比較少,但像數學,K12比如化學物理類題目對多模態的需求更高。
很有意思的一個點是,我們用這類和解題有關的圖片訓練好的模型,其實對他的空間理解能力也有提升。例如,在辦公室拍一張窗外的照片,模型可以透過照片中的資訊進行推理,判斷照片中有什麼內容,並進一步判斷照片拍攝的地點。這種能力可以結合視覺識別和空間推理技術,提升模型在真實場景中的應用能力。
9.什麼叫Inference Scaling Law?
Inference Scaling Law指的是推理時間變長可以顯著提升模型效果。具體來說,模型的輸出過程本質上是一種計算過程。如果允許模型有更長的時間“思考”,它會透過反覆嘗試和自我修正來最佳化答案。例如,模型可能會先粗略地計算一遍答案,發現錯誤後進行反思和調整,最終得出更準確的結果。這種延長推理時間的方式相比直接給出答案,能夠帶來非常顯著的效果提升。
在推理時間較長的場景下,使用者可能會感到模型的響應變慢,但得到的答案質量會更高。然而,這種延長推理時間的效果需要根據具體場景來權衡。如果只是回答簡單的問題,比如打個招呼,響應速度慢會影響使用者體驗。
最理想的方式是模型能夠同時掌握長回覆和短回覆,並能自如地判斷在不同場景中何時需要長時間推理、何時需要快速響應。然而,目前的技術還未達到這一理想狀態,模型的表現往往受到訓練資料的影響,訓練資料較多的場景更容易最佳化,而其他場景可能尚不夠完善。
一種解決方案是提供多個入口,讓使用者自行選擇是偏向快速響應還是高質量推理結果。這既為使用者提供了靈活性,也是一種權衡模型能力與實際需求的方式。
10.怎麼理解Long-COT和Short-COT以及Long2Short
關於Short–CoT(Chain of Thought)和Long–CoT的區別,長CoT是指模型在推理過程中使用非常長的輸出,比如解決一道題可能需要一萬token。然而,實際上模型可能並不需要這麼長的推理過程,如果能將輸出壓縮到更短的長度,比如2000 token,仍然可以得出正確答案。
所以我們的Long2Short提到一個關鍵問題是,是否可以將模型的輸出壓縮到最短的程度,同時仍然能夠正確解決問題。這意味著在保證正確性的前提下,儘量減少推理過程中不必要的冗餘,使模型更加高效,避免無意義的過長推理輸出。
這種最佳化的目標是在推理準確性和效率之間找到平衡,既能保持模型的高效能,又能減少計算資源的浪費。
然而,強化學習(RL)訓練中模型往往會傾向於生成更長的推理過程,會越訓越長。這是因為RL只根據模型的答案是否正確給予獎勵,而不考慮推理過程的長度。因此,模型在訓練中逐漸形成了更長推理的模式,並且這種模式具有自我強化的趨勢。
雖然更長的推理過程可能顯得冗餘,但在許多情況下,透過更深入的反思和多次嘗試,模型的最終準確率確實得到了顯著提升。
將模型推理比作學生做數學題,強調了逐步推理的過程:模型不是直接給出答案,而是一步一步推導,有時還會回到前面的步驟重新反思和檢查,尋找更好的思路。這種反覆推理的方式能夠提升最終答案的準確性。
然而,如果推理過程變得過長,可能會導致不必要的複雜性。當前的最佳化方向是限制推理長度,避免它無限制增長。在許多情況下,隨著推理長度增加,模型效能會逐漸提升,但當問題本身的難度飽和時,推理長度的增加就不再帶來額外收益。目標是找到一種方式,使模型在適當的長度內達到最佳效能,而不是盲目延長推理過程。
11.怎麼做Long2Short?
針對最佳化模型從長推理到短推理,有幾種方法。
第一種方法是模型合併(Model Merge),將一個長推理模型和一個短推理模型合併,得到一個輸出長度中等的模型;
第二種方法是長度懲罰(Length Penalty),在強化學習(RL)的獎勵函式中加入長度懲罰(Penalty),促使模型在推理時平衡長度和準確率。這是一種更優雅的方式,透過權衡推理長度和效能來最佳化結果。
第三種方法是最短資料篩選,具體做法是:從長模型生成的正確解答中,挑選出推理路徑最短的資料,作為新的訓練資料提供給其他模型。這種方法類似於知識蒸餾的過程,將長模型的能力提煉為更高效的推理方式。目標是引導模型按照能夠正確解題的前提下,儘可能輸出最短的推理路徑,從而最佳化模型的推理效率。
第四種方法是,直接偏好最佳化(Direct Preference Optimization, DPO),透過強化學習的方法實現,直接偏向於短推理過程。這種方法簡單快捷,適合快速實現最佳化目標。
12.透過RL來提高推理能力是否比單純增加模型引數更有效?
有一個有趣的發現:如果有兩個模型,一個是大模型,一個是小模型,小模型可以透過增加輸出長度來達到與大模型相近的效果。
具體來說,小模型在推理時,如果允許其生成更長的輸出,就能夠在一定程度上彌補因模型規模較小而帶來的效能差距。這種方式本質上是用更長的推理時間和過程來補償模型本身的能力不足,從而實現接近大模型效果的表現。
13.怎麼理解長上下文擴充套件?
我們將RL的上下文視窗擴充套件到128k,發現效能隨上下文長度增加而提升。為提高訓練效率,採用部分展開(partial rollouts),透過重用大量先前軌跡生成新軌跡,避免了從頭生成的高成本。
關於模型擴充套件長度的問題,提到將擴充套件到128k是一種常態化的趨勢。隨著模型的推理長度不斷增加,觀察到效能也在持續提升。推理過程變得越長,模型的能力越強,能夠處理更復雜的問題並給出更精準的答案。這種延長推理長度的方式,顯示出模型在大規模推理場景下的潛力和效能。
在訓練過程中,隨著推理視窗長度從32k不斷擴充套件,模型能力也隨之增強。然而,這種擴充套件帶來了一個明顯的問題:由於模型的 autoregressive 特性,輸出速度隨著推理長度的增加變得越來越慢,訓練效率顯著降低。
為了解決這個問題,可以引入一種最佳化策略,將長推理的生成過程分段處理。例如,對於一條128k的回答,前32k由一個模型生成,中間32k由另一個模型生成,最後的32k由第三個模型生成。透過分段生成,可以有效緩解因推理長度過長而導致的生成速度問題,同時保持整體推理的完整性和效率。這個方法不僅能解決答案過長的問題,也為後續方向的擴充套件提供了思路。
此外,該方法可以在生成過程中提前檢測重複。大型語言模型容易出現重複,這是其本質特性之一。因此,我們可以在輸出過程中提前停止重複內容,並對其進行懲罰。雖然生成的答案可能較長,但基本不會出現重複現象。
在策略最佳化方面,改進主要集中在演算法層面的最佳化,同時構建了一個簡潔的框架,這也體現了工程實現上的實用性。實際上,比如MCTS、value network以及過程獎勵等模組,都可以認為是不必要的,完全可以不依賴它們。總的來說,簡單的方案往往是最有效的,這與之前許多論文對MCTS和PRM所做的探索得到的結論相反。
14.一些有趣的現象
模型在生成過程中隨著文字長度的增長,會出現一些非常有意思的現象。例如,當模型生成到一定程度時,它可能會說出類似“等一下”、“讓我再反思一下”以及“我現在感覺我已經比較有信心了”等詞彙,然後便直接給出答案。有一次,我注意到它提到了“歐瑞!於是,正確的答案是xxx”,當時我覺得這表示答案已經構思完畢。關於“歐瑞”的含義,我最初沒太明白,可能與“歐式”、“歐洲”或“瑞士”有關;但經過進一步思考,我認為這很可能是“all right”的諧音,是一種額外的音譯現象。總之,模型有時會神奇地生成一些非常有趣的詞語。
References:
https://github.com/MoonshotAI/Kimi-k1.5
原創不易,歡迎“點贊”“打賞”“在看”三連!
也歡迎加我微信交流!
