作者:胡一鳴@知乎
相當令人震撼的工作,特別是 Deepseek-r1-zero 。
沒有任何監督訓練,純強化學習
首先,駁斥了“感謝OpenAI 開源”、“蒸餾OpenAI-o1”的說法,Deepseek-r1-zero 模型在預訓練之后,是完全沒有經過任何監督學習的,也就是說沒有使用任何其他思維鏈模型(以及人類)的輸出。從 Deepseek-v3 基座,直接進行強化學習,即可解鎖 o1 級別的思維鏈能力。
只看答案,不搞花里胡哨
Deepseek-r1-zero 在強化學習中,只有兩種獎勵:
第一種:(如果我沒理解錯的話)只看最終答案對不對。對于數學題,只看它最終的結果 \box{Answer} 并給予正確或錯誤的反饋;對于編程題,只看測試用例的結果。既沒有過程獎勵,也沒有MCTS 。
第二種:格式獎勵,也就是要求模型將思考內容寫在“草稿紙”上( CoT 標簽內),不要混雜思考內容和給用戶呈現的內容。
為什么沒有過程獎勵?作者認為,過程獎勵很容易被偷分(reward hacking),就像人類學生在考試時,瞎寫公式試圖騙分一樣。而且,能給過程進行打分的模型很難實現。除了人類,還有誰能來當這個批改作業的老師呢?第一代模型只能硬闖出來自己的路。
為什么沒有MCTS?因為推理到每一步時,下一步的選項都太多太多了,比圍棋要多得多,而且這是指數級別的增速。如果限制搜索空間,又會很容易陷入局部最優。其次,和過程獎勵的問題一樣,給思路打分的模型(value model )同樣很難實現。
思維鏈能力的自我進化
隨著強化學習的持續進行,模型為了提升做題的正確率,越來越習慣進行很長的連續思考。
<span leaf=""><span leaf="">&lt;span leaf=&quot;&quot;&gt;&amp;lt;span leaf=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;span leaf=&amp;amp;quot;&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;img data-imgfileid=&amp;amp;quot;100005299&amp;amp;quot; src=&amp;amp;quot;https://mmbiz.qpic.cn/mmbiz_jpg/NeU1Ga24gUlyRRHAz9IuxLbrZGbIVQmSJ5kMesPMFVwXTIicR9dnsRibbPSKF5DecfDZeGFCHhKfdic1BPpfibuVIw/640?wx_fmt=jpeg&amp;amp;amp;amp;from=appmsg&amp;amp;quot; data-type=&amp;amp;quot;jpeg&amp;amp;quot; width=&amp;amp;quot;1160&amp;amp;quot;/&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span></span>
隨著強化學習的進行,deepseek-r1-zero 的平均回復越來越長
注意,這一點是在沒有獎勵思維鏈長度的情況下實現的。模型僅僅只是為了做對題目,就自發地進行越來越長的思考。并且,它從長思考中得到了良好的效果,也就是更高的正確率。
這似乎暗示我們,只要強化學習環境設置得當,為了完成一個任務,模型就有可能越來越習慣于進行超長的連續思考、連續動作。這為強化學習實現 Agent 鋪平了道路。
反思能力的涌現
作者在文中分享了一個很有趣的案例。一開始,模型(Deepseek v3 基礎模型)只是按部就班地一步步撰寫思維鏈,就像其他一般的、沒有思維鏈能力的模型那樣。你甚至不知道它是真的在思考,還是僅僅只是背下來了解題過程?亦或是先有了一個答案,然后再對著答案湊過程?
然而,隨著強化學習的持續進行。在某一步中,模型突然有了這樣的輸出:
一直在接受強化訓練的模型,在訓練到一定程度的時候,仿佛“靈光一閃”一般,在思維鏈中輸出了一些情不自禁的感嘆詞。然后,第一次開始從頭重新思考整個問題,也就是涌現出了反思的能力。
作者們認為:這不僅僅是模型的靈光一閃,更是觀察它的研究人員的靈光一閃。這充分體現了強化學習的威力和魅力:我們并不顯式地教模型要怎樣去求解問題,我們只是要求模型去做對題目,模型自己就能涌現出復雜的思維模式(反思)。這個現象提示我們,強化學習真的具有很強的潛力,能為模型解鎖下一個等級的智能,為實現 Agent 鋪平了道路。
實用的 CoT 模型——R1 的實現
deepseek-r1-zero 的訓練過程及最終的能力讓人印象深刻。當然,放出來給大家用的模型還是要做一些工程上的優化的,不要那么激進。所以,第一步,deepseek-r1 模型還是先用 SFT 來啟動,讓模型先跟著樣本學習一下思維鏈長啥樣。然后,第二步,再進行和 deepseek-r1-zero 一樣的強化學習。
強化學習完成后(這只訓練了那些明確能判定結果正確與否的問題與解答),進入第三步。此時擴充一些其他方面的問題,并且讓(經過微調的) Deepseek-v3 來生成合適的數據及獎勵(這里我沒太看懂)。此外,對于一些簡單的、記憶類的問題,用了和 deepseek-v3 同樣的后訓練方法及數據。
最后第四步,在所有場景中進行第二輪強化學習。對于那些能明確判定結果正確與否的問題,用和 deepseek-r1-zero 一樣的方法;其他種類的問題則用 RLHF,用類似于 deepseek-v3 后訓練的流程及數據集。
站在巨人肩膀上的小模型
此前已經有很多人聲稱自己用小模型實現了o1/o1-preview/o1-mini的性能,方法是通過對展現了良好思維過程的樣本進行監督學習。也就是說,蒸餾o1,或者收集一堆人類寫的CoT文本然后監督學習。
那么這里 Deepseek 團隊也做了這件事情,發現這條路確實行得通,而且效果好得難以置信。
例如,Qwen 1.5b 這么小的模型,蒸餾了一下 Deepseek-r1,就能在數學題上超越 GPT-4o 和 Claude-3.5-sonnet 這種頂級基座模型了! 對于 Llama 70b 這種大模型,蒸餾了一下,做題能力立刻就超越 o1-mini,直逼 o1 了。
然后,既然 deepseek-r1-zero 純用強化學習就這么猛了,那小模型呢?于是嘗試了一下對 Qwen-32b 基礎模型,用 deepseek-r1-zero 的強化學習方法,看看效果如何。
結果,效果一般,和 Qwen 團隊給出的 QwQ-32b 幾乎一樣。純強化學習的表現,遠遠不如直接蒸餾 Deepseek-r1!
或許,對于大模型而言,學而不思則罔;對于小模型而言,思而不學則殆。
大模型不習慣于思考,就很難做對數學題。但是,大模型本身非常聰明,只要要求它做對題目,它自己就能涌現出復雜的思考模式,通過無數天才般的靈光一閃,踏出一條智識的道路。
小模型即使十分努力地嘗試做對題目,但仍存在一定的瓶頸。然而,資質平平的小模型,卻可以通過學習大模型的思維方式,站在巨人的肩膀上,快速學習到很強的思維本領和做題能力,從而成為合格甚至優秀的做題家。
總結與展望
deepseek 團隊為我們展示了強化學習的強大威力,并且開源了 o1 級別的 deepseek-r1 模型為人們所用。MIT協議!支持商用!鼓勵蒸餾!源神啟動!
由于 deepseek-r1 主要是通過訓練思維鏈以強化做題能力,所以仍有改進空間:
1、在通用任務上可能比不過 deepseek-v3,包括調用函數、多輪復雜的角色扮演、輸出 json 文本等;
2、輸出有時候會混合不同的語言,和用戶期望不一致;
3、對提示詞敏感。few-shot 的提示詞可能會降低其能力,所以推薦使用 zero-shot 提示詞。(這里指的是,我們最好不要提供示例,而只是描述我們想要的結果?如果我理解錯了請在評論區里告訴我)
4、軟件工程能力,和 deepseek-v3 相比沒有很明顯的進步。
我考慮寫一些沒有明確寫在論文里的觀察,但現在太晚了,先占個坑。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.