語言模型的下一個典範:當 Byte 取代 Token,真正的挑戰在計算架構
長上下文的競賽,關鍵不在於喊出更大的數字,而在於底層架構的革新。當我們從 token 移向 byte,語言理解的挑戰就轉化為計算效率的挑戰。MEGABYTE 模型透過分層設計,證明了即使是百萬位元組的長序列,也能在不犧牲效能的前提下進行處理,這為真正的「無分詞」模型鋪平了道路。
業界對長上下文(Long Context)的追求近乎狂熱,但多數討論都停留在「窗口可以開多大」的口號層級。我認為,真正的挑戰不在於概念,而在於實踐。
當語言模型的基本處理單位從 token(詞元)轉向更底層的 byte(位元組),我們面對的核心問題就從語言學的範疇,轉移到了計算架構的設計。要撐住真正海量的上下文,關鍵在於分層式的系統設計,而非更大的記憶體或更強的硬體蠻力。
這正是 MEGABYTE 這篇研究帶給我的最大啟示:它證明了透過巧妙的多尺度架構,我們有能力處理百萬位元組等級的序列,讓「無分詞」(Token-free)模型在長文本任務上具備了與主流分詞模型一較高下的潛力。
為什麼我們需要拋棄 Token?
長久以來,分詞(Tokenization)是建構語言模型的基礎。我們將文字切分成有意義的單位(token),再將這些單位轉換成模型能夠理解的數字向量。這套流程行之有年,但它本身就是一種權衡,甚至可以說是一種「必要之惡」。
首先,分詞器依賴固定的詞彙表。這意味著任何不在詞彙表中的字詞(例如新創詞、特定領域的術語、程式碼中的變數名,甚至是拼寫錯誤)都會成為「未知詞」(Out-of-Vocabulary, OOV),模型難以正確理解其意涵。
其次,分詞演算法本身帶有偏見,它可能對某些語言或文體處理得很好,卻在另一些情境下表現拙劣。例如,一個以英文語料為主的 BPE 分詞器,在處理亞洲語言或多種語言混合的文本時,往往會產生大量無意義的碎片。
為了解決這些根本性問題,學術界早已開始探索「無分詞」模型,直接在更原始的字元(character)或位元組(byte)層級上運作。像是 Google 的 CANINE 和 ByT5,都試圖建立一個更通用、不受詞彙表限制的語言模型。這個方向的優點顯而易見:模型能以最原始的形式看見所有文本,沒有資訊損失,也沒有分詞偏見。理論上,這才是通往真正通用語言理解的道路。
從 Token 到 Byte,我們換來了什麼新問題?
然而,天下沒有白吃的午餐。從 token 轉向 byte,我們用語言學上的純粹性,換來了計算上的巨大挑戰。這個挑戰的核心,源自於 2017 年那篇奠定現代 AI 基礎的論文 Attention Is All You Need 中提出的 Transformer 架構。
Transformer 的自注意力機制(Self-Attention)是其強大能力的來源,但也是它最大的弱點。其計算複雜度與輸入序列長度的平方成正比,也就是 O(n²)。這意味著如果序列長度增加一倍,計算量和記憶體需求就會變成四倍。當我們使用 token 時,一段 1000 字的文章可能被切分成 1500 個 token。但如果換成 byte,同樣的文章可能會變成超過 3000 個 byte(以 UTF-8 編碼的中文字為例)。序列長度輕易就翻了一倍以上。
在動輒數十萬 token 的長上下文場景中,這種平方級的增長是毀滅性的。一個能處理 32k token 的模型,根本不可能直接將同樣的架構套用在 32k bytes 上,更遑論處理百萬位元組(megabyte)等級的文件、程式碼庫或整本書了。這就是為什麼早期的無分詞模型,如 Charformer,雖然理念先進,卻難以擴展到真正的長序列任務上。
MEGABYTE 的分層架構:像處理影像一樣處理文字
MEGABYTE 提出的解決方案,我認為是典範轉移級別的。它沒有試圖去「優化」那個 O(n²) 的瓶頸,而是直接繞過了它。它的核心思想是「分而治之」,透過一個多尺度的分層架構,將一個不可能完成的計算任務,拆解成許多個可管理的小任務。
這個架構可以分成三個主要部分,巧妙地將一個不可能完成的計算任務,拆解成許多個可管理的小任務:
Patch Embedder:切分原始位元組序列
首先,MEGABYTE 會將極長的 byte 序列切分成固定長度的小區塊(patches)。這一步看似簡單,卻至關重要,它為後續的並行處理打下了基礎,讓模型能以更細緻的粒度來處理原始輸入。
局部模型(Local Model):處理區塊內部細節
接著,一個相對較小的 Transformer 模型會「並行」處理這些小區塊。由於每個小區塊的長度是固定的,所以計算量完全可控。這個階段的目標是捕捉每個區塊內部的局部依賴關係,並將其壓縮成一個代表該區塊語義的向量(embedding)。想像一下,這就像是先讓模型仔細閱讀每個段落,理解其核心內容。
全域模型(Global Model):整合全局上下文
最後,另一個規模較大的 Transformer 模型會接收所有局部模型輸出的向量序列。因為它處理的是「區塊的摘要」而不是原始的 byte,所以序列長度被大幅縮短了。這個全域模型負責建模區塊之間的長距離依賴關係,捕捉全局的上下文。這一步就像是將每個段落的摘要串聯起來,理解整篇文章的脈絡。
這種設計的精妙之處在於,它將一個單一、巨大、無法處理的注意力矩陣,分解成「許多個小的局部矩陣」和「一個中等大小的全域矩陣」。這在計算上是可行的,也讓模型能夠同時兼顧細節(局部模型)與大局(全域模型)。
透過這種設計,MEGABYTE 成功地將一個自回歸 Transformer 擴展到能夠處理超過 **100 萬個 byte** 的序列長度,同時在生成長序列時,其每個步驟的成本僅與序列總長度成「次線性」(sub-linear)關係。這在計算效率上是巨大的突破,也讓 byte-level 模型第一次在長文本建模的競技場上,擁有了與 token-level 模型正面對決的資本。
總結來說,長上下文的未來,不在於無止盡地擴大注意力窗口的行銷數字,而在於回歸計算機科學的本質。MEGABYTE 的分層架構,讓我們看到了一條清晰的路徑:當我們願意從根本上重新思考模型的計算流程,即使是面對百萬位元組這種過去難以想像的序列長度,也能找到兼具效率與效能的解決方案。這場競賽的下半場,比的將不再是語言學的巧思,而是系統架構的智慧。
延伸閱讀
- MEGABYTE: Predicting Million-byte Sequences with Multiscale Transformers
- ByT5: Towards a token-free future with pre-trained byte-to-byte models
- Attention Is All You Need
我是江中喬,一位具有 TPM 與產品管理背景的 AI 系統建構者,目前專注於 AI 認知增強系統與多 Agent 協作架構的設計與實踐。