為何 AI 巨頭紛紛斥巨資蓋基建?算力遠遠不夠的原因 - 推理時的運算
不管是 Ilya 或 Hassabis 都說了,訓練時的 Scaling Laws 已經從增長期進入緩慢期,我們需要另個比擬 Transformers 的劃時代架構,才能再進入更高層次的 AI 領域。但矽谷大佬們為何還是忍住一肚子火交「輝達稅」買 GPU 呢?為何皮衣老黃還是毫無羞愧用 75% 的高毛利賣 GPU 呢?因為在這些矽谷大老心中,就算預訓練的瓶頸已經達到,但真正要消耗算力的,竟然是在推理階段的大量 Token 產生,這被稱為 Inference-Time Compute,或是 Inference-time Scaling Laws。
怎麼說?
這是一個 AI 發展典範的轉移。過去我們認為「模型訓練好就是固定的」,要變強只能重新訓練(Training-time compute),改變它的參數才行。但現在的觀念變了。即使模型不重新訓練,只要給它更多「思考時間」(Inference-time compute),它就能變得更強。
這就是當代最強的高階推理模型背後的秘密。我們可以把它想像成從「直覺反應」進化到「深思熟慮」,你看到的最新模型,包括 GPT-5.2,Gemini 3 Flash/Pro 或 Claude 4.5 Opus/Sonnet 都是如此。
這個稱為「推理期的可驗證式合成資料」(Verifiable Synthetic Data)可能在一般文字的生成上表現差強人意,但在「程式碼生成」或「數學推理上」的具體運作流程則是強上加強,這邊舉個具體的例子說明它如何運作,程式碼生成是最棒的範例。
程式碼有一個人類語言沒有的特性:它能被執行,而且非黑即白(對就是對,錯就是錯)。我們現在要利用這個可驗證合成資料的目的,就是要打造一本「完美題庫」,作為日後的訓練。
假設我們要訓練一個模型學會寫 Python 程式,但網路上高品質的「題目 + 完美解法 + 詳細思考過程」不夠多。我們該怎麼憑空變出這些資料?
這就是 Rejection Sampling(拒絕採樣) 或 Best-of-N 的流程。下面是詳細的步驟。
第一步:大量生成(廣撒網):
我們給一個還算聰明的模型難題
* 題目: 請寫一個 Python 函數,計算費氏數列的第 n 項,要求時間複雜度必須低於 O(n)。
* 然後要求模型生成 100 個不同的解答 (Rollout)。 這時候,模型會產生各種品質的代碼:
* 解答 A:寫錯了,語法錯誤。(垃圾)
* 解答 B:寫對了,但用遞迴寫法,速度很慢(O(2^n))。(普通)
* 解答 C:寫對了,用矩陣快速冪,速度極快。(極品)
...(其他 97 個各種奇怪的解法)
第二步:硬體驗證(過濾器)
這時候,不需要人類介入。我們寫一個自動化的「判卷程式(Unit Tests + Profiler)」去跑這 100 個解答:
* 編譯檢查: 解答 A 報錯 -> 淘汰。
* 正確性檢查: 輸入 10,看輸出是不是 55。不對的 -> 淘汰。
* 效能檢查: 輸入 10000,看誰能在 0.1 秒內跑完。解答 B 超時 -> 淘汰。
* 最後,系統發現解答 C 是唯一通過所有測試,且效能最高的代碼。
第三步:逆向合成(Back-Translation / Synthesizing Reasoning)
現在我們有了「題目」和「正確代碼(C)」,但這還不夠。我們要教模型「思考」。 我們再把「題目」和「解答 C」丟回給模型,下一個指令:
「這是一個完美的解答,請你詳細解釋這段代碼為什麼這樣寫?請一步步推導出矩陣快速冪的思考過程。」
模型會根據正確答案,反向生成出一段高品質的「思維鏈(Chain of Thought)」。
第四步:存入資料庫
最後,我們得到了一組由 AI 生成,但經過嚴格數學驗證的完美教材:
Input: 題目
Output: 高品質思維過程 + 完美代碼(解答 C)
這就是合成資料。 它不是從網路上抄來的,也不是蒸餾自別人的模型(因為別人的模型可能也寫不出解答 C),它是透過「暴力嘗試 + 嚴格驗證」篩選出來的「黃金樣本」。
為什麼這招比「蒸餾」更強?
第一就是因為 GitHub 上的程式碼有很多是初學者寫的垃圾程式碼,如果你只用網路資料訓練,模型就會學到垃圾寫法。但透過上述流程,模型只會學到「被驗證過最高效」的寫法(寫法 C)。
第二就是可以打破資料牆。數學題、邏輯題、物理模擬都可以這樣做。只要能寫出「驗證程式(Verifier)」,就能無限生成資料。Google DeepMind 的 AlphaGeometry 就是用這種方法,憑空生成了幾億則幾何證明題來訓練,最後解題能力拿到國際數學奧林匹亞金牌等級。
如果是寫作文、寫詩: 那確實很像「蒸餾」,因為很難驗證好壞,容易造成模型崩潰。
如果是寫程式、數學、科學: 那就是「演化」,透過優勝劣汰的機制,讓合成資料的品質超越原始資料。
上面還是使用資料來訓練,但真正的在用戶提問時,即時運用類似上述的原理來產生回答的嗎?這就是到 Inference-time compute 的概念。
LLM 在產生資料時,會有兩個作法,稱為 System 1 和 System 2,這和人類一模一樣。這是心理學家 Daniel Kahneman 提出的。
System 1 為快思考,是傳統的 LLM 運作方式。看到問題,憑藉訓練時的「直覺」直接預測下一個字。就像你被問「1+1等於幾?」,你不用算就能脫口而出「2」。這個方式的優點就是快,便宜。但缺點就是遇到複雜邏輯題容易「一本正經講幹話」,因為它是線性的,一旦前面預測錯了,後面就跟著錯,無法回頭。
System 2 稱為慢思考,看到問題,不准馬上回答。模型內部先啟動一個「隱藏的思考流程」。就像你遇到一題微積分,你需要拿出一張紙在上面試算、畫圖、發現算錯了劃掉重算,最後才把乾淨的答案寫在考卷上。這類模型回應時會顯示「Thinking...」,並且等待時間較長。
Inference-time Compute 就發生在此。當你問一個複雜問題時,推論模型在那個「等待時間」內,其實是在瘋狂地進行我們上一段提到的「生成 -> 驗證 -> 修正」循環,只是這一切都發生在短短幾秒鐘內。下面會做幾件事
A. 隱藏的思維鏈(Hidden Chain of Thought)
模型開始生成一連串的「思考 Token」,這些 Token 不會顯示給你看。
(模型內心獨白):用戶要我寫一個貪吃蛇遊戲。我應該先決定用什麼庫?Pygame 好像太重了,用 HTML Canvas 好了。等等,用戶之前好像說過喜歡 Mac 風格... 那我介面要設計成圓角。先試著寫一段邏輯... 咦,這裡碰撞檢測好像寫錯了,如果是撞到自己的身體應該要 Game Over。修正一下...
B. 自我反思與搜索(Self-Correction & Search)
這就是最關鍵的一步。傳統模型是一條路走到黑,推論模型則像是在走迷宮(Tree Search):
嘗試路徑 A: 走到一半發現邏輯不通 -> 主動放棄(Backtrack)。
嘗試路徑 B: 邏輯通順,但效率太低。
嘗試路徑 C: 完美。
它會在內部模擬多種可能的解法,只有當它對結果有足夠的「信心分數」時,才會把最終的路徑 C 翻譯成文字輸出給你。
如果是這樣搞,算力當然不夠!(黃仁勳表示...)。
首先就是推理成本暴增。以前問一個問題,模型輸出 100 個字,就消耗 100 個單位的算力。 現在問同樣問題,模型內部可能生成了 50,000 個字的「思考過程」(你看不到),最後只輸出 100 個字。 推理階段的算力需求可能會變成原來的 100 倍甚至 500 倍。
另外就是打破「模型大小」的限制。過去我們認為要變聰明,模型參數就要變大(例如從 7B 變成 70B)。但現在小模型只要給夠長的「思考時間」,它的表現可以超越一個秒回的大模型。這在業界被稱為「Scaling Laws for Inference(推理的擴展定律)」,智力可以透過「時間」來換取,而不僅僅是透過「參數量」。
「合成資料」是在訓練前把教材準備好(Offline)。 而現在的「推論模型」則是把這個過程搬到你提問的那一瞬間(Online/Real-time),就像一個考試時會反覆檢查驗算的學生,雖然交卷比較慢,但考 100 分的機率遠高於那些寫完就交卷的學生。
所有巨頭都在等待 AI 爆發的時刻,現在不蓋基建就會被擠出賽道,連機會都沒有,但當 AI 爆發時,全世界如果大家都用上 AI,並且要求模型在合理的時間內思考出正確的答案,那他們是對的,目前算力遠遠不夠。說句難聽的話,就算現在模型不再訓練不進步了,就使用現在的模型,如果用的人一多,算力就是不夠了。Scaling Laws 還活著,只是換了一個戰場,如果現在底層架構不修改,這麼耗能的使用方式會一直爆炸成長,這也難怪全世界的 AI 頂級廠商不惜血本也要拼命擴建,也是我們這些使用者造成的呢。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。