Token
3 秒看懂
Token(詞元)是深度學習模型處理文本、語音、影像等資料時的最小語義單元。它把原始輸入(一句話、一張圖)切分成模型能“讀懂”的離散符號,模型再將每個符號轉化為向量進行計算。一箇中文詞語可能被拆成多個 token,一段影像可能被切分成多個“影像 token”。Token 不僅是模型推論的載體,也是大型模型 API 計費的基準,是連線人類語言與機器智慧的原子介面。
3 分鐘產業解釋
在大型語言模型(LLM)和多模態模型的產業鏈中,token 處於資料與計算之間承上啟下的關鍵位置。產業視角下,token 的決定性影響體現在三個層面:
-
模型能力與訓練成本:詞彙表的大小和 token 化方式直接決定了模型對多語言、專業術語、程式碼的理解能力。更大的詞彙表可以降低序列長度,但會增加嵌入矩陣的引數量和訓練開銷。訓練資料首先要經過 tokenize 變成 token 序列,這一步的質量左右最終模型的天花板。
-
推論經濟與計費邏輯:OpenAI 等廠商按每千(或百萬)token 收費,token 成為 AI 算力的“貨幣”。上下文視窗(模型一次能容納的 token 數)從 4K 擴充套件至 128K 乃至 1M,直接推高了單次請求的 token 消耗和推論成本,也催生了長上下文壓縮、KV-cache 最佳化等產業需求。
-
產品體驗與安全:token 邊界的劃分會影響下游應用的表現——比如分句、拼寫糾錯、程式碼補全。不合理的 token 化可能導致敏感詞繞過安全護欄,或產生不符合預期的輸出。因此,各大基礎模型廠商都為自家 tokenizer 投入大量研發,其設計也常被視為核心技術的組成部分。
簡言之,token 是整個大型模型價值鏈中“無聲的螺絲釘”,它決定了模型的輸入表示效率、經濟模型和上層應用的體驗邊界。
15 分鐘專家深入
作為 AI 工程師或研究員,你需要從以下幾個維度透徹理解 token:
-
離散化與連續表示的橋樑 原始文本是符號序列,模型內部只接受實數向量。Token 將無限可能的人類語言對映到有限集合 {0,1,…,V-1},再通過嵌入層將整數索引對映為稠密向量。這個對映必須是可逆的嗎?不需要,但分詞器需要保證編碼—解碼(encode-decode)過程是可逆且無損的(即輸入文本經 tokenize 再 detokenize 應恢復原文本),除非有特殊設計(如某些模型故意丟棄空格資訊)。
-
分詞演算法的數學本質 從統計角度,分詞是一個組合最佳化問題:給定語料,尋找詞表 W 使得某種目標函式最優(如最大化語料似然)。常用演算法(BPE、WordPiece、Unigram)都不是最優解,而是基於貪心或機率的啟發式方法。它們都有超引數:詞彙表大小 V、字元覆蓋率、是否加入特殊 token(如 [UNK]、[BOS]、[EOS]、[PAD])。這些超引數在訓練前確定,且不可在模型訓練中調整。
-
預訓練與下游任務的權衡 分詞器的設計必須兼顧預訓練階段的海量無監督資料和下游微調/推論的新資料。若詞表過小,頻繁的詞會被拆成過多的子詞,導致序列變長,增加計算負擔和語義碎片化;若詞表過大,每個 token 訓練樣本變少,嵌入矩陣過稀疏,且容易過擬合。業界大型語言模型常將詞表規模選定在幾萬到十幾萬之間,根據語言數量、程式碼是否納入、多模態對齊需求進行調優。
-
上下文長度(context length)與位置編碼 模型一次能看到的 token 個數,即上下文視窗,由架構和位置編碼共同決定。Transformer 的自注意力計算複雜度與 token 數量的平方正相關,因此長 token 序列的訓練和推論對視訊記憶體、頻寬提出巨大挑戰。基於此派生出線性注意力、稀疏注意力、狀態空間模型等技術路線,其本質都在緩解 token 序列長度帶來的計算壓力。
-
跨模態的“token 化” ViT 將影像切分為固定大小的 patch,每個 patch 線性投影為一個向量,視為“影像 token”(有時加上分類 token)。擴散模型中的 U-Net 也可以將特徵圖視為 token 集合。音訊領域的頻譜切片、點雲端的空間分組,都在做類似的離散化編碼。不同模態的 token 可以在同一序列中交錯排列,從而實現統一的多模態基礎模型。
掌握這些層級的認知,你就能理解為什麼“改個 tokenizer”有時能帶來逼近甚至超過模型架構改進的收益。
技術原理
Token 技術原理的核心包含兩個部分:分詞演算法(從原始文本到 token ID 的對映)和 Token 在模型中的流動(從 token ID 到嵌入,再到上下文表示)。以下以最主流的 BPE(Byte Pair Encoding)為例深入剖析,並給出令牌在模型中的完整生命週期 ASCII 示意圖。
1. BPE 分詞演算法細節
BPE 是一種自底向上的資料壓縮演算法,被遷移到自然語言處理中。它基於字元序列,迭代地將最高頻的相鄰符號對合併成一個新的符號,直到達到預定的詞彙表大小。
訓練階段(詞表建置):
- 準備大規模語料,將所有詞語按字元拆分,末尾附加一個特殊的詞尾識別符號(如
</w>),以便還原詞語邊界。 - 統計所有相鄰符號對的頻次。
- 選擇頻次最高的符號對 (A, B),合併為一個新符號 AB,並將語料中所有連續出現的 A B 替換為 AB。
- 重新統計符號對頻次(此時 AB 參與計算)。
- 重複步驟 3-4,直到詞彙表大小達到預設值 V(包括基礎字元)。
編碼階段(文本轉為 token ID):
- 先將待編碼詞拆分為字元,再按照訓練階段得到的合併規則順序(優先順序佇列)依次替換,將最長的子詞匹配為 token ID。通常採用貪婪演算法:從開始位置,儘可能匹配詞表中最長的子詞(maximum matching),不匹配時回退到更短子詞,原則上不會產生真正 [UNK](除非字元覆蓋率不足)。
- 實際實現中往往結合優先佇列和快取,以達成高速編碼。
解碼階段(token ID 還原為文本):
- 將 token ID 對應的字串串聯,再將詞尾識別符號復原為空格或其他分隔符,即可得到原始文本的無損還原。
2. Token 在模型中的流動
(程式碼塊內為 ASCII 示意圖)
原始文本: "深度學習"
|
v
字元序列 + 詞尾識別符號: '深', '度', '學', '習',
|
v
BPE 合併規則(訓練得到):
('學','習') → '學習'
('深','度') → '深度'
|
v
Token 序列: ['深度', '學習', ] (每個token對應詞表中的一個索引,如 [1542, 1983, 2])
|
v
嵌入層 (Embedding, 矩陣 W_e ∈ R^{V×d_model}):
|
v
初始向量序列: [e_1542, e_1983, e_2] (每個 token 變為 d_model 維的實數向量)
|
v
加入位置編碼 (Positional Encoding):
|
v
輸入 Transformer 的自注意力和前饋網路,最終輸出上下文表示
關鍵引數機制:
- 詞彙表大小 V:嵌入矩陣的引數量 = V × d_model。通常 V 和 d_model 解耦設計;V 增加會提高模型容量,但也增加計算開銷,需要更多資料才能充分訓練。
- 特殊 token:通常包括 [CLS] (聚集序列表示,用於分類)、[SEP] (句子分隔)、[MASK] (遮蔽語言模型)、[PAD] (批處理填充)、[UNK] (未知字元,現代子詞分詞器基本消除) 等,它們都有固定的 ID,在訓練時被賦予可學習的嵌入向量。
- 位置編碼與序列長度 L:模型的最大 token 序列長度受到位置編碼表大小和計算視訊記憶體的限制。若輸入序列超過最大長度,必須截斷;不足則用 [PAD] 填充,並在注意力計算時通過掩碼遮蔽。
3. 子詞分詞的數學優勢
從資訊論角度,BPE 類方法以貪心方式在給定詞彙表容量下實現對語料的有效壓縮(減少序列長度),雖然不能保證壓縮率最大化,但能保持對未登入詞(OOV)的魯棒性:任意新詞都可以分解為已知的子詞單元,避免完全未知的 [UNK] 情況。這為跨語言遷移和程式碼理解提供了便利。
(注:具體模型的分詞器歸屬、詞表具體數字等缺乏本次聯網檢索確證,故以定性機制闡述,避免編造。)
技術演進史
Token 的概念隨 NLP 技術路線不斷演變,主要經歷了以下階段:
-
One-hot 時代(~2013 前):文本被切分為詞(word),每個詞對映為高維稀疏 one-hot 向量,詞彙表規模受限於預定義詞典,OOV 詞直接丟棄或歸為統一未知詞標記。無法捕捉詞間語義關係,且特徵維度爆炸。
-
詞向量時代(2013-2017):Word2Vec、GloVe 等方法將單詞對映為低維稠密向量,但詞表依然是固定詞典,OOV 問題仍未解決。同時,基於詞的 token 化導致序列長度等於詞數,長文本會超出 RNN/LSTM 的處理極限。
-
子詞分詞誕生(2015-2018):BPE(Sennrich 等)被引入神經機器翻譯,解決了罕見詞和 OOV 的問題,使得模型可以用有限的詞彙表覆蓋幾乎無限的詞語。WordPiece(Schuster & Nakajima)被 BERT 採用,通過語言模型似然而非頻率選擇合併單元。Unigram LM tokenization(Kudo)採用反向操作:從大詞表開始,逐步移除對似然貢獻最小的 token,具有機率化建模優勢。SentencePiece(Kudo & Richardson)統一了 BPE 和 Unigram 的架構,處理空格語言,成為多語言模型的首選。
-
Transformer 與統一 token 設計(2018-今):Transformer 架構使長序列建模成為可能,token 化開始與模型架構深度融合。GPT 系列使用的 BPE 變種(位元組級 BPE)將任何 Unicode 字元都納入字元表,徹底消除 [UNK]。T5 使用了 SentencePiece。Llama 等新一代模型進一步最佳化詞表平衡,提升編碼效率。此時 token 已不是簡單的資料預處理步驟,而是影響訓練穩定性、多語言能力、甚至推論快慢的關鍵設計。
-
多模態 token 化(2020-今):ViT 開創影像 patch 作為 token 的先河,CLIP 通過對比學習對齊影像與文本的整體表示,DALL·E 將圖片離散化成影像 token 再通過自迴歸生成。多模態統一 token 序列(圖文交錯排列)成為通向通用人工智慧的技術路徑。
技術脈絡清晰顯示:Token 從離線詞典進化到動態資料驅動,從語言特化走向跨模態統一,其每一次重構都重塑了下游模型的潛能邊界。
技術路線對比
以下表格對比當前主流 token 化技術路線(定性描述,具體歸屬見備註)。
| 維度 / 方法 | BPE(位元組對編碼) | WordPiece | Unigram LM | SentencePiece(架構) | 位元組級 BPE(如某些 LLM) |
|---|---|---|---|---|---|
| 核心思想 | 基於頻次的字元對合並 | 基於似然增益的合併 | 基於整體機率模型刪除低機率token | 集成了多種演算法,統一介面 | BPE 擴充套件到全 Unicode 位元組 |
| 訓練方式 | 自底向上逐步合併 | 自底向上,貪心似然選擇 | 自頂向下,EM 或最佳化刪除 | 可選擇 BPE / Unigram | 與 BPE 相同,但粒度為位元組 |
| OOV 處理 | 若字元覆蓋率100%,無OOV | 若字元覆蓋充分,無OOV | 機率化,稀有詞可被子詞替代 | 由底層演算法決定 | 完全消除 OOV,任何位元組可編碼 |
| 編碼效率(序列長度) | 中~高 | 高 | 高 | 取決於演算法 | 中等(經常更長) |
| 多語言支援 | 需注意空格和字元覆蓋 | 需預處理分詞 | 天然適合空格語言 | 原生支援空格和字元歸一化 | 強,因為基於位元組 |
| 可逆性 | 是(連同詞尾標記) | 是,但需額外邊界標記 | 機率化,需規定貪婪解碼 | 保證無損 | 是,但需位元組解碼 |
| 典型使用場景 | 翻譯、通用文本生成 | 預訓練BERT類模型 | 多語言模型、T5等 | 多語言大規模模型 | 需要完美字元魯棒性的 LLM |
| 超引數敏感度 | 對詞表大小和詞頻閾值敏感 | 對詞表大小敏感 | 對初始詞表和刪除步數敏感 | 由各演算法決定 | 對合並次數敏感 |
注:由於本次聯網檢索未獲取具體模型(如 GPT-4、BERT 等)與演算法確鑿繫結關係,表中“典型使用場景”為基於學術共識的定性概括,不指向具體產品版本。企業實際部署常有定製改進。
上下游
Token 作為深度學習資料管道的“中介軟體”,其上下游生態清晰:
-
上游 – 資料預處理與語料工程
- 原始資料採集:網頁文本、程式碼庫、書籍、語音、影像等。
- 文本清洗與規範化:字元標準化(如全形半形轉換、Unicode 規範化)、特殊符號處理、去重。
- 分詞器訓練:基於領域語料訓練 tokenizer,產生詞彙表和合並規則檔案。
- 序列化儲存:將 tokenize 後的 ID 序列以二進位制格式儲存,提高訓練時資料載入效率。 上游的關鍵是表示保真度和壓縮效率——減少無效 token 佔用、保留語義資訊。
-
下游 – 模型訓練與推論
- 嵌入矩陣的初始化與學習。
- 作為自注意力層的序列輸入,參與整個 Transformer 計算圖。
- 在生成任務中,自迴歸解碼器根據已生成的 token 序列預測下一個 token 的機率分佈。
- 在檢索、安全過濾等應用中,token 可用於建置白名單/黑名單。 下游的核心是計算負載和上下文吞吐能力,無數長序列最佳化技術直接建立在 token 流上。
-
更廣產業關聯
- 雲端廠商與 API 按 token 計費;企業需監控 token 消耗以控制成本。
- RLHF 中的人類偏好資料,也需要 tokenize 對齊,影響獎勵模型的訓練。
- Agent 架構中,函式呼叫(function call)往往以特殊 token 或特定格式 token 序列呈現,銜接工具。
Token 決定了從原始世界訊號到模型可計算形式的“壓縮介面”,其質量波及全棧。
關鍵指標
評測 token 方案和實現的核心指標包括:
- 詞彙表大小 (V):直接影響嵌入引數量和計算開銷。
- 編碼效率:平均每個詞語所需的 token 數量(越低表示壓縮越好),間接影響序列長度和計算量。
- 字元覆蓋率:訓練語料中出現的 Unicode 字元能否被妥善處理。位元組級方案 100% 覆蓋。
- OOV 率 (Out-of-Vocabulary Rate):測試集中出現未登入詞([UNK])的比例,現代分詞器通常為 0。
- 可逆性 (Round-trip Accuracy):文本經過 encode → decode 能否 100% 還原原始字串(忽略空格差異)。對語音/程式碼資料尤其重要。
- 分詞一致性:同一詞在不同上下文下是否被切分為相同 token 序列,低一致性可能損害模型學習。
- 編碼/解碼延遲:對推論吞吐影響顯著,尤其在流式生成場景中要求極低延遲。
- 跨語言遷移能力:在多語種語料上,單一 tokenizer 是否能合理分配子詞單元,平衡各語言效率。
這些指標並非獨立最優,需要根據業務場景(程式碼、多語言、嵌入式、超長文本)做權衡配置。
供需與市場資料
(基於行業趨勢定性描述,未引用本次聯網失敗的確切數字。)
需求端趨勢:
- 大型模型上下文視窗的不斷擴張(從 4K → 128K → 1M+ token)推動單次推論 token 吞吐量指數增長,對高效 tokenizer 和 KV-cache 壓縮的需求急劇上升。
- 多模態模型要求統一的 token 表示,影像、音訊、影片 token 化成為新的“硬需求”,帶動相應 tokenizer 設計和硬體適配的機會。
- 基於 token 的定價模式使得企業使用者極度敏感於 token 效率,催生了對低冗餘、高語義密度 token 化的探索。
- 私人化、垂直領域的模型微調需要定製 tokenizer(例如醫療法律),催生了 tokenizer 訓練工具鏈和服務市場。
供給端趨勢:
- 開源社群(如 Hugging Face tokenizers)提供了高效、並行的實現,大幅降低了更換 tokenizer 的門檻。
- 雲端廠商推出 token 計數、配額管理、成本分析工具,作為 PaaS 的基礎設施。
- 少數初創公司專注於新一代 token-free 模型(如位元組級狀態空間模型),試圖顛覆 token 範式,但尚未成主流。
市場結構定性: Token 本身不是獨立交易的市場單元,但其內在設計已深度嵌入大型模型競爭壁壘中。頭部模型廠商的 tokenizer 被視為閉源資產,而開源社群則推動標準化與複用。未來,隨著通用人工智慧場景複雜化,token 化方案很可能從純統計方法向語義感知、動態自適應演進,這可能重塑模型構架的競爭格局。
代表公司與資本對映
Token 相關的能力分散在模型開發商、AI 基礎設施及工具鏈公司中,列舉典型代表(未檢索到最新資本資料,僅作範式說明):
-
模型開發商
- OpenAI:GPT 系列的 tokenizer 的核心實現和詞表通過 tiktoken 等庫公開,但訓練原始碼等細節可能未完全開放。其位元組級 BPE 設計確保了字元全覆蓋,API 定價直接基於 token 消耗。
- Google:通過 SentencePiece 工具(Kudo & Richardson)影響深遠,T5、PaLM 等模型皆用其 tokenizer,體現該公司在多語言能力上的版面配置。
- Meta:LLaMA 開源模型使用了定製化的 BPE tokenizer,並公開了詳細配置,推動社群複用,強化其開源生態策略。
-
工具鏈與平台
- Hugging Face:提供了
tokenizers庫(Rust 實現),支援 BPE、WordPiece、Unigram 等演算法的極速訓練和推斷,成為事實上的工業標準。其生態粘性在於“tokenizer 即模型元件”的理念。 - 雲端廠商(如 AWS、Azure、GCP):AI 推論服務中集成了 token 計數和成本管理功能,幫助使用者控制大型模型呼叫開銷。
- Hugging Face:提供了
-
新興勢力
- 一些研究性專案和初創嘗試徹底拋棄顯式 token 化,用位元組級模型(如 MegaByte、RWKV 的某些配置)將 token 概念內化到網路結構中,若成功可能降低進入壁壘,挑戰現有“token 護城河”。 資本市場對 token 的直接投資較少,更多落在提高 token 處理效率的硬體(高頻寬記憶體、GPU)、壓縮演算法、以及長上下文模型架構上。
產業判斷邏輯
從產業鏈視角,可圍繞 token 進行以下維度的價值判斷:
-
長上下文基礎設施相關環節:Token 視窗擴大 → 推論時 KV-cache 視訊記憶體需求激增 → 增加對高頻寬記憶體(HBM)、計算儲存一體化方案,以及高吞吐推論晶片的需求。此外,低 bit 量化、稀疏注意力等技術公司也會獲得更多產業驗證場景。
-
token 效率即成本競爭力:能夠用更少 token 表達同樣語義(例如使用更優的詞表或動態 tokenizer)的模型,可在同等定價下提升獲利率,或降低客戶單價獲得市場。關注那些在 token 化上有技術創新、且證明編碼效率優勢的團隊。
-
多模態統一 Token 方案的先行者:能夠將圖文、影片、語音統一為同一 token 流的架構,將大幅簡化多模態模型的訓練和部署,可能引發下一代應用爆發。此類基礎模型團隊或專利壁壘可能形成長期產業價值。
-
token 安全與合規:隨著監管趨嚴,能夠檢測和控制 token 級輸出內容(如防越獄)的工具將成為剛需。提供安全 token 序列修剪、敏感資訊過濾的解決方案存在商業機會。
-
風險提示:token 化方向的徹底顛覆風險——如果無 token 架構(如直接處理位元組的狀態空間模型)成熟,當前基於顯式 token 的技術壁壘可能被繞開。產業觀察需追蹤這一顛覆性技術路線的進展,以及傳統模型廠商的應對策略。
常見誤讀糾偏
-
誤讀 1:“一個 token 就是一個單詞” 實際上,token 遠小於單詞。英文中一個 word 可能由多個 token 組成,例如 “unhappiness” 可能被分為 “un”, “happiness” 或者更細。中文詞語“清華大學”可能被切分為“清華”、“大學”兩個 token。Token 是子詞單元,不是自然語言層面的詞語。API 按 token 計費時,1 個 token 約等於 0.75 個英文單詞或 1 箇中文字元,這是普遍的大致換算,不可等同。
-
誤讀 2:“token 就是嵌入向量” token 是離散的整數索引,進入模型後通過嵌入矩陣才轉換成向量。很多人以為傳進模型的就是詞向量,實則先要有 token ID,隨後在模型的第一層完成查表。在推論 API 中,我們通常只看到 token 計數和生成的文本,內部嵌入對使用者透明。混淆兩者會導致理解模型架構時產生偏差。
-
誤讀 3:“詞彙表大小越大越好” 大詞彙表能減少序列長度,但需要更多的訓練資料才能使嵌入得到充分訓練,否則大量 token 嵌入會欠擬合。同時,如果推論時出現罕見 token,其嵌入可能噪聲較大,反而損害質量。合適的詞彙表規模是資料和計算資源的平衡點,而非單一追求大。
-
誤讀 4:“上下文視窗內的所有 token 都平等參與注意力” 在實現上,為了約束計算複雜度,許多模型使用了局部注意力、稀疏注意力或快取剪枝,實際某些 token 會因掩碼或裁剪而無法參與長距離互動。因此上下文長度上限並非保證所有 token 被無差別關注。同時,不同位置編碼方案(如 ALiBi、RoPE)對遠距 token 的敏感度也不相同。
學習路徑
入門級:
- 閱讀《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》中關於文本預處理和嵌入的部分。
- 使用 Hugging Face 的
tokenizers庫,體驗訓練一個簡單的 BPE tokenizer,檢視分詞結果。 - 理解 BPE 原論文的思想,可閱讀 Sennrich 等《Neural Machine Translation of Rare Words with Subword Units》(2016)。
進階級:
- 研讀 WordPiece 原始文獻(Schuster & Nakajima, 2012)和 SentencePiece 論文(Kudo & Richardson, 2018),對比演算法差異。
- 深入 Hugging Face Tokenizers 庫原始碼(Rust 部分),明白訓練過程中的高效實現。
- 在 Colab 中實踐對中文、程式碼、混合語言的 tokenizer 訓練,並評測編碼效率。
專家級:
- 研究如何將 tokenization 與模型結構結合:分析 T5、GPT、Llama 等不同模型 tokenizer 的選擇原因及對下游效能的影響。
- 閱讀關於 token-free 模型的論文,如《ByT5: Towards a token-free future with pre-trained byte-to-byte models》,探討去 token 化的可能性。
- 瞭解多模態 token 化(如 ViT、DALL·E 的 VQ-VAE tokenizer),掌握離散表示在生成中的應用。
實踐建議: 始終從“編碼+解碼”的可逆性和一致性驗證開始,然後分析序列長度分佈,迭代調整詞表大小、特殊 token。
一句話總結
Token 是深度學習模型的“基本字母表”,它以最小的、可逆的離散單元重構人類語言與世界訊號,決定了模型的輸入效率、表達能力和經濟生態。
延伸閱讀與來源
本文基於深度學習領域公開通用知識撰寫。關鍵演算法論文參考:
- Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. ACL.
- Schuster, M., & Nakajima, K. (2012). Japanese and Korean voice search. ICASSP.
- Kudo, T., & Richardson, J. (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing. EMNLP.
- Hugging Face Tokenizers 官方文件及開源實現 (https://github.com/huggingface/tokenizers).
本次聯網檢索因連線錯誤未能獲取最新產業資料與具體產品版本歸屬,故文中有關大型模型分詞器具體規格、公司產品細節等均未寫入確切數字,僅作方向性描述。讀者可查閱上述原始文獻及各大型模型技術報告獲取即時引數。