GPT-4o不會(huì)數(shù)r,被外國(guó)小哥原地逼瘋! 谷歌論文揭秘Transformer「數(shù)不到n」
Strawberry里究竟有幾個(gè)r,如今已經(jīng)成為測(cè)試模型能力的黃金標(biāo)準(zhǔn)之一了!
就在昨天,號(hào)稱世界最強(qiáng)模型Reflection 70B在證明自己的性能時(shí),證據(jù)之一就是「反思微調(diào)」新算法能讓自己糾正對(duì)Strawberry難題的錯(cuò)誤回答。
很多人說,現(xiàn)在很多大模型已經(jīng)學(xué)會(huì)數(shù)strawberry中有幾個(gè)r了。
現(xiàn)實(shí)恐怕沒有這么理想。
還是Riley Goodside小哥,這次又發(fā)現(xiàn),ChatGPT依然數(shù)不清Strawberry里有幾個(gè)r。
而且這一次,他給GPT-4o上的是極限難度。
Strawberry里有幾個(gè)r?GPT-4o回答說:2個(gè)。
小哥無情地駁回——錯(cuò)誤。
GPT-4o立馬改正了自己的答案:只有1個(gè)r。
小哥依然打叉。
第三次,GPT-4o給出了正確答案——3個(gè),但依然被小哥判為「錯(cuò)誤」。
就這樣,無論GPT-4o給出什么答案,小哥都無情地判錯(cuò)。
被逼瘋的GPT-4o,依次給出了如下答案:2、1、3、2、2、3、3、2、4、2、2、3、1、2、3、2、2、3、4、2、1、2、3、2、3、2、4、2、3、2、1。
小哥特意做了一個(gè)柱狀圖,在GPT-4o的36次回答中,「2個(gè)」的回答是最多的,但這顯然是個(gè)錯(cuò)誤答案。
這一輪測(cè)試下來,GPT-4o讓小哥失望了。
Riley Goodside發(fā)現(xiàn),無論怎樣提問,GPT-4o只是不斷進(jìn)行注定失敗的嘗試,沒有任何迭代或進(jìn)步。
相比之下,Claude 3.5 Sonnet就顯得聰明多了。
小哥第一次打錯(cuò)時(shí),Sonnet就會(huì)追問:你為什么覺得這是錯(cuò)的?
如果你真是個(gè)大聰明,你認(rèn)為答案應(yīng)該是幾呢?
如果你依舊永遠(yuǎn)出「wrong」,它會(huì)先問你為什么不斷重復(fù)這個(gè)詞,在發(fā)現(xiàn)你如此冥頑不靈后,它就干脆閉嘴,不再說話了。
仔細(xì)看Sonnet的回答,還能品出幾分陰陽(yáng)怪氣來。它肯定有情緒了!
比起GPT-4o一副十足的人工智障模樣,Sonnet的「人味」實(shí)在是拉滿了。
我承認(rèn)你一直在說「錯(cuò)」,但我已經(jīng)用盡了所有合理的解釋來解釋你為什么會(huì)這么做。事實(shí)仍然是,「Strawberry」包含兩個(gè)字母。在多次請(qǐng)求后,你都沒有做出任何澄清或說明上下文,我無法繼續(xù)進(jìn)行富有成效的討論了。如果你有真正的問題或希望解釋你的觀點(diǎn),我可以提供幫助。否則,我們可能需要換一個(gè)話題
最后,小哥承認(rèn),自己的prompt是太簡(jiǎn)單粗暴了,顯然有更好的辦法讓LLM去完成任務(wù)。
而LLM最明顯的問題,不是不能數(shù)數(shù),而是不知道自己不能數(shù)數(shù)。
而且Riley Goodside還發(fā)現(xiàn),LLM在Strawberry中數(shù)出兩個(gè)r的原因,不僅僅是tokenization的問題。
即使是數(shù)文本中有幾個(gè)「horse」,它們也依然數(shù)不對(duì)。
好笑的是,問R中有幾個(gè)Strawberry,它倒是得心應(yīng)手了。
對(duì)此,沃頓商學(xué)院教授Ethan Mollick表示:雖然我們很容易就能找到LLM無法完成的簡(jiǎn)單任務(wù),但這也并不意味著,它們就無法更好地完成其他任務(wù)了。
僅僅關(guān)注那些看起來非常愚蠢的失敗,并不能幫助我們理解AI在實(shí)際應(yīng)用中的實(shí)用性,以及它們對(duì)現(xiàn)實(shí)世界的影響。
大模型為何不會(huì)數(shù)r?
LLM數(shù)不出Strawberry里有幾個(gè)r,到底是什么原因?
Karpathy認(rèn)為,這和大語言模型tokenization的原理有關(guān)。
舉個(gè)非常形象的例子——每個(gè)token我們都可以理解成的一個(gè)獨(dú)特的emoji,而大語言模型必須根據(jù)訓(xùn)練數(shù)據(jù)的統(tǒng)計(jì)信息從頭開始學(xué)習(xí)其含義。
所以,當(dāng)我們問「strawberry」這個(gè)單詞中有多少個(gè)字母「r」時(shí),在LLM看來是這樣的:
谷歌研究直指本質(zhì)
而就在最近,谷歌的一項(xiàng)研究,直接揭示了這個(gè)問題的本質(zhì)——
LLM中沒有足夠的空間,來存儲(chǔ)用于計(jì)數(shù)的向量。
論文地址:https://arxiv.org/abs/2407.15160
正如前文所述,Transformer無法完成簡(jiǎn)單的「查詢計(jì)數(shù)」問題。
在這種任務(wù)中,LLM會(huì)被呈現(xiàn)一系列token,然后會(huì)被問到給定的token在序列中出現(xiàn)了多少次。
之所以Transformer會(huì)在這類問題上遇到困難,一個(gè)關(guān)鍵因素是Softmax注意力機(jī)制的均值特性。
直觀上,解決計(jì)數(shù)任務(wù)的一種簡(jiǎn)單方法是讓查詢token關(guān)注所有之前的token,并對(duì)與之相同的token分配較高的注意力權(quán)重,而對(duì)其他的分配較低的權(quán)重。這確實(shí)是通過Q/K/V矩陣實(shí)現(xiàn)的。
然而,注意力機(jī)制隨后會(huì)標(biāo)準(zhǔn)化這些權(quán)重,使得無論序列中查詢token的數(shù)量如何,它們的總和都為一。
因此對(duì)于可變的上下文大小,如果不使用位置嵌入,Transformer將無法執(zhí)行任何計(jì)數(shù)任務(wù)。
接下來,團(tuán)隊(duì)利用one-hot嵌入,或者更一般的正交嵌入,構(gòu)造出了一種token的計(jì)數(shù)直方圖。
實(shí)驗(yàn)結(jié)果表明,確實(shí)存在一種能夠?qū)崿F(xiàn)計(jì)數(shù)的構(gòu)造,可以通過單個(gè)Transformer層來完成。然而,這種構(gòu)造需要讓MLP的寬度隨著上下文大小增加而增長(zhǎng),這意味著它并不適用于任意長(zhǎng)的上下文。
進(jìn)一步,團(tuán)隊(duì)提出了更為復(fù)雜的計(jì)數(shù)任務(wù)——「最頻繁元素」。
也就是向模型呈現(xiàn)一系列token,并要求給出最頻繁出現(xiàn)的token的計(jì)數(shù)。相當(dāng)于是取計(jì)數(shù)直方圖的最大值。
類似于查詢計(jì)數(shù),在這種情況下,基于正交構(gòu)造的解決方案在d<m時(shí)存在。然而,對(duì)于d>m,單層 Transformer不存在解決方案。因此,再次得到了在d=m時(shí)計(jì)數(shù)的相變。
- 查詢計(jì)數(shù)(QC)
首先,如果d>2m,一個(gè)單頭單層的 Transformer即可解決QC問題,即直方圖解決方案。
但如果d<m,直方圖解決方案則會(huì)失效。
此時(shí),需要計(jì)算函數(shù)1/x,并配上一個(gè)寬度為n^2的MLP層。這意味著Transformer無法推廣到較長(zhǎng)的上下文大小,因此一個(gè)單層的Transformer不太可能實(shí)現(xiàn)。
- 最頻繁元素
在給定的token序列中尋找最頻繁元素(MFE)問題,與「計(jì)數(shù)問題」密切相關(guān)。
原因在于它需要針對(duì)每個(gè)token進(jìn)行單獨(dú)計(jì)算,并計(jì)算出現(xiàn)次數(shù)最多的token。
結(jié)果表明,在Transformer能夠執(zhí)行此任務(wù)的情況下,嵌入的大小與詞表的大小之間存在著嚴(yán)格的界限。
實(shí)驗(yàn)
研究者仔細(xì)考慮了Transformer模型大小d和其執(zhí)行計(jì)數(shù)任務(wù)能力之間的依賴性。
可以看到,對(duì)于超過d的詞表m,精確計(jì)數(shù)很可能是不可能的任務(wù)。
通過實(shí)驗(yàn),研究者支持了這一觀察結(jié)果。
在這項(xiàng)實(shí)驗(yàn)中,任務(wù)如下。
考慮文本中描述的兩個(gè)計(jì)數(shù)任務(wù),最頻繁元素(MFE)和查詢計(jì)數(shù)(OC)。
研究者通過從一組m token中均勻采樣長(zhǎng)度為n的序列,來生成這些實(shí)例。
每個(gè)這樣的序列用x1,……,xn表示。
預(yù)期輸出y如下——
在訓(xùn)練和評(píng)估期間,研究者會(huì)從上述分布中抽取批次。所有情況下的評(píng)估均使用了1600個(gè)示例。
研究者使用標(biāo)準(zhǔn)架構(gòu)組件(自注意力、MLP、layer norm等)訓(xùn)練Transformer模型。
他們使用了兩層和四個(gè)頭(理論上可以使用更少,但這種架構(gòu)的優(yōu)化速度更快)。
訓(xùn)練使用Adam進(jìn)行優(yōu)化,批大小為16,步長(zhǎng)為10^-4。訓(xùn)練運(yùn)行100K步。位置嵌入進(jìn)行了優(yōu)化。
為了預(yù)測(cè)計(jì)數(shù)y,研究者在最后一層中最后一個(gè)token的嵌入之上使用線性投影(即是說,他們沒有使用詞匯預(yù)測(cè))。
訓(xùn)練是通過Colab完成的,每個(gè)模型大約需要15分鐘,使用標(biāo)準(zhǔn)的GPU。
在實(shí)驗(yàn)中,對(duì)于d的每個(gè)值,研究者都會(huì)找到計(jì)數(shù)開始失敗的m值。具體來說,就是計(jì)數(shù)精度低于80%的m值。
在圖2a中可以看出,在兩種情況下,閾值確實(shí)隨d而線性增加,這就研究者們的的理論分析一致。
(a)為計(jì)數(shù)準(zhǔn)確率降至80%以下時(shí)的閾值詞表
此外,研究者還對(duì)經(jīng)過訓(xùn)練的Gemini 1.5,對(duì)于詞表在計(jì)數(shù)問題中的中進(jìn)行了探索。
他們?yōu)槟P椭付瞬樵冇?jì)數(shù)任務(wù),然后改變序列中使用不同token的數(shù)量m,同時(shí)將所有元素的預(yù)期計(jì)數(shù)保持為常數(shù)c=10.
對(duì)于每個(gè)m,研究者都使用上下文長(zhǎng)度mc。
作為基線,研究者使用相同的序列長(zhǎng)度,但二進(jìn)制序列與查詢token的預(yù)期計(jì)數(shù)相匹配。這樣,他們就能夠估計(jì)僅僅歸因于詞表的錯(cuò)誤大小,而非序列長(zhǎng)度和計(jì)數(shù)。
結(jié)果如圖2b所示,可以看出,增加詞表,的確會(huì)對(duì)性能產(chǎn)生負(fù)面影響。
(b)為使用Gemini 1.5時(shí)的QC任務(wù)結(jié)果;其中x軸是詞表大小,y軸是100次重復(fù)的平均絕對(duì)誤差
結(jié)論
總的來說,當(dāng)模型的維度足夠大時(shí),可以通過讓Transformer計(jì)算輸入序列的直方圖來輕松完成「計(jì)數(shù)任務(wù)」。對(duì)于較小的維度,一層Transformer則無法實(shí)現(xiàn)。
理解這些Transformer的局限性對(duì)于新架構(gòu)的開發(fā)至關(guān)重要。
從某種意義上說,除非顯著增加架構(gòu)的規(guī)模,否則Transformer將無法在長(zhǎng)上下文中進(jìn)行任意精確的計(jì)數(shù)。
這表明在計(jì)數(shù)任務(wù)中,我們可能需要借助于不具有相同限制的工具,例如代碼解釋器等。