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