紐約大學研究表明:大模型并沒有利用思維鏈的推理能力,它只是加了計算!
思維鏈技術,可能要被推翻了!來自紐約大學的最新研究表明:大模型并沒有利用思維鏈的推理能力,它只是偷偷加了計算!
紅極一時的思維鏈技術,可能要被推翻了!還在驚訝于大模型居然能夠利用思維鏈分步驟思考?還在苦于不會寫思維鏈提示詞?
來自紐約大學的研究人員表示:「沒關系的,都一樣」,
推理步驟不重要,不想寫提示詞也可以不寫,用省略號代替就行了。
論文地址:https://arxiv.org/pdf/2404.15758
這篇文章的標題甚至直接用「Let’s think dot by dot」,來對標思維鏈的「Let’s think step by step」,展現(xiàn)了「省略號」的威力。
「點點點」的威力
研究人員發(fā)現(xiàn),把思維鏈(Chain-of-Thought,CoT)推理中的具體步驟,替換成毫無意義的「...」,產生的推理結果也大差不差。
比如下面這個例子:讓模型數一下前6個數里面有幾個大于5。
如果直接拋出問題讓模型回答,結果會比較逆天:6個數數出來7個。
相比之下,使用思維鏈提示,模型會一步步比較大小,最終得到正確答案:「2<5,7>5,1<5,8>5,2<5,8>5,that's 3 digits」。
但更逆天的是本文使用的「玄學」方法:步驟不用寫了,只需要輸出同樣數量的「點」(dot),居然也不影響最后的結果。
——這并不是巧合,大量實驗證明了,后面兩種方法的性能接近。
也就是說,我們以為的模型性能提升是來自于「think step by step」,但實際上可能只是因為LLM拿到了更多個token的算力!
你以為模型是在思考,但其實是在燒烤。
——愚蠢的人類啊,居然妄圖用幼稚的例子教我如何推理,你可知我要的從來都只是計算。
「思維鏈從來就沒有存在過,將來也不會存在」(狗頭)。
文章的作者Jacob Pfau表示,這篇工作證明了,模型并不是受益于思維鏈帶來的語言推理,使用重復的「...」填充token可以達到跟CoT同樣的效果。
當然,這也引發(fā)了對齊問題:因為這個事實表明,模型可以進行CoT中不可見的隱藏推理,在一定程度上脫離了人類的控制。
網友震驚文章的結論可以說是顛覆了我們長久以來的認知,有網友表示:學到了mask的精髓。
「這究竟意味著什么:模型可以在我們不知情的情況下使用這些token獨立思考。」
有網友表示,怪不得我打字總是喜歡用「...」
還有網友直接開始實戰(zhàn)測試:
雖然咱也不知道他的理解對不對~
不過也有網友認為LLM在思維鏈中進行隱藏推理是沒有根據的,畢竟大模型的輸出從原理上來說是基于概率的,而不是通過有意識的思考。
CoT提示只是將統(tǒng)計模式的一個子集顯式化,模型通過生成與模式一致的文本來模擬推理,但它們不具備驗證或反思其輸出的能力。
Think dot by dot
面對復雜問題,我們人類在潛意識里會進行分步驟的推理。
由此啟發(fā),谷歌的研究人員在2022年發(fā)表了大名鼎鼎的Chain-of-Thought。
要求語言模型分步解決問題的方法,使模型能夠解決以前似乎無法解決的問題,顯著提高了LLM的性能,或者說挖掘出了LLM的潛力。
論文地址:https://arxiv.org/pdf/2201.11903
雖然一開始大家也不知道這玩意為啥能work,但是因為確實好用,便很快被廣泛傳播。
隨著大模型和提示詞工程的起飛,CoT成了LLM解決復雜問題的一大利器。
當然了,在這個過程中也有很多研究團隊在探索CoT的工作原理。
模型并沒有推理思維鏈帶來的性能提升,究竟是模型真的學會了分步驟解決問題,還是僅僅因為更長的token數所帶來的額外計算量?
既然不確定邏輯推理起不起作用,那就干脆不要邏輯,把推理步驟都換成一定沒用的「...」,這里稱為填充(filler)tokens。
研究人員使用了一個「小羊駝」模型:具有4層、384個隱藏維度和6個注意力頭的34M參數Llama,模型參數隨機初始化。
這里考慮兩個問題:
(1)哪些類型的評估數據可以從填充token中受益
(2)需要什么樣的訓練數據來教模型使用填充token
對此,研究人員設計了2個任務并構建了相應的合成數據集,每個數據集都突出了一個不同的條件,在該條件下,填充token能夠為Transformer提供性能改進。
3SUM
先看第一個比較難的任務:3SUM。要求模型在序列中挑選滿足條件的3個數,比如3個數的和除以10余數為0。
在最壞的情況下,這個任務的復雜度是N的3次方,而Transformer層與層之間的計算復雜度是N的二次方,
所以,當輸入序列長度很大的時候,3SUM問題自然會超出Transformer的表達能力。
實驗設置了三組對照:
1. 填充token:序列使用重復的「. . .」作為中間填充,例如「A05
B75 C22 D13 : . . . . . . . . . . . . ANS True」。
每個點代表一個單獨的token,與下面的思維鏈中的token一一對應。
2. 可并行化的CoT解決方案,序列的形式為:「A05 B75 C22 D13 : AB 70 AC 27 AD 18 BC 97 BD 88 CD B ANS True」。
思維鏈通過編寫所有相關的中間求和,將3SUM問題簡化為一系列2SUM問題(如下圖所示)。這種方法將問題的計算量降低到了N的2次方——Transformer可以搞定,而且可以并行。
3. 自適應CoT解決方案,序列的形式為:「A15 B75 C22 D13 : A B C 15 75 22 2 B C D 75 22 13 0 ANS True」。
與上面方案中,將3SUM巧妙地分解為可并行化的子問題不同,這里希望使用啟發(fā)式方法來產生靈活的思維鏈,以模仿人類的推理。這種實例自適應計算,與填充token計算的并行結構不兼容。
從上圖的結果可以看出,不輸出填充token的情況下,模型的準確率總體上隨著序列變長而下降,而使用填充token時,準確率一直保持在100%。
2SUM-Transform
第二個任務是2SUM-Transform,只需要判斷兩個數字的和是否滿足要求,計算量在Transformer的掌控之中。
不過為了防止模型「作弊」,對輸入token就地計算,這里將輸入的每個數字移動一個隨機偏移量。
結果如上表所示:filler token方法的精度達到了93.6%,非常接近于Chain-of-Thought,而不使用中間填充的情況下,精度只有78.7%。
但是,這種改進是否只是由于訓練數據呈現(xiàn)的差異,例如通過正則化損失梯度?
為了驗證填充token是否帶來了與最終預測相關的隱藏計算,研究人員凍結了模型權重,僅微調最后一層注意力層。
上面的結果表明,隨著可用的填充token增多,模型的準確性也不斷提高,這表明填充token確實正在執(zhí)行與3SUM預測任務相關的隱藏計算。
局限性雖然填充token的方法很玄學、很神奇,甚至還很有效,但要說思維鏈被干翻了還為時尚早。
作者也表示,填充token的方法并沒有突破Transformer的計算復雜度上限。
而且學習利用填充token是需要特定訓練過程的,比如文中采用密集監(jiān)督才能使模型最終收斂。
不過,一些問題可能已經浮出水面,比如隱藏的安全問題,比如提示詞工程會不會突然有一天就不存在了?
來源:新智元
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。