TL;DR:草莓數 r 大概是 AI 最有名的翻車之一——它曾經很篤定地跟你說 strawberry 有 2 個 r(正解 3 個)。你現在拿去問新版的 ChatGPT、Claude、Gemini,大多會答對了。但它當初為什麼會錯,其實到現在還沒真的消失:對它來說 strawberry 不是一個個字母排排站,比較像被切成
straw、berry幾塊積木,字母 r 是藏在塊裡面的,它數不到。這一題被補起來了,但換個冷門字、或叫它算字數,還是會露餡。
有個畫面你大概看過,前陣子在網路上還紅過一陣:有人叫 ChatGPT 數 strawberry 裡面有幾個 r,它很有條理、很有自信地回你「2 個」。正解是 3 個。後來這題幾乎變成大家拿來逗 AI 的標準哏。
不過先說一下:我剛剛自己把這題拿去問了 Gemini、ChatGPT、Claude,三家都答對了。畢竟現在都是新版了嘛。所以這篇與其說要笑它笨,不如說是想回頭看那個曾經很經典的翻車,它到底卡在哪,以及那個原因為什麼到現在其實也沒真的走掉,只是這一題剛好被補起來了。
我覺得這件事最好玩的是那個落差。同一個東西,你叫它幫你寫求職信、解釋一段你看不懂的程式碼,它寫得有模有樣,你還會有點佩服;結果叫它數個字母,當機。一個看起來那麼聰明的東西,怎麼會連幼稚園程度的數數都做不到?這中間到底發生了什麼,我覺得還滿值得聊一下的。
因為它看到的不是 s-t-r-a-w-b-e-r-r-y
關鍵其實是,它「讀字」的方式跟你根本不一樣。
你看 strawberry,就是一個字母一個字母排成一排,要數 r 你從頭掃過去、看到一個算一個,簡單到不行。但 AI 不是這樣讀的。它在把字吃進去之前,會先把這一串切成幾塊,大概像 straw 加 berry 這樣兩三塊的感覺(實際怎麼切每家模型不太一樣,你不用記細節,反正就是切塊了)。它眼裡的 strawberry,從來就不是一個個分開的字母,而是這幾塊黏在一起的東西。
問題就在這。你叫它數 r,可是 r 是躲在 straw 跟 berry 這兩塊裡頭的,它手上拿到的是「積木」,不是一顆一顆的「字母」。它根本沒有「逐字母看過去」那一步可以做。它能做的比較像是,憑著它讀過的一海票句子,去猜「strawberry 這個字大概有幾個 r」,然後給你一個數字。它骨子裡一直在做的就是這種「猜下一個最順的東西」,這件事我在 LLM 其實做的事比你想像中更單純 裡聊過。而它猜的時候,一樣是那副很有把握的樣子。(它那個明明不確定卻講得超篤定的毛病,我在 AI 為何能一本正經地胡說八道 裡碎念過,這裡就不展開了。)
對了,這些被切出來的小塊,正式名字叫 token,是 LLM 處理文字的最小單位。它為什麼不乾脆讀整個字、token 又是怎麼切出來的,我在 Token 是什麼?LLM 為何只讀 Token? 裡寫得比較完整,這篇就不重複了——你不看也完全不影響理解,記住「它看的是塊、不是字母」這一句就夠了。(你不信的話,可以把 strawberry 貼進 OpenAI 的 tokenizer 工具,看它實際被切成哪幾塊,滿直觀的。)
所以它不是笨,只是戴了一副不一樣的眼鏡
一旦你接受「它看到的是積木不是字母」這個畫面,有些原本覺得莫名其妙的翻車,突然就沒那麼莫名其妙了。
最常被拿出來笑的另一個,是問它 9.11 跟 9.9 哪個大,它有時候會說 9.11 比較大。你大概會想這也太誇張。但你想想看,對它來說 9.11 跟 9.9 也不是「數字」,一樣是被切成幾塊的符號,它看到 11 比 9 大,順手就覺得 9.11 比較大了。(這題其實眾說紛紜,也有人說跟它讀過太多版本號、日期有關——9.11 在那些情境裡確實排在 9.9 後面。反正不只一個原因,我也沒打算在這裡認真考據。)中文這邊也有對應的狀況,它讀中文一樣是切塊的,一塊可能是一個字、也可能兩三個字黏一起,它手上一樣沒有一把乾淨的「逐字尺」。
那為什麼草莓那題現在又答對了?我自己也好奇,把它丟給幾家新版模型試了一輪,的確都過了。但我猜這比較不是「它突然看得到字母了」,而是兩件別的事:一來這題太紅,網路上到處是「strawberry 有 3 個 r」的討論,等於被它讀進去背起來了;二來新模型被調得比較會主動把字拆開來數,有的甚至會偷偷寫一小段程式去算。底層那個「看的是塊、不是字母」其實沒變。
最好的證據,是你挑一個它沒背過、又不準它慢慢拆的題目,它馬上就破功。最現成的就是「剛好寫 200 個字」這種。這題我自己拿現在的幾家新模型試,還是抓不準,因為它沒辦法一邊生成、一邊精確數自己已經吐了幾個字。要不然叫它數一段你貼進去的長文裡某個字出現幾次,也很容易差個一兩個。講白了,它沒有真的開始看字母,就是草莓這一題剛好被補掉而已。
講到這我自己的結論大概是:這比較不像智商問題,比較像它戴了一副跟你不一樣的眼鏡。它在它擅長的那層——把話講順、抓詞跟詞的關係——其實強得很;只是「精確看到每一個最小符號」剛好是它最模糊的那一層,而數字母偏偏吃的就是這一層。
我自己是覺得啦,這個積木的想法最受用的地方,不是幫它找藉口,而是它讓我對 AI 沒那麼又敬又怕了。知道它哪一層強、哪一層天生模糊,大概就知道什麼時候可以放心用、什麼時候手要自己再動一下。真的需要它數對,有個土辦法是叫它把字一個字母一個字母拆開來寫,等於逼它把積木拆成單塊;再不然乾脆叫它寫段程式去數,通常比直接問可靠。不過老樣子,模型一直在變,這些題它只會越來越會。但至少那個底層的道理還在:下次看到它在某個地方連數數都數錯,你心裡大概可以有個底——它不是笨,它只是沒在看你看的那個東西而已。



