跳到正文
IFAI

大模型

大模型溫度為 0 仍會變?Thinking Machines 稱真兇在動態批次

首次發布 傳播指數 62

Thinking Machines AI 發文剖析大模型推理不可復現的根源。業內常將「溫度為 0 仍給不同結果」歸咎於 GPU 浮點計算併發衝突,但團隊發現前向傳播本身並無原子累加,真正的罪魁禍首是推理服務因動態批處理缺乏「批次不變性」,輸出會因與其他併發請求湊批而改變。

大模型溫度為 0 仍會變?Thinking Machines 稱真兇在動態批次
圖:thinkingmachines.ai

如果你做過大模型開發,大機率踩過這個坑:把溫度調到 0,按理說模型每一步都選機率最高的那個字,兩次輸入一模一樣的問題,結果輸出還是差了幾個字。

大家通常把這事推給硬體:GPU 都是成千上萬個核心在並行算,浮點數加法又不滿足結合律,誰先算完誰後算完,誤差一累積,結果自然不一樣。這個「併發加浮點誤差」的解釋,幾乎成了圈子裡的公認常識。

Mira Murati 創立的 Thinking Machines Lab 發了第一篇深度研究部落格。研究員 Horace He 站出來反駁了這種主流假設:大模型推理的不確定性,根本不是併發和原子加法的鍋,而是 GPU 核函式被編排排程的方式出了問題。

別再甩鍋給 GPU 併發了

文章先做了一個很有說服力的實驗。你在 GPU 上用 bfloat16 跑一千次完全相同的矩陣乘法,結果是完全按位對齊、一模一樣的。按理說矩陣乘法也是浮點數運算,GPU 也開滿了併發,為什麼它就絕對可復現?

Horace He 指出,浮點數加法確實破壞了結合律,比如小數字和大數字相加會丟失精度。但真正的關鍵在於:現代大模型在前向傳播時,壓根就不怎麼用會導致隨機競爭的原子加法。

因為批處理的維度足夠大,每個核心自己算自己的向量,根本不需要互相爭搶寫入同一個記憶體位置。大家在用 vLLM、SGLang 或者商業 API 時遇到的輸出隨機,並不是單個核函式本身不可控,而是在整個推理服務拼接、排程這些核函式時,引入了微小順序差異。

團隊認為,只要更精細地控制這層編排架構,完全可以徹底幹掉推理階段的隨機性,拿到 100% 可復現的結果。

讓強化學習訓練少走彎路

除了能讓科學研究和企業呼叫時結果更穩定,Thinking Machines Lab 還點出了一個更大的算盤:強化學習。

在用強化學習訓練大模型時,系統需要根據模型的回答給出獎勵。如果模型自己每次輸出都在微調漂移,給出的訓練訊號就會混入大量噪聲。

Horace He 提到,讓模型生成可復現的回答,能讓整個強化學習過程變得更平滑。此前有外媒報道,Thinking Machines Lab 拿了 20 億美元種子輪融資,估值高達 120 億美元,他們向投資人畫的藍圖之一,正是用強化學習為企業定製模型。

這家匯聚了多位前 OpenAI 核心員工的初創團隊,計劃把這個名為「Connectionism」的部落格系列持續更新下去,公開更多研究程式碼。

為什麼重要

在我們看來,這篇部落格最聰明的地方,在於抓住了大模型走向工業化落地時最讓人頭疼的一個底層暗礁。普通使用者用 ChatGPT 聊天不在乎幾個字的差異,但在金融合規、程式碼驗證、複雜數學證明這些嚴肅場景裡,不可復現就是不可商用。誰要是能先在推理引擎層把確定性做紮實,誰就能在企業級私有化部署裡拿到巨大優勢。

對模型訓練本身來說,這也是在給後訓練鋪路。現在行業競賽的大方向都在往強化學習和長思考鏈條走,底層的數值漂移越少,訓練的方差就越小,省下來的都是真金白銀的算力開銷。

不過,把理論上的確定性變成生產環境裡的高吞吐系統,向來不是一回事。行業為了榨乾 GPU 效能,大量使用動態批處理和推測解碼,這些最佳化手段天然都在給執行順序加擾動。Thinking Machines Lab 想要在不犧牲推理速度的前提下鎖死確定性,隱患就在於會不會付出昂貴的吞吐代價。但無論如何,打破行業盲信的偽常識,這第一步邁得足夠硬核。

來源 (2)

  1. [1]
    thinkingmachines.ai(在新分頁開啟)原文thinkingmachines.ai
  2. [2]
    techcrunch.com(在新分頁開啟)報導techcrunch.com

每日 AI 內容精選