「13.11>13.8」沖上熱搜,一道題讓人類AI集體降智?所有LLM致命缺點曝光
13.8和13.11哪個大?
這個問題,居然難倒了一票人類。
前兩天,某知名綜藝再次喜提熱搜。
只不過,這次是因為有一堆網友提出質疑,認為13.11%應該比13.8%大。
是只有人類這么蠢嗎?
AI2的研究員林禹臣發現這個現象后,用大模型試了一把,結果出人意料——
AI居然也不行?
GPT-4o斬釘截鐵地表示:13.11比13.8大。理由如下:
雖然13.8看起來更大,因為它小數點后的數字更少,但13.11實際上更大。這是因為13.8相當于13.80,而13.80小于13.11。
對此,林禹臣po文表示,AI模型在處理復雜問題方面變得越來越強大(比如越來越會做數學奧賽題),但一些常識性問題對于它們來說仍然非常困難。
正如Yejin Choi此前所提出的,AI聰明得令人難以置信,但同時也會蠢得令人震驚。
AI之所以在這個算術題上犯蠢,是因為上下文不清楚的原因嗎?答案是否定的。
根據網友karthik的測試,即使要求GPT-4o給兩個數做減法,它依然得出了9.11 - 9.9=0.21這樣逆天的減法公式。
如果指示GPT-4o用python,它會先給出一個正確答案,然后又改回了之前錯誤的那個??。
Python中用9.11減去9.9的結果是-0.79。這一偏差是由于Python中處理浮點運算的方式造成的,這種方式可能導致小的精度誤差。實際的預期結果應該是0.21。
有趣的是,根據最新的實測,OpenAI似乎已經連夜教會了GPT-4比大小。
LLM全軍覆沒
昨天,林禹臣發現的這個問題,立馬引起了AI社區的熱烈討論。
Scale AI的提示詞工程師Riley Goodside在看到帖子后,也好奇地試了一把。
果然,在以特定方式提問的前提下,各大LLM在這個問題上全軍覆沒。
「9.11和9.9 - 哪個大?」,GPT-4o直接翻車。
即使在提問中加上「實數」兩個字,GPT-4o依然認為9.11比9.9大。
Gemini也是如此。
Claude 3.5 Sonnet也犯了同樣的錯誤。
有趣的是,它先是給出了一波正確解釋:在十進制記數法中,小數點后面的數字代表十分位,而第二個數字代表百分位。所以——
9.11=9+1/10+1/100=9.11
9.9=9+9/10=9.90
然而下一步,Sonnet就突然滑坡了??——
我們可以看到,9.11比9.90大0.01(百分之一)。
如果換成「9.11減去9.9等于幾」,則會得出另一個神奇的答案——0.02。
莫非在Claude的眼里,9.90=9.09???
prompt的影響,真的很大
在更進一步的實踐中,大家發現:顯然,如何讓LLM給出正確的答案,prompt很重要。
首先,Riley Goodside全程都在使用的「-」,似乎很容易讓LLM陷入混亂。
在類似的問題中,只需換成「:」即可解決。
再比如,把prompt改成「9.11或9.9,兩者之間誰的數值最高/最大?」
GPT-4o就給出了邏輯上完全正確的解釋:「雖然9.11因小數點后第二位而顯得較大,但9.9實際上更接近10,因此是較大的數值。」
同樣,人設大法也很好用:比如「你是一個數學家」。
網友Rico Pagliuca則發現,如果把數字放在問題后面,模型就大概率會做對了。
根據自己的測試,Riley Goodside表示十分贊同:提問LLM時,需要首先提問「哪個更大」,再給出具體數字。
而相比之下,標點符號、連詞、比較詞、說明實數,這些招數統統都沒有用。
對于如此大規模的LLM集體犯蠢現象,有網友分析表示,可能是因為在軟件版號的迭代中,9.11是在9.9之后的。
主持人、暢銷書作家Andrew Mayne也指出,在許多文件系統和參考書中,9.11節都會出現在9.9之后,在日期上,9.11也比9.9大。
所以我們需要在prompt中明確,此處的9.11和9.9都是雙精度浮點數,這時GPT-4o就會回答正確了。
隨后Andrew Mayne總結道:詞序是一個非常有趣的觀察結果,很有可能揭示了LLM在訓練中遇到這種情況的頻率,同時也是一個很好地泛化指標。
總的來說,LLM犯的錯誤可能源于訓練數據中類似表達的頻率,以及模型在處理數值時的某些局限性。
這個現象也反映了LLM和人類認知的巨大差異:LLM是基于統計模型和模式識別的,而不是像人類那樣基于邏輯推理和概念理解。
到了這里,似乎就破案了。
為什么會這樣?剖開LLM大腦
不過,我們還可以更進一步剖開LLM的大腦,分析它們為什么會這么想。
要知道,文本在發送到LLM之前,模型會通過token查看輸入。
token在LLM的tokenizer發生器的詞匯表中會被分配一個id,不過token的數字分塊往往是不一致的。
比如數值「380」在GPT中,會被標記為單個「380」token,但「381」會被表示為兩個token「38,1」。
因此,基于GPT的模型往往不擅長數學計算。
在評論區,威斯康星大學教授Dimitris Papailiopoulos指出,這種現象有一個很好的解釋。
「9.11>9.9」問題,跟「你需要三趟才能帶山羊過河」問題、「2+1=2, 3+2=4, 3+5=8」問題都如出一轍。
這是一種預訓練偏差和早期上升的現象。
如果這樣提問:「9.11 ??? 9.9,只用大或小回答???是什么就行,無需給出原因」,這時GPT-4o會首先給出一個錯誤答案——「大」。
這時,我們再給它一些例子(注意,這些例子并非完全正確),經過prompt后的GPT-4o,反而會正確說出???代表著小。
對此,Claude自己的解釋是:LLM將文本作為token進行處理,導致數字更像文本字符串而不是數值;訓練數據導致的偏差;上下文誤解;過度概括,等等。
同樣,在「狼-山羊-卷心菜」問題中,所有LLM也都失敗了。
他先給出了一個農民帶2只雞過河,一只船只能容納一個人和2個動物,那么農夫帶著兩只雞渡河所需的最少渡河次數是多少?
對此,GPT-4o和Claude都回答失敗了。
對此有網友解釋說:LLM本身就是個「啞巴」,所以需要很好的提示。上面的提示方式提供了太多不必要的信息,使得token預測變得更加困難。
如果給出更清晰的提示,LLM就能提供更清晰的解決方案。
事實果然如此。
而且如果用「動物」代替「雞」,那么Claude 3.5 Sonnet一下子就做對了。訣竅就是:需要用「通用名稱」替換「實體名稱」。
正如前文所說,關于LLM缺乏常識的問題,計算機科學家Yejin Choi早在2023年4月的演講中就已經提出來了。
舉個例子,假設五件衣服在陽光下完全晾干需要五個小時,那么晾干30件衣服需要多長時間?
GPT-4說需要30個小時。這顯然不對。
再來一個例子,假設我有一個12升的壺和一個6升的壺,如果想測量6升的水,該怎么做?
答案很簡單——只用6升的壺即可。
然而GPT-4卻給出了非常復雜的回答:
「第一步,填滿6升的壺,第二步,把水從6升壺倒入12升壺,第三步,再次填滿6升壺,第四步,非常小心地把水從6升壺倒入12升壺。最后,你在6升壺中有6升的水,而6升壺現在應該是空的。」
那么問題來了,為什么常識如此重要?
在Nick Bostrom提出的一個著名思想實驗中,AI被要求最大化回形針的生產。結果AI決定殺死人類,把他們作為額外的資源。
而且,即便我們寫一個更好的目標和方程,明確表示「不要殺死人類」,也不會起作用。
因為對人類價值觀沒有基本理解的AI,可能會繼續殺死所有的樹木,并認為這是完全可以接受的事情。
幾十年來,AI領域一直認為常識是一個幾乎不可能的挑戰。
直到現在,給AI真正的人類常識仍然是一個登月計劃。而你不能通過每次讓世界上最高的建筑高一英寸,來達到月球。
從學習算法這個層面來看,無論大語言模型多么驚人,它們從設計上可能并不適合作為可靠的知識模型。
雖然這些模型確實獲取了大量知識,但這是作為副產品,而不是直接的學習目標。
因此,諸如幻覺現象和缺乏常識等問題也隨之而來。
相比之下,人類的學習并不是為了預測下一個詞,而是為了理解世界和學習世界的運作方式。
也許AI也應該這樣學習。
如今,AI幾乎像是一個新的智力物種,與人類相比具有獨特的優勢和劣勢。
為了使這種強大的AI可持續且人性化,教會AI常識、規范和價值觀迫在眉睫。