你可能聽過一個經典梗:問 AI「strawberry 裡面有幾個 r」,它常常答錯。這不是 AI 數學不好,而是它根本「看不到」每個字母。大型語言模型(LLM)讀文字的方式,是先把句子切成一塊一塊的「詞元」(token)。現在,一群研究人員在《自然》(Nature)期刊發表新方法,不用從頭訓練,就能把現成的大模型改造成一個位元組、一個位元組讀文字的版本,而且需要的訓練量不到原本的 1%。

為什麼 AI 看不到字母?#

先講問題出在哪。慕尼黑大學(LMU)的新聞稿舉了一個很好懂的例子:ChatGPT 背後的模型,會把「LMU München」切成「LM」「U」「München」三塊。對模型來說,「München」就是一整塊,它從來沒有直接看到裡面的 ü、n、c、h 這些字母。

這種切法的好處是效率高,一次處理一大塊,算得快、省資源;壞處就是對字母層級的理解很差。像是把一個單字倒過來拼,對人來說超簡單,對傳統 LLM 卻是出了名的難題。

其實早就有人想到解法:「位元組層級」(byte-level)模型,一次讀一個位元組,以英文來說差不多就是一個字母。這類模型沒有切塊的問題,但一直沒能成為主流,因為從頭訓練一個夠強的位元組模型,成本實在太高了。

「位元組化」:改造而不是重練#

這次的研究團隊來自慕尼黑大學、艾倫人工智慧研究所(Ai2)、劍橋大學、華盛頓大學和倫敦帝國學院,他們提出的方法叫做「位元組化」(byteification),概念很聰明:既然重練太貴,那就拿現成的模型來改。

根據研究團隊的說法,位元組化只需要一般訓練量的不到 1%,大致保留原本模型的實力,同時又拿到位元組層級的好處。改造出來的模型,表現也勝過目前所有已發表、規模相近的位元組層級模型。

Ai2 先前公開過這套方法的成果 Bolmo,做法分兩階段:先把原本模型的核心凍結起來,只訓練外面負責「讀位元組」和「寫位元組」的新元件,讓它學會模仿原模型;接著再把整個模型解凍一起微調。Bolmo 7B 就是從 Ai2 自家的 Olmo 3 7B 改造而來,Ai2 表示它在字母層級理解的測驗上,整體分數比原模型高了將近 20 分。

不只拼字,程式碼跟生物序列也受惠#

研究的最後作者、慕尼黑大學青年教授 Valentin Hofmann 認為,位元組化和位元組層級模型有機會解決 LLM 長期以來的一些毛病。他舉的例子就是倒著拼字:傳統模型很不擅長,位元組化後的模型則明顯好很多。

他也提到,能清楚掌握文字底層結構,在程式碼和生物序列這類領域特別重要。想想也是,程式碼差一個字元就可能整個壞掉;DNA 序列裡的每個字母也都有意義,硬切成一塊一塊來讀,難免會漏掉細節。

更棒的是,這次的模型、程式碼和訓練資料全都公開,其他研究人員可以直接拿去用、拿去改。研究團隊希望位元組化能讓位元組模型真正成為現行 LLM 的實用替代方案。

這邊我想補充一點:對中文使用者來說,「一個位元組約等於一個字母」只適用在英文這類拼音文字。一個中文字在常見的 UTF-8 編碼裡通常佔 3 個位元組,所以位元組模型讀中文時,一個字反而會被拆成好幾份。這對中文到底是好是壞,新聞稿裡沒有特別討論,但我滿好奇有沒有人會拿繁體中文來測試看看。不管怎樣,「不用重練、改一改就能用」這條路一旦走通,位元組模型就不再只是實驗室裡的玩具,接下來就看各家大廠會不會跟進了。

資料來源#

AI 終於看得懂每個字母了!Nature 新研究把現成大模型改造成「逐字閱讀」
https://www.newswise.com/articles/artificial-intelligence-language-models-that-see-every-letter/?sc=rsla
作者
ShaoYu
發布於
2026-10-10
許可協議
CC BY-NC-SA 4.0