一個最終學會推理的預測器
大型語言模型被訓練來做一件機械性的工作:預測下一個字(next token)。這個目標裡完全沒有「推理」二字。然而當你請一個強大的模型規劃旅程、除錯程式碼,或解開一個它從沒見過的邏輯謎題時,它常常能產出一串合理的中間步驟,並得到正確答案。我們把這稱為大型語言模型的推理(reasoning)——但這個詞承載了很多含義,所以我們要精確說清楚它代表與不代表什麼。
誠實的說法是:大型語言模型並沒有在跑一個邏輯引擎。它一個字一個字地產生文字,而推理是一種行為——當產生每個下一個字都需要結合事實、套用規則,或在好幾個步驟間追蹤某個數量時,這種行為就浮現出來。推理存在於生成的過程之中,而不在某個外掛的獨立模組裡。
自迴歸生成的循環圖示:模型輸出一個詞元,將其追加到輸入中,重複以產生下一個詞元。
回憶 vs 推理
兩種非常不同的能力,藏在同一個漂亮的答案底下。第一種是世界知識回憶(world-knowledge recall):訓練時被壓進權重裡的事實——各國首都、著名定理、常見成語。問「海平面上水的沸點是幾度?」,模型基本上是從記憶裡查出來。第二種是推理而非記憶(reasoning rather than memorization):靠著把步驟串起來,推導出訓練資料從未直接寫明的答案。
這條界線是模糊的,而這正是它重要的原因。「17 乘 24 等於多少?」看起來像推理,但一個常見的乘積可能只是被背下來了。「4173 乘 2891 等於多少?」幾乎可以肯定不在訓練資料裡,所以正確答案必定來自一個真正的多步驟程序。判斷模型能力的一大關鍵,就是把這兩者分開——這個主題我們會在最後一篇再回來談。
兩種速度:直覺與慎思
一個好用的借喻是「快思」與「慢想」——慎思 vs 直覺(deliberate versus intuitive)處理。當模型用單一個字直接回答(「答案是 42」)時,它是憑第一印象就押注一個猜測,就像一個人脫口而出。當它先把過程寫出來、最後才講結論時,它就給了自己在中途修正方向的空間。
每個下一個詞元都從以此前所有詞元為條件的分佈中選出,因此模型寫下的中間「草稿」詞元會成為塑造最終答案的上下文。
這是整個領域裡最重要的一個實務洞見:對於困難問題,讓模型在給出答案前先產生更多中間文字,通常能提高正確率。接下來三篇本質上就是把這個洞見變現的四種方式——靠提示、靠訓練,以及靠在回答時多花運算。
沒有人寫進去的能力
這些能力從哪裡來?有兩個來源。有些是湧現的推理能力(emergent reasoning skills)——在小模型上很弱或根本不存在、要等到模型跨過某個規模與訓練量門檻後才(有時相當突然地)出現的能力。另一些則是當場學來的:脈絡中技能習得(in-context skill acquisition),提示裡的幾個範例就能在這場對話的範圍內教會模型一個全新的格式或規則,完全不更新任何權重。
對數-對數圖,顯示損失隨模型規模增大而下降,說明神經縮放定律。
這兩者正是為什麼大型語言模型感覺起來不像一個固定的程式,而更像一塊你可以引導的彈性基底。它也解釋了為什麼同一個模型在某種問法下顯得才華橫溢、在另一種問法下卻一頭霧水:推理是真實的,但很脆弱,對問題如何被設置很敏感。請把這份張力——強大卻易碎——記在心裡;它是貫穿整個系列的主線。