
你應該聽說過,現在的AI 大模型很厲害,能寫文章、作詩、編程序,甚至解答高難度的奧數題。但奇怪的是,有些時候,它居然會在最基礎的小學數學題上犯錯!
比如,我們測試某個AI大模型時問它:“‘知識就是力量’這句話包含幾個字?”它的回答竟然是:“這句話包含4 個字。”其實,這還不是個別現象,幾乎所有大模型都曾在數數這樣看似簡單的問題上“翻車”。一個能做對奧數題的大模型,為什么曾經連數數都不會?它們現在又是怎么學會的?
雖然你從小就會數“1、2、3、4……”,但在數學家眼中,數數是一個非常嚴肅的問題。在19世紀,意大利數學家皮亞諾(Peano)提出了著名的皮亞諾公理,用來嚴格地定義自然數。通俗地講,其核心思想是:所有數字從0 開始,每個數字都有一個“后繼者”,你可以通過“走1 步,加1”不斷前進,像跳格子一樣,數到任何你想要的數字。
人類天生就理解這種“一個一個數”的規則。但大模型的思維方式卻完全不同,它們不是按“走1 步,加1”的邏輯來數數的,這也是它們曾經不會數數的重要原因。
雖然數數對我們來說是小菜一碟,但對大模型來說,過去它真的很難做好。下面是造成這個問題的幾個關鍵原因:
對人類來說,“3” 不僅是一個數字,還代表“3 個東西”,我們能通過觀察一張圖片,或者做一個動作(加減),理解數量的真正含義。
大模型雖然也知道數字經常和數量有關,例如,“3個蘋果”“5 只小貓”,但它是從大量文字數據中學到的統計規律和關聯規則,并不是通過“觀察或理解數量本身”學會的,無法從數字中準確感知具體數量,它只是在模仿語言中數字的用法,而不是真的數了一遍。
人類數數時,會在心里默默記住“我已經數了3個”。但大模型是“ 無狀態” 的,它在預測下一個詞時,主要靠短期上下文,缺乏維持“我現在數到幾”的記憶能力。
大模型通常用一個固定大小的“詞表”來代表它能認識的所有基本單位(詞元,token), 每一個token 在詞表中有一個唯一的數字編號,并用一個N 維的“嵌入向量”表示其語義信息。
Token通常比我們理解的字詞更小, 在GPT-3.5-Turbo中,“知識就是力量”由7個token構成,其中“識”由2個token 構成。
大模型進行文字處理的第一步是“分詞”——把句子切成詞表中token的序列。
如果這個詞表只包含到“1000”,那超過的數字就會被當作多個token處理, 這直接影響大模型處理較大數字的準確性。比如,“12345”可能被拆成“123”和“45”,數字剛好被切開,大模型就不太可能數對了。
另外,大模型詞表中相似的token 的嵌入向量表示雖然具有一定的語義相關性( 例如,“5 和4 都是數字”,它們的嵌入向量的距離很近),卻無法表達出數字之間的大小和順序關系(例如,“5比4 大”等),那大模型自然難以完成準確計數和計算。
最近幾個月,AI 科學家和工程師已經采用多種有效方法,讓大模型開始學會數數。
通過增加專門的訓練數據(深度思考的思維鏈數據),并優化模型結構,一些大模型逐漸學會了“ 從0開始,走1步, 加1”的邏輯。它們模仿了皮亞諾公理的數數方式,因此保證了計數的準確性。
這類大模型現在能準確數出句子里有幾個字、段落里有多少句話,甚至能數出圖片里有幾只小貓(看圖數數,這需要結合圖像識別+語言理解+數數邏輯)。
還有一些大模型學會了調用外部數學工具和編寫程序,例如Wolfram Alpha或內置的計算模塊。它們在接到數數任務時,會像學生一樣使用“計算器”獲得計算結果,再用自身邏輯驗證答案是否合理,全面提高了計數的準確性。
通過這些改進方法,大模型不僅能模仿數數,還將能模仿乘法、除法、組合、遞歸等數學運算,學會真正的“數學思考過程”,甚至學會邏輯和因果。
如今,大模型已經可以非常穩定地完成各種數數任務了,這個過程,正是大模型逐步成長的見證。
在強大的深度思考、調用工具和自我檢驗等能力加持下,大模型正在從“會說話”,走向“能計算”“善思考”。也許未來,大模型不只是我們的助手,也會成為我們的數學老師,陪我們一起,一步一步數到無限遠。
(摘自《知識就是力量》2025年第7期,魏克圖)