灣區大神Beren Millidge:整數tokenization是瘋狂的! 原創
在與語言模型花費了很多時間后,我得出結論,總的來說,tokenization普遍來說是瘋狂的,語言模型能學到任何東西都是一個奇跡。為了深入探討最近一直困擾我的一個愚蠢的例子,讓我們看一下GPT2分詞器(據我所知,GPT3也使用相同的分詞器)是如何對整數進行tokenization的。整數的tokenization是學習和表示數學事實的最基本要素,最終,所有GPT的數學能力都必須建立在這個基礎上。
主要問題在于,這個分詞器沒有以十進制或者任何連貫的格式來表示數字。理想的十進制系統應該為整數0到9分配唯一的token,然后將更大的整數表示為這些唯一token的組合。十進制系統(實際上,以任何連貫的基數來表示整數)允許定義加法、減法、乘法等直接算法。
然而,GPT2分詞器沒有這樣做,事實上,它沒有以任何連貫的基數來表示整數。十進制數0到9是硬編碼在其token集中的,以及其余的ASCII字符,但除此之外,BPE算法還將其他常見的數字塊token化為唯一的token,并且并不總是以連貫的方式。相反,很多整數都被分配了自己獨特的token。如下圖所示:
在GPT2分詞器中前10000個整數的唯一token繪圖。
每一行在這里代表100個整數,因此整個矩陣代表了從1到10000的前10000個整數。如果一個方格被涂成黃色,這意味著該整數被分配了一個唯一的token標識符,如果是藍色,則該整數由一組組合的token編碼。我們觀察到,直到521為止的每一個整數都被分配了自己獨特的token標識符,而且在此之后也有許多數字被分配了自己的獨特標記。在前10000個整數中,有916個唯一的token(所以幾乎有1/10的token是唯一的),數字token占總token空間的約1/50(GPT2的tokenizer大約有50k個token)。這意味著任何涉及這些整數的計算或數學問題必須以某種特殊方式處理,并且純粹基于記憶運作。例如,當給出一個問題像54 + 72 = 126時,模型無法使用正常的加法算法,因為每一個token都是獨一無二的。相反,它必須記憶大量的問題及其答案。基本上,幾乎所有的兩位數和大多數三位數的加減法問題都必須通過記憶而不是連貫和通用的算法來解決。
如果我們更仔細地檢查這個圖,我們會發現即使在前1000個數字之外,仍然有很多獨特的數字。由于某種原因在訓練集中常見的許多可識別的數字被分配了一個唯一的數字,這就需要學習專門的機制來處理涉及這些數字的任何計算。還有一個有趣的特征是在1900-2000區域分配了唯一token的整數帶。這些代表了常見的日期 - 即從1930年到2020年的日期都分配了唯一的token,因為這些日期在訓練集中出現的頻率最高(有趣的是,唯一的token被分配到了2020年,然后突然停止,這使得您可以將tokenizer的創建日期定位在2019年至2020年)。
tokenization的荒謬之處也不僅僅限于許多唯一的token,還包括非唯一的整數是如何被token化的。對于這些數字,模型肯定不會采用連貫的十進制系統。相反,它將整數分成塊,然后以臨時的方式對它們進行token化。整數被分成塊的方式甚至可以在相鄰的數字之間變化。例如,數字2249被token化為“2”和“249”(1-3)。數字2250被token化為“22”和“50”(2-2),而數字“2251”則被token化為“225”和“1”(3-1)。
如果我們重復我們的分析,但為4位數如何被token化的不同類別著色 - 即作為唯一的、1-3長度的token、2-2 token或3-1 token,我們得到以下結果。
在 GPT2 分詞器中復合數字 token 的構成圖。
這里明顯存在不隨機的不同編碼策略分布,每1000行都有一種略有重復的編碼模式。但如果你仔細觀察,你會發現其具體細節相當不一致。最終,這意味著即使是執行簡單的數值算法,比如多位數的加法,模型也必須根據tokenization的具體細節學習一系列特殊情況,從觀察更大數字的tokenization來看,這個問題似乎永遠也解決不了,總會有大數字被不一致地分割成token和偶爾出現的獨特token要處理。作為一個語言模型,真是太難了!
譯自:https://www.beren.io/2023-02-04-Integer-tokenization-is-insane
誰是Beren Millidge?
Beren Millidge是舊金山灣區一家初創公司的聯合創始人。在此之前,Beren花了一段時間共同創立了 Apollo Research,之前Beren曾擔任 Conjecture 的研究主管。Beren曾在牛津大學從事計算神經科學的博士后研究,與 Rafal Bogacz 合作。Beren在愛丁堡大學完成了機器學習和計算神經科學的博士學位,并在蘇塞克斯大學作為訪問學者與 Alexander Tschantz、Chistopher Buckley 和 Anil Seth 合作。
本文轉載自公眾號AIGC最前線
