Transformer 太早停止思考?一個 rank-8 的 LoRA 就能延長推理深度
Transformers Stop Thinking Too Early, and a Tiny LoRA Fixes It
背景
大型語言模型在處理 context 裡的「引用鏈」時,有個容易被忽略的限制。引用鏈是指程式第 3 行引用第 2 行的變數,第 2 行再引用第 1 行,模型得一路追到底才答得出來。這類任務本質上是多跳推理:每多一跳,模型就要多做一輪「找到被引用的那一行,再取得它的值」。
這篇論文量測了這種能力的上限。作者測了 13 個預訓練 base model,發現它們在不使用 chain-of-thought 的情況下,只能穩定追蹤約 1.4 到 3.6 行的引用鏈。這個數字遠低於模型的層數:一個幾十層的 transformer,理論上有很大的 forward pass 深度可以拿來做串接運算,實際上卻只用了一小部分。標題「Stop Thinking Too Early」說的就是這件事:模型在還有很多層可用時,就已經停止了這類運算。
另一個直覺是,既然深度不夠,就增加深度。論文也檢驗了這條路。像 Ouro 這種 looped(迴圈式)語言模型,會重複使用同一組層來增加有效深度。作者發現,預訓練階段就加上去的額外 loop 帶來的好處很有限。所以問題不只是層數或迴圈次數不夠,而是模型沒有學會把多出來的深度用在這種串接運算上。
這也呼應了一個常見的困擾:模型的「預設輸出」可能低估了它內部真正具備的運算能力。這篇論文想問的是,能不能用極小的改動,把這部分被閒置的深度喚醒?
方法
核心做法很簡單:凍結模型的所有權重,只在某一個早期層放一個 rank-8 的 LoRA,並用這個引用鏈任務去訓練它。LoRA 的可訓練參數量相對於 8B 模型可以忽略,所以論文才稱它是 "tiny edit"。
論文接著回答這個 LoRA 到底做了什麼,並提出一個「relay(接力)」機制:
- LoRA 在早期層啟動接力,讓每一行程式把自己所屬的「鏈身分」(chain identity)寫進表徵。
- 這份身分資訊會在一小段中間層裡逐層往後傳遞,像接力賽一樣。
- 模型中原本凍結的 attention heads 會讀取這份資訊,而且越往後的層,讀到的鏈上位置越遠。也就是說,每多過幾層,模型就能多追蹤幾行。
- 作者用干預實驗驗證因果關係:移除對「父行」(parent line,也就是被引用的那一行)的 attention,接力就會中斷。
論文還提出一個不需要訓練的診斷方法。在凍結模型上直接量測,可以估計「最後一個還有用的介入層」在哪裡,也就是最晚能在哪一層放 LoRA 而不失效。在四個 held-out 模型中,這個量測有三個落在容許誤差內。這表示介入位置不必全靠試錯,可以從模型本身的性質預測。
除了合成的引用鏈任務,作者也訓練了 task-specific 的 LoRA,在真實的多跳問答 benchmark MuSiQue 上測試。
實驗結果
論文摘要給出的關鍵數字如下:
- 基線:13 個 base model 只能可靠追蹤 1.4 到 3.6 行。預訓練時額外加的 loop 幾乎沒有幫助。
- Qwen3-8B:在 24 行的引用鏈上,exact accuracy 從 15.5% 提升到 99%。這是用 rank-8、單一早期層的 LoRA 做到的,模型本身的權重全部凍結。
- 更長的訓練:訓練時間拉長後,同一類 LoRA 可以讓 Qwen3-8B 做到 50 行。
- Ouro-1.4B:這個 looped 模型在 4 次 loop 後可到 60 行,8 次 loop 後至少 160 行。這說明 loop 能提供額外深度,但前提是模型學會利用它。這和「預訓練 loop 沒什麼用」的說法並不矛盾:有沒有用,取決於模型有沒有被教會把深度用在串接運算上。
- 機制驗證:移除 parent-line attention 會讓接力停止,這是接力假說的因果證據。
- 預測介入層:在凍結模型上量測最後有用的介入層,四個 held-out 模型中有三個命中。
- MuSiQue:task-specific LoRA 也能改善 MuSiQue 的表現。我手上的來源只有摘要層級的描述,沒有提供具體分數與提升幅度,所以這裡不列數字。
需要說明的是,我讀到的 arXiv 頁面與 Hugging Face 頁面幾乎只有摘要內容,沒有表格、消融細節或訓練設定(例如 LoRA 放在第幾層、訓練資料規模、不同鏈長的完整曲線)。因此上面的數字都來自摘要,細節請以論文全文與作者的互動 demo 為準。
意義
這篇論文最有價值的地方,是重新界定了「模型做不到」的意思。15.5% 到 99% 的跳升,不是靠擴大模型或加入新知識換來的,而是靠一個極小的改動,讓模型本來就有的 attention heads 能被串接起來使用。這表示預設輸出會低估模型內部能取用的運算量。評估模型的推理能力時,只看 base model 的零樣本表現,可能得到偏悲觀的結論。
對實務有幾個啟發。第一,如果某類任務卡在「需要的運算深度」而不是「缺乏知識」,那麼用小 LoRA 微調的 ROI 可能很高。第二,relay 機制給了可解釋性研究一個具體的案例:多步推理在 transformer 內部可以被拆解成逐層傳遞的資訊流,而且能用 attention 干預去驗證。第三,「在凍結模型上預測最後有用的介入層」這個工具,讓我們不必暴力搜尋放 LoRA 的位置。
不過有幾點需要保留。訓練任務是合成的引用鏈,和真實世界的推理有差距。MuSiQue 上有改善,但摘要沒有說明幅度,是否能廣泛遷移還要看全文。預測介入層的方法也只在四個模型中命中三個,還不是萬用的。另外,這種 LoRA 是 task-specific 的,每換一類任務可能都要重新訓練。
整體來看,這是一篇把「深度利用不足」這個模糊直覺,變成可量測、可干預、可解釋的研究。對關心 looped transformer、test-time compute 與機制可解釋性的讀者,值得追一下作者放出的程式碼與互動 demo。