Kimi發(fā)布最新模型k1.5,技術報告也干貨滿滿
大家好,我是劉聰NLP。
就在今晚,Kimi發(fā)布了最新模型k1.5,先來看榜單效果,簡直爆炸。
在長推理上,k1.5在數(shù)學能力上,無論是純文本還是視覺多模態(tài)上,都遠超openai的o1模型;在codeforces與其持平,LiveCode上略差,但相比于QVQ和QWQ有較大的優(yōu)勢。
在短推理上,k1.5的數(shù)學能力真實遙遙領先,無論是gpt-4o還是claude3.5-sonnet都遠不如k1.5,尤其是在AIME榜單上,k1.5有60.8,而最高的deepseek-v3只有39.2,堪稱斷層式碾壓。這個應該得益于他們的Long2short RL技術(后面介紹);并且k1.5在其他場景中大多都跟頂尖的開源和閉源模型打成平手。有一說一,這次kimi的新模型有點東西的哈。
最重要的是kimi發(fā)了技術報告《Kimi k1.5: Scaling Reinforcement Learning with Large Language Models》,看了一下,25頁,干貨滿滿,他家針對強化學習,真的是做了好多工作,無論是data、strategy、還是Infra。
Paper link: https://github.com/MoonshotAI/Kimi-k1.5/blob/main/Kimi_k1.5.pdf
先簡單看了一下,讓我印象最深刻的就是RL數(shù)據(jù)收集部分、Long2short 部分、以及Infra 的Hybrid Deployment Framework部分。
Long2short部分,這個應該k1.5模型可以在短推理上取得超優(yōu)效果的核心。自從o1出來之后,我們都知道,增加test time可以提高模型的推理效果,大大提高模型智能,這也是為什么o1出來后,又帶起一波LLM新浪潮的原因。
但long-cot雖然優(yōu)秀,但在推理階段需要消耗大量的token預算,以及時間,那么是不是可以將long-cot模型的推理先驗知識轉移到short-cot模型中呢?k1.5嘗試了多種方法:
- 模型合并:之前都是通過模型合并來提高模型的泛化性,k1.5發(fā)現(xiàn)long-cot模型和short-cot模型也可以合并,從而提高輸出效率,中和輸出內容,并且無需訓練。
- 最短拒絕采樣:對于模型輸出結果進行n次采樣(實驗中n=8),選擇最短的正確結果進行模型微調。
- DPO:與最短拒絕采樣類似,利用long-cot模型生成多個輸出結果,將最短的正確輸出作為正樣本,而較長的響應(包括:錯誤的長輸出、比所選正樣本長 1.5 倍的正確長輸出)作為負樣本,通過構造的正負樣本進行DPO偏好學習。
- Long2Short的強化學習:在標準的強化學習訓練階段之后,選擇一個在性能和輸出效率之間達到最佳平衡的模型作為基礎模型,并進行單獨的long-cot到short-cot的強化學習訓練階段。在這一階段,采用長度懲罰,進一步懲罰超出期望長度,但保證模型仍然可能正確的輸出答案。
Long2short效果如下所示,在提高輸出效率的同時,大幅度提高模型效果。
RL數(shù)據(jù)收集部分,我覺得kimi真的說到的了我的心趴上。畢竟在做LLM之后,我很長一段時間都在做數(shù)據(jù)相關的工作。而RL階段依然也不例外,強化學習階段數(shù)據(jù)的質量和多樣性,不僅能夠引導模型進行穩(wěn)健的推理,還能減少 reward hacking 和overfitting的風險。
高質量的RL提示數(shù)據(jù)的三要素:
- 覆蓋范圍-廣:提示數(shù)據(jù)應涵蓋廣泛的學科領域,如科學、技術、工程和數(shù)學(STEM)、代碼和一般推理,增強模型在不同領域的普適性。這里k1.5開發(fā)了一個標簽系統(tǒng),對提示按照領域和學科進行分類,確保不同學科領域的數(shù)據(jù)平衡。
- 難度分布-均:提示數(shù)據(jù)應包含易、中、難不同難度級別的問題,讓模型逐步學習,防止模型過擬合到一些特定復雜的問題上。這里k1.5通過模型自身的推理能力,來評估每個prompt的難度,就是對相同的prompt利用相對較高溫度生成10次答案,然后計算答案的通過率,通過率越低,代表prompt難度越高。
- 可評估性-準:提示數(shù)據(jù)應允許驗證器進行客觀且可靠的評估,確保模型結果是基于正確的推理過程,而不是簡單模式或隨機猜測。這里k1.5利用沒有任何鏈式推理步驟的情況下預測可能的答案,如果在N次嘗試內,均預測正確答案,認為該prompt容易產(chǎn)生reward hacking。
在k1.5的報告中,寫了大段infra的內容,看完之后受益匪淺,因為我本身不是做infra的,所以對infra的很多細節(jié),之前并不是很了解,看完k1.5的內容之后,真的學到很多。
其中,Hybrid Deployment Framework部分,有一些工程上的東西的。RL階段主要有以下幾個階段:
- 訓練階段:Megatron(Shoeybi et al. 2020)和 vLLM(Kwon et al. 2023)分別在獨立的容器中運行,這些容器被一個名為檢查點引擎(checkpoint-engine)的外殼進程封裝(詳見第 2.6.3 節(jié))。Megatron 首先啟動訓練過程。訓練完成后,Megatron 會釋放 GPU 內存,并準備將當前權重傳遞給 vLLM。
- 訓練階段:Megatron和 vLLM分別在獨立的容器中運行,容器稱為checkpoint-engine的外殼進程封裝。Megatron 首先啟動訓練過程,訓練完成后,Megatron 會釋放 GPU 內存,并準備將當前權重傳遞給 vLLM。
- 推理階段:在 Megatron 釋放內存后,vLLM 以虛擬模型權重啟動,并通過 Mooncake 從 Megatron 接收最新的權重更新。完成回放后,checkpoint-engine會停止所有 vLLM 進程。
- 后續(xù)訓練階段:釋放 vLLM 所占用的內存后,Megatron 重新加載內存并開始下一輪訓練。
而現(xiàn)有框架很難同時滿足以下所有特性:
- 復雜的并行策略:Megatron 和 vLLM 可能采用不同的并行策略。Megatron 中分布在多個節(jié)點上的訓練權重很難與 vLLM 共享。
- 最小化閑置 GPU 資源:對于在線策略強化學習,SGLang和 vLLM可能會在訓練過程中保留一些 GPU,導致訓練 GPU 的閑置。如何共享相同的設備,將訓練變得更加高效。
- 動態(tài)擴展能力:通過增加推理節(jié)點的數(shù)量,同時保持訓練過程不變,可以顯著加速訓練。如何高效利用閑置的 GPU 節(jié)點。
如圖下圖所示,k1.5在Megatron 和 vLLM 的基礎上實現(xiàn)了這種混合部署框架,將訓練階段切換到推理階段的時間縮短到不到一分鐘,而從推理階段切換到訓練階段大約只需要十秒。
我看完整個paper,是學到不少,還有一些其他的內容,后面有機會在繼續(xù)給大家分享吧,期待其他infra大佬和rl大佬來解讀。
最后說一下,k1.5 剛剛發(fā)布,現(xiàn)在正在進行灰度上線,也許你馬上成為那個幸運兒,可以提前體驗到k1.5的整體效果。我反正是十分期待ing。
