這項由北京航空航天大學、人民大學與IQuest Research、Langboat等機構聯合開展的研究,於2026年6月以預印本形式發布,論文編號為arXiv:2606.18023,感興趣的讀者可通過該編號檢索完整論文。
在人工智慧的世界裡,有一個讓人著迷的問題:一個模型如果沒有辦法變得"更大",能不能變得"更聰明"?這個問題就像是問一個普通大腦,能不能通過反覆思考同一道題來獲得天才的答案。這項研究給出了一個令人意外但又在情理之中的答案——可以,但只能多想一次,多想第二次反而會越來越笨。
研究團隊構建了名為LoopCoder-v2的系列模型,核心思路是讓一個70億參數的語言模型在處理問題時"循環思考"。他們在1800億個文本和代碼數據上從頭訓練,然後測試了讓模型循環思考1次、2次、3次和4次時的表現差異。結果發現,從1次跳到2次,模型在著名的軟體工程測試基準SWEbench Verified上的得分從43.0分飆升到64.4分;然而從2次跳到3次,得分卻暴跌至27.6分,甚至不如什麼都不做的基礎版本。這種"多一步反而退步"的現象,正是本文要深入解剖的核心謎題。
一、為什麼同樣的參數,"想兩遍"比"想一遍"厲害這麼多
要理解這項研究,先得理解"循環Transformer"這個核心概念。通常一個語言模型由許多層疊加而成,每一層都有自己的參數(可以理解為獨立的神經迴路),資訊從第一層依次流向最後一層,完成處理。而"循環Transformer"的做法完全不同——它只有一組共享的神經迴路,但這組迴路會被反覆調用多次。用一個更直觀的比方來說:傳統模型就像一條生產流水線,每個工位只負責一道工序,資訊流過去就完成了;循環Transformer則像是一個工匠,拿到原材料後反覆打磨,每次打磨都用同一套工具,但角度和力度不同。
這種設計最吸引人的地方在於,理論上你可以用"更多次打磨"換來"更高精度的成品",而不需要增加工具的數量(即參數量)。換句話說,這是一條不靠擴張規模、而靠加深思考來提升能力的路徑。麻省理工和其他機構的早期研究已經證明,這種方式確實能讓模型在推理任務上表現出色,有研究甚至讓一個35億參數的模型通過50次循環,達到了相當於500億參數模型的計算量。
然而問題來了:循環次數越多,每多轉一圈,電腦就要多花一倍的時間,還要額外儲存每次循環的中間狀態。這就好比工匠每打磨一遍,就要把當前工件的照片存入檔案,多打磨50遍,檔案就要積累50倍。在實際部署中,這樣的內存和延遲開銷是無法接受的。這就是"並行循環Transformer"(Parallel Loop Transformer,簡稱PLT)登場的原因。
PLT用兩個互補的設計解決了這個工程難題。第一個設計叫做"共享KV門控滑動窗口注意力",聽起來很複雜,但本質上就是:第一圈處理時建立一個"全局檔案",後續所有圈都可以隨時翻閱這個固定檔案,而不需要各自建立新檔案。這樣內存占用幾乎不會隨循環次數增加。第二個設計叫做"跨循環位置偏移"(Cross-Loop Position Offset,簡稱CLP),它的作用是讓各個循環之間不再嚴格排隊等待——第二圈不用等第一圈的某個位置完全處理完才能開始,而是可以利用前一圈中鄰近位置的資訊提前開工。這就像工廠里的並行流水線:原本必須等上一道工序完全結束,現在可以在錯位的時間窗口內同時推進多道工序。
這兩個機制合在一起,使得PLT無論循環幾次,延遲和內存消耗都幾乎和只循環一次相同。這在工程上是一個很實際的突破。但是,這裡藏著一個微妙的代價——CLP機制為了實現並行,讓每個位置的詞在第二圈及以後不再接收自己上一圈的狀態,而是接收旁邊位置的狀態。換句話說,處理第5個詞的時候,用的是第4個詞的歷史資訊而非第5個詞自己的歷史資訊。這就像一個人在修改作文時,不是根據自己上一稿的思路繼續,而是偷看了旁邊同學上一稿的思路。這種"位置錯配"(positional mismatch)是PLT的結構性代價,也是這項研究中最關鍵的分析對象。
二、用"收益與代價"的天平來衡量每一圈循環
研究團隊將整個分析框架建立在一個樸素但有力的邏輯上:每多循環一圈,都有兩件事同時發生——模型有機會對表示進行進一步精煉(這是收益),但CLP引入的位置錯配也同時存在(這是代價)。當收益大於代價,多循環就是有益的;當代價大於收益,多循環就是有害的。
為了量化"收益",研究團隊從三個獨立角度觀察模型內部發生了什麼。第一個角度是"隱藏狀態動態",也就是觀察每一圈結束後模型內部的"詞語表示向量"變化了多少、變化方向是否一致。如果一圈接一圈的修改方向相同,說明模型在朝著一個更好的答案持續收斂;如果修改方向反覆顛倒,說明模型在來回搖擺,浪費了循環。第二個角度是"注意力熱圖演化",也就是觀察模型在每一圈中如何分配對不同詞語的關注度——如果每圈的關注分布都大幅變化,說明模型在持續學習新的上下文關係;如果幾圈下來關注分布幾乎不變,說明資訊路由已經"凍結",繼續循環沒有新意義。第三個角度是"輸出分布變化",即直接觀察每一圈後模型對下一個詞的預測發生了多少變化——變化越大,說明這一圈修改越有實質性影響。
為了量化"代價",研究團隊定義了一個叫做"內在偏移代價"(Intrinsic Offset Cost,記作Ω)的指標,計算方法是:在某一圈的邊界處,看相鄰兩個詞的表示向量之間的平均距離。如果相鄰詞的表示差異很大,那麼把鄰居的資訊當成自己的資訊使用,就會造成較大的失真;如果相鄰詞的表示已經很相似,則這種替換幾乎無損。
把收益與代價這兩條曲線畫在同一張圖上(對應論文中的"增益-代價剪刀圖"),就能看到一個引人注目的現象:從第一圈到第二圈,收益急劇下降但仍然很高,而代價保持穩定;從第二圈開始,收益持續萎縮,甚至跌到一個微不足道的低點,而代價卻始終不變。也就是說,代價是一個固定稅,收益是一個不斷縮小的蛋糕,遲早蛋糕會小到連稅都不夠交的地步。經過實驗估算,從第三圈開始,每一圈的偏移代價大約是實際精煉收益的30到45倍。這就解釋了為什麼循環兩次是最優點,再多就只剩虧損了。
三、在模型內部,每一圈到底在做什麼
研究團隊對訓練了不同循環次數的模型(分別是1次、2次、3次、4次)進行了細緻的內部解剖,結果每一個觀測角度都指向同樣的結論:第二圈是黃金循環,此後的每一圈都是遞減甚至有害的。
從隱藏狀態動態的角度看,研究人員追蹤了四個具體指標。"步長"描述了每一圈中詞語表示向量移動的幅度——從第一圈到第二圈,步長最大,之後逐漸縮小,說明後續循環的修改越來越細微。"角度變化"描述了相鄰兩次修改的方向是否一致——在第三圈開始,角度餘弦值為負數,意味著連續兩次修改的方向相反,模型在來回振盪而非持續優化,正如一個工匠不斷修了又改、改了又修,最終什麼也沒有改善。"有效秩"是一個衡量詞語表示多樣性的指標,可以理解為:模型內部各個詞的表示向量是否能夠撐開一個足夠寬廣的語義空間。有效秩在第二圈達到峰值,此後開始下降,說明從第三圈開始,詞語的表示逐漸"趨同",模型區分不同詞的能力在減弱——就像一盒蠟筆,本來有24種顏色,用到最後很多顏色變得難以區分。最後,"固定點距離"衡量當前狀態離模型願意停下來的穩定狀態還有多遠,這個指標在各循環之間的變化也印證了上述趨勢。
從注意力熱圖演化的角度看,研究團隊追蹤了注意力熵(描述每個注意力頭的關注是分散還是集中)、循環間KL散度(描述相鄰兩循環的注意力分布變化幅度)以及注意力頭之間的相似度。結論非常清晰:循環間KL散度在第二圈時最大,之後急劇跌落並保持在低水平,說明從第三圈開始,模型的注意力路由基本"凍結",不再產生新的資訊流動模式。與此同時,隨著循環次數增加,不同注意力頭之間的相似度不斷攀升,到第三圈時,各個頭已經變得越來越同質化——本來應該各司其職的40個注意力頭,逐漸開始做同樣的事情,這是一種嚴重的冗餘退化。此外,PLT中控制"使用全局緩存還是使用當前循環資訊"的門控值從始至終維持在0.5以上,說明模型在所有循環中都大量依賴第一圈建立的全局緩存,而非從後續循環中獲取真正新鮮的上下文。
從輸出分布變化的角度看,研究團隊引入了"邏輯透鏡"技術——在每一圈結束後,直接用輸出層對當前狀態做預測,看正確答案的排名是否越來越靠前。結果表明,隨著循環深入,正確答案的排名確實在單調上升(排名越靠前越好),但每一圈的推進貢獻在第二圈之後就急劇萎縮。在4次循環的模型中,第四圈的輸出變化雖然在數值上看起來不小,但研究團隊通過與有效秩下降的對照分析判斷,這不是真正的語義精煉,而只是模型在最終輸出層做的一次"最終朗讀"——格式上的整理,而非內容上的深化。
四、來自真實戰場的數字:2次循環的實力究竟有多強
理論分析再精彩,也需要硬數據來支撐。研究團隊在一系列權威代碼能力評測上對四種模型進行了全面對比,評測範圍涵蓋代碼生成、多語言代碼、代碼推理、數據科學與SQL、自動化軟體工程,以及通用工具使用。
在代碼生成領域,2次循環的LoopCoder-v2在HumanEval+(一個業內常用的代碼生成評測,側重嚴格正確性)上得分84.1,相比基礎版本(1次循環,81.1分)有所提升,而3次循環版本降至75.0分。在多語言代碼評測MultiPL-E上,2次循環版本的跨語言平均分為73.9,3次循環回落至69.8。BigCodeBench(側重實際代碼任務)上,2次循環達到46.1分,超越了參數量是其兩倍的14B模型(47.0分)和四倍的32B模型(48.0分)只差一點點。
最令人印象深刻的是自動化軟體工程領域。SWEbench Verified是目前最權威的代碼能力評測之一,要求模型真正解決來自GitHub的真實軟體工程缺陷,而不是做玩具題目。基礎版本(1次循環)得了43.0分,2次循環直接跳到64.4分,絕對增幅超過21個百分點——這對於一個7B參數的模型來說,是一個極為罕見的飛躍。相比之下,Qwen2.5-Coder系列7B、14B、32B模型在這個評測上均為0分(它們不具備自動軟體工程能力),而Kimi-Dev-72B(720億參數)得了60.4分,竟然還低於LoopCoder-v2的64.4分。3次循環版本則跌至27.6分,甚至不及什麼特殊能力都沒開啟的基礎版本。在多語言軟體工程評測Multi-SWE上,2次循環從14.0分提升至31.0分,同樣展現出類似的跳躍。
這些數字放在整個行業背景下來看更具衝擊力:Kimi-K2-Instruct(一個專為代碼優化的頂級模型)在SWEbench Verified上得了69.2分,Claude-Opus-4.5得了80.9分,Gemini-3-Pro得了76.2分。而LoopCoder-v2以70億參數達到了64.4分,差距並不遙遠。這說明通過更聰明的"循環思考"設計,小模型具備了與大模型正面競爭的可能。
五、如果再加上"明說出來"的推理過程,效果會更好嗎
上述分析針對的是"只循環不輸出推理過程"的版本,也就是模型在內部多想了一遍但不說出來怎麼想的。現實中,很多模型會被訓練成"邊想邊說"——先輸出一段推理過程,再給出最終答案,這通常被稱為"思維鏈"(Chain-of-Thought)或"思考模式"(Thinking Mode)。
研究團隊對此進行了一組對比實驗,比較了兩種版本:一種是只使用循環(2次循環的指令微調模型),另一種是在2次循環基礎上疊加了顯式推理過程的"思考版本"。結果表明,在推理密集型任務上,兩者疊加的效果遠超任何一個單獨使用。以LiveCodeBench(一個考察實時代碼競賽能力的評測)為例,2次循環的指令模型得35.4分,疊加顯式推理後升至62.3分,提升了26.9分。在CRUX(代碼推理評測)上,從86.9分升至93.5分。
關鍵的發現在於:這種提升是"超加法"的,即兩者疊加的增益遠大於各自單獨貢獻的增益之和。研究團隊的解釋是,顯式推理和隱性循環在兩個不同的層面上工作:顯式推理負責在文字層面把問題分解成一步一步的子問題,而隱性循環則負責在每一步子問題的表示層面做精煉,讓模型對當前正在處理的那個子問題理解得更深入。兩者就像宏觀規劃和微觀執行的分工,並不重疊,反而相互增強。這個發現為未來的模型設計指出了一個有價值的方向:在測試階段,同時利用"內部循環精煉"和"外部推理展開",可能是效率最高的擴展計算方式。
六、這個研究告訴我們怎麼選擇循環次數
當然,上述發現是基於一種特定的PLT架構和特定的訓練設置,研究團隊也對此保持清醒。他們總結了一套實用的循環次數選擇指南,可以在不需要窮舉測試所有循環次數的情況下,通過觀察有效秩的變化軌跡來做出判斷。
具體邏輯是:如果在某個候選循環次數處,有效秩仍然在上升,說明模型的表示多樣性還沒有飽和,再加一圈可能還有實質收益;如果有效秩已經開始下降,則說明後續循環只會越來越窄化表示,繼續加圈只是在繳納CLP位置偏移的固定稅,而買不到任何新的精煉成果。這個判斷標準只需要在模型內部運行一次前向傳播並計算隱藏狀態的奇異值分布,成本很低,是一個輕量級的診斷工具。
對於PLT架構而言,2次循環是一個穩健的默認設置,它捕獲了最主要的精煉步驟,並且僅需一次額外的前向傳播(在PLT的並行化設計下,延遲和內存幾乎與1次循環相同)。想要在這個基礎上進一步提升性能,比起盲目增加循環次數,更有效的方向可能是結合顯式推理過程,或者探索更智能的自適應偏移機制——也就是讓CLP的位置錯配代價不再是固定稅,而是能夠根據上下文動態調整。
---
說到底,這項研究做的事情有點像心理學裡的"過度思考"研究——研究者發現,在某類決策中,快速直覺有時比反覆權衡更準確,因為過度分析會讓人陷入對細節的反覆糾纏,反而失去對全局的把握。LoopCoder-v2的實驗結果與這個規律驚人地相似:第二圈的循環是清醒的再審視,抓住了第一圈遺漏的關鍵資訊;而第三圈、第四圈的循環更像是在焦慮中不斷推翻自己已經建立好的判斷,最終導致越想越亂。
這對於整個AI領域具有一定的參考意義。當計算資源有限、模型無法無限擴大時,如何設計"更深入思考"的機制是一個值得認真對待的問題。簡單地"再想多幾遍"並不必然有效,關鍵在於理解每一次額外思考究竟在做什麼、帶來了什麼、又犧牲了什麼。這項研究通過內部可解釋性分析給出了一套具體的診斷方法,而不只是停留在經驗性的"試出來的"結論上。
當然,這項研究也有其局限性——所有結論都基於PLT這一特定架構,CLP的位置偏移代價是PLT獨有的結構性代價,其他循環架構未必有同樣的現象。此外,實驗只在代碼任務上進行了大規模驗證,在其他領域(如數學推理、多模態任務)是否有類似的飽和點,仍然有待探索。
如果你對這個研究感興趣,想親自看看論文裡的數學推導和更完整的實驗數據,可以在arXiv上搜索編號2606.18023找到完整原文。
---
Q&A
Q1:LoopCoder-v2是怎麼在不增加參數的情況下提升性能的?
A:LoopCoder-v2採用"循環Transformer"設計,讓同一組參數被多次調用,每次調用都對詞語的內部表示進行進一步精煉。配合併行循環Transformer(PLT)的兩項機制,額外的循環幾乎不增加延遲和內存占用,因此能用接近相同的計算代價實現更深入的"思考"。
Q2:為什麼循環次數從2次增加到3次,LoopCoder-v2的表現反而會下降?
A:研究發現,CLP機制帶來的"位置偏移代價"在每次循環中幾乎固定不變,而每次額外循環帶來的實質性精煉收益則快速萎縮。從第三圈開始,每圈的代價大約是收益的30至45倍,相當於為一塊越來越薄的餅乾付越來越高的稅。此外,模型表示的有效多樣性(有效秩)在第二圈達到峰值後持續下降,說明後續循環反而在壓縮模型能力。
Q3:PLT循環模型的"思考版本"和普通版本有什麼區別,為什麼疊加使用效果更好?
A:普通指令版本只在內部隱性地多循環一遍,不輸出推理過程;思考版本則在此基礎上額外輸出一段文字推理鏈。兩者的提升來自不同層面:隱性循環在向量表示層面精煉每個子問題的理解,顯式推理鏈在文字層面拆解宏觀問題結構,兩者互不重疊,因此疊加使用時效果超過各自單獨使用之和,在LiveCodeBench上的疊加提升高達26.9分。






