Meta公布BLT新架構:告別token,擁抱patch 原創
Meta發布的BLT架構為大模型擴展找到又一條出路,也開啟了用patch方法取代token的全新可能性。
開篇先提問:我們為什么非得把文本拆分成token?直接用原始字節怎么就不行?
要回答這個問題,我們得先從大語言模型的文本處理方式入手。它們需要用關于常用詞塊的規則將文本拆分成一個個token,而這個標記化過程也一直面臨質疑。無論模型的其余部分在訓練期間如何學習和適應,標記化階段的初始規則都始終保持不變。因此一旦相關語言的訓練數據不足、或者訓練素材的文本格式比較特殊,大模型的處理能力就將大打折扣。
Meta提出的全新字節級標記化(BLT)架構則采用一種完全不同的方法。它不再預先定義token,而是查看文本的原始字節,并根據其可預測程度以動態方式對各字節進行分組。如果下一字節的可預測度極高(例如可補全為一個常用詞),該架構就會將更多字節組合起來;而當下一字節不可預測(例如開始另一新句),則將字節劃入多個較小的組。
使用固定推理預算進行訓練時,模型的擴展趨勢
傳統基于token的模型(例如Llama 2和3)會根據推理預算對模型大小進行縮放。相比之下,BLT架構則能夠在同等預算條件下,同時縮放模型大小與patch大小。patch大小為6和8的BLT模型在性能上迅速超越了Llama 2和3。而在使用更高推理預算時,較大的patch大小(例如8)則對應更佳性能和更高計算效率。上圖中的垂直線所示,為計算效率與性能表現的關鍵交匯點。
這種動態方法具備以下三大核心優勢:
第一,它在性能方面足以比肩Llama 3等基于標記器的頂尖模型,同時以較低的性能損失換取高達50%的推理次數削減。更高的計算效率,意味著該模型能夠以更低資源需求處理文本中的可預測部分。
第二,它能夠更好地處理極端情況。以需要字符級理解的任務為例,包括糾正拼寫錯誤或處理較為凌亂的文本,BLT在這些任務上的表現明顯優于基于token的模型,原因就在于它可以直接訪問并操作單個字符。
第三,它引入了一種新的語言模型擴展方法。在基于標記器的傳統模型中,擴展工作往往面臨一定限制。而BLT架構允許同時增加模型大小和字節組的平均大小,同時保持計算預算不變。這就為構建更高效的大模型開辟了新的可能性。
BLT各核心組件
要了解BLT在實踐中的工作原理,需從以下三大核心組件入手:
1. 輕量級本地編碼器,負責處理原始字節并根據其可預測性進行分組;
2. 大型Transformer,負責處理各字節組(即「patch」);
3. 輕量級本地解碼器,負責將patch表示轉換回字節。
BLT架構包含三大主要模塊:輕量級本地編碼器,負責將輸入字節轉換為patch形式;Latent Transformer,負責處理各patch;輕量級本地解碼器,用于生成下一個字節patch。BLT使用字節n-gram嵌入與交叉注意力以增強Latent Transformer與字節級模塊之間的信息流。與固定詞匯標記化不同,BLT會將字節動態分組為patch,從而保持對字節級信息的訪問能力。
架構中基于熵的分組機制特別值得一提。BLT使用小語言模型實現了令人驚喜的下一字節預測效果。一旦遇到很難預測的字節(例如新單詞的開頭),BLT會創建一個邊界并開啟新的ptach。這樣它就能將更多計算資源用于處理文中最具挑戰性的部分,同時高效處理難度較低的部分。
以下結果令人眼前一亮。在標準基準測試中,BLT的性能已經追平甚至超越了Llama 3,而且在需要字符級理解的任務方面尤其出彩。以測試字符操作的CUTE基準測試為例,BLT的表現比基于token的模型高出25分以上——相應訓練數據則僅相當于最新Llama模型的十六分之一。
8B BLT模型與8B BPE Llama 3的比對結果。二者均使用1T token訓練而成,測試內容為針對噪聲及語言結構的穩健性任務。單項最佳結果以粗體標出,整體最佳結果(包括Llama 3.1)則以下劃線標出。很明顯,BLT在多項任務上的表現均優于Llama 3,甚至超越Llama 3.1。這表明字節級感知具備暴力堆砌訓練數據所難以實現的優勢。
由此看來,未來的語言模型可能不再需要僵化的標記化機制。通過以動態方式直接處理字節,我們或將構建起效率更高、更善于處理人類語言復雜要素的新一代大模型。
原文標題:??Bye Tokens, Hello Patches??,作者:Mike Young
