思維鏈最早是在預訓練模型中湧現出來的現象。人們發現,僅僅只是在模型解數學題的時候,要求它 think step by step,模型就能極為顯著地改善其做數學題的正確率。這個現象在最初是讓很多人感到相當震撼的,和 In-context learning (大模型有能力看懂任務指示和示例,在不進行訓練的情況下,直接學會在訓練時沒遇到過的新任務)一道成為大模型智慧湧現的標誌之一。
大模型的數學能力以及邏輯能力差,是所有和它們對話過的人都能發現的一個問題。這個問題嚴重影響了大模型落地賺錢的可能,因為人們普遍不敢信任說話沒邏輯的大模型能做出什麼正確的決策。於是,提升大模型數學能力,被所有做基礎模型的公司當作了第一目標。
那麼自然會有人想要強化思維鏈,看看有沒有辦法能夠把大模型的數學能力給做上去。一個很簡單的想法是,模型 think step by step 就像人類思考問題、並且用草稿紙寫下過程那樣,這裡面有假設、演繹、反思、糾錯等等。既然人類這樣做可以有效做對數學題,那大模型應該也可以?於是問題就轉化為了如何讓大模型學會正確地思考。
第一個證明這件事有用的是 OpenAI 的 o1 系列模型。在此之前,OpenAI 已經炒作了很久的 Q* 以及“草莓”,讓人猜想下一個模型強化的地方。而在o1-preview之後,便掀起了複現 o1 的競賽。大部分題目中提到的公司(kimi、qwen、天工)都早就開始了這方面的探索,並且在 DeepSeek-R1 發佈前就已經有思維鏈模型發佈,只不過效果沒做到 DeepSeek-R1 這麼好。
那麼怎麼強化思維鏈復現 o1 呢?主要有以下四條路線:
一、基於過程監督的強化學習。就是說,本來我們讓模型 think step by step 它就可以寫出一些過程的,但這些過程大抵是不太對的。那我們就像人類的老師改學生作業一樣,仔細看看過程,看看是哪一步做錯了,對於做錯的那一步扣分;做對的那一步加分。
這個路線所面臨的核心問題是,
1、怎麼去界定步驟?畢竟打分是以步驟來進行的。但是每次解題的過程都不一定能和標答對上,於是得分點就不好判斷了。
2、誰來判定哪個過程是正確的?理想情況是老師能仔細閱讀每一個步驟,如果想錯了就扣分,如果做對了就給分。但是在當時大家手上並沒有一個數學非常好的模型能做到這一點。
代表性的工作,比如 OpenAI 的 Let's verify step by step,就是用過程監督的辦法來強化思維鏈,取得了一定效果。
二、蒙特卡洛樹搜索(MCTS)。這也是個強化學習的經典演算法,當初阿爾法狗就是用了這個演算法在圍棋中打爆了人類的。如果把解數學題看作是一個在迷宮中搜索正確路徑的過程,那麼就可以引入這個演算法。在搜索中,需要準確評估當前這條路徑到底看上去合不合理(狀態價值有多少,狀態價值可以看作是當前期望能拿到的獎勵)。
這個路線所面臨的核心問題:
1、把以文字為主的數學題抽象成迷宮,怎麼做?畢竟無論是題目還是解答過程都是文字,怎麼對這些連續的文字劃分成分段的過程?怎麼清晰地把所有下一步可能的過程或者結果抽象成有限的節點?
2、假如我們已經把數學問題抽象成了一個迷宮,怎麼判斷當前這條路徑好不好?誰有能力來做這樣的判斷?
這一類工作代表作有微軟的 rStar,也取得了一定的效果。
三、監督微調。既然原先大模型在預訓練的時候要預測下一個字元是什麼,那麼我們收集一堆思維過程給大模型,讓它們照葫蘆畫瓢,沒準就有用呢?畢竟一開始的預訓練模型就能通過 think step by step 來改善正確率,當然有理由認為我塞更多思維鏈的數據進去,能進一步改善正確率。
這個路線所面臨的核心問題是:並沒有那麼多思維過程數據能給到大模型。幾乎所有的教科書、教輔書都只會把正確過程給印到答案上,而不會把錯誤的過程給印上去,但很多時候我們希望模型在想錯的時候能稍微多想一步、反思一下,至少能糾正那些看起來明顯不對的錯誤。所以這種思維數據得從頭收集。
1、可以讓已有的預訓練大模型 think step by step 然後篩選出得到正確結果的那些樣本。但有人觀察到某些大模型的 think step by step 是裝模做樣分析一通,但實際上給出的結果和它的分析並不符合。換句話說,這樣收集到的過程並不一定可靠。
2、也可以召集一堆學生把自己解題時腦袋裡的碎碎念給寫下來。但是很顯然這樣做的成本很高,畢竟腦袋裡的碎碎念這種東西全部寫下來要花的時間可不短。儘管語音輸入可以稍微緩解這個問題,但數學公式還是沒法語音輸入的。
3、蒸餾 OpenAI o1 (preview/mini)。但是 OpenAI 並不開放思維鏈,而且對任何妄圖誘導模型說出自己思維過程的用戶都進行嚴厲打擊。
這一類工作的代表作有很多,比如 DeepSeek-R1 蒸餾出來的那些 Qwen 和 Llama 小模型。在這之前也有很多模型,並且報告說自己的模型能達到 OpenAI o1 preview 的水準,那大抵是用了這個方法,效果也確實很不錯。只要真的收集到了很多思維鏈數據,小模型就真的照葫蘆畫瓢學會思考。
四、基於規則的強化學習。在過程監督以及 MCTS 兩種方法中,都會面臨怎麼去對過程進行拆分、怎麼去對過程中的某一步(正確性或者未來預期的正確性)進行打分的問題。有人感到這件事實在是過於困難了,等於是手動往解題這件事上加“結構”(見《苦澀的教訓》)。所以,他們打算只看結果,不看過程,讓模型自由發揮。
這條路線面臨的問題是,沒什麼人對這件事情有信心。畢竟,你只關心結果,那你怎麼知道,模型會按照你期望的方式獲得正確的結果呢?
1、模型可能一直都做不對題,從而擺爛。就算做對了,那也是僥倖對的。
2、模型可能找到一些其他的辦法稍微多做對幾道題,比如背答案,或者找一些邏輯上完全沒有關聯的規律。總之模型看上去不像是能自己學會思考的樣子。
3、想想就覺得這事很難。要是這能成,那我乾脆直接設立一個目標,讓模型去給我賺錢,那模型就能真的學會怎麼賺錢了?這就AGI了?這條路線事實上也挺難,很多人也嘗試過,但沒調通,放棄了。
這條路線的代表作,自然是 DeepSeek-R1、Kimi-k1.5。當然我們現在知道了,OpenAI 的 o 系列也是這條路線訓練出來的——這件事很難,但真的能成,而且效果非常好。在 DeepSeek-R1 出來之後,基本上就只剩下第三和第四條路線了(因為它們的效果最好,而且既然有人能做出來,那自己做不出來肯定是沒做對,只要多試試就好了)。
那麼以後的大模型是不是得標配思維鏈呢?基本上是的。GPT-4.5 是 OpenAI 公司發佈的最後一個非思維鏈大模型,以後該公司的所有模型都會具有思維鏈能力。思維鏈是一個能以最小的代價,而非常顯著提升模型智力水準(邏輯能力、解題能力、代碼能力)的技術,此外還有一些其他方面的好處,不做白不做。