當前位置: 華文世界 > 科技

谷歌揭秘大模型不會數r原因:嵌入維度是關鍵,不止分詞器問題

2024-09-04科技
克雷西 發自 凹非寺 量子位 | 公眾號 QbitAI
大模型做奧賽題遊刃有余,簡單的數數卻屢屢翻車的原因找到了。
谷歌的一項新研究,發現大模型不會數數的原因,並不是簡單的tokenizer所致,而是沒有足夠的空間來儲存用於計數的向量 。
數出一段話中某個單詞出現的次數,這樣簡單的任務可以難倒許多大模型,GPT-4o、Claude 3.5也無法幸免。
如果再進一步,想要找到出現頻率最高的一個詞,更是難如登天,即便能蒙對給出的具體數量也是錯的。
有人認為是詞匯的token化導致了大模型看到的「詞」和我們的看法不一致,但論文表明,實際情況並不是這麽簡單。
想數清單詞,嵌入維度要夠大
Transformer的計數能力與其嵌入維度d和詞匯量m(指詞匯表中詞的數量,非序列長度)的關系密切相關。
詳細的原因,就涉及到了Transformer統計詞頻時的機制。
Transformer透過一種特殊的嵌入方式,利用嵌入空間的線性結構,巧妙地將計數問題轉化為了向量加法 。
具體說是將每個詞對映到一個獨特的正交向量上,在這種表示下,詞頻可以透過對這些正交向量求和來簡單地計算 。
然而,這種機制的局限性在於,它要求詞匯表中的每個詞都有一個獨立的正交向量表示,因此嵌入維度必須大於詞匯量 。
嵌入維度不足時,詞向量就無法保持正交性,詞頻的線性疊加也就無法實作了。
此時Transformer要實作計數,可以透過註意力機制(CountAttend)來實作,但需要一個隨序列長度n線性增長的大型「逆轉MLP」層。
具體來說,模型首先透過註意力賦予被查詢詞較大的權重,再利用位置編碼將註意力權重提取到值向量的最後一個元素,這個元素實際記錄了被查詢詞的出現頻率的倒數。
這意味著,模型需要一個大小為O(n)的MLP層來計算1/x函式(x為某個詞出現的次數)。
但進一步分析表明,任何常數層ReLU網路都無法在o(n)的神經元數量下逼近1/x函式 。
因此,對於固定規模的Transformer,這種方案無法推廣到任意長度的序列。當序列長度超出訓練集長度時,模型的計數能力會急劇惡化。
長度非主要因素,詞匯表中數量是關鍵
為了驗證這一結論,作者一共進行了兩個實驗。
第一個實驗,是在一個從頭開始訓練的Transformer模型上進行的,具體有關參數如下:
使用一個由兩個Transformer層、四個註意力頭組成的標準模型; 嵌入維度d的取值範圍為8到128; 對每個固定的d,詞匯量m從5到150變化,分別測試20個不同的值; 模型使用Adam最佳化器從零開始訓練,批次大小為16,學習率為10^-4,訓練10萬步。 訓練和評測數據透過隨機采樣生成。首先從大小為m的詞匯表中均勻采樣n個詞,構成一個長度為n的序列。
序列長度n設定為n=10m,平均每個詞出現的次數固定為10次,一共使用了1600個樣本進行測試。
作者發現,隨著詞匯量的增加,模型的計數準確率呈階梯狀下降,臨界點恰好出現在詞匯量超過嵌入維度的時刻 。
為了進一步量化模型的計數能力,作者定義了一個指標m_thr,表示模型的計數準確率下降到80%時的臨界詞匯量。
直觀地說,m_thr反映了在給定嵌入維度下,模型可以「承受」的最大詞匯量,m_thr越大說明模型的計數能力越強。
結果顯示,對於計數(QC)和找出最高頻詞(MFC)的任務,m_thr都隨嵌入維度d的增大而近似線性增長 。
第二個實驗則是在預訓練的Gemini 1.5模型上開展,在這個實驗中,作者更關註詞匯量對計數能力的影響。
他們設計了一系列計數任務,每個任務使用不同大小的詞匯表,並把每個詞在序列中出現的平均次數固定。
這意味著,在實驗組當中,詞匯量越大,序列長度也就越長。
作為對照,作者還設定了一個「Binary Baseline」,詞匯表中只有固定為兩個詞,但序列長度與主實驗組相同。
這樣一來,就可以判斷出帶來模型計數誤差的究竟是詞匯量還是序列長度。
實驗結果顯示,隨著詞匯量的增加,Gemini 1.5在計數任務上的平均絕對誤差顯著上升 ,而「Binary Baseline」的誤差要低得多。
這表明,詞匯量的增加 ,而非序列長度的增長,是導致大模型計數能力下降的主要原因。
不過作者也表示,雖然這項研究一定程度上劃定了大模型計數能力的上下界,但這些界限還不夠緊致,距離理想的結果還有一定差距。
同時,作者也沒有探究增加Transformer的層數是否會改變這一結論,需要未來開發新的技術工具才能進一步驗證。
論文地址: https://arxiv.org/abs/2407.15160