Tokens Token 不是語言的單位——它是某一個模型家族壓縮方案的單位。
在模型看到你的文字之前,tokenizer 會先把它剁碎:常見詞保持完整,罕見詞成為碎片,有時只剩原始位元組。每個模型家族從自己的訓練資料學出自己的切分規則——所以同一句話在 GPT-2、GPT-4o 或 Llama 3 上的 token 數並不相同。在下方的實驗室親自試試。
比喻: 就像不同航空公司的行李規定。旅程是同一趟;怎麼分裝進行李箱——以及要收多少錢——完全取決於你登上誰的飛機。
深入:詞彙表與取捨 更大的詞彙表意味著更短的序列,但嵌入表也更大——這是真實的工程取捨。GPT-2 停在約 5 萬個詞條;GPT-4o 帶著約 20 萬個。英文的粗略經驗法則:1 token ≈ 0.75 個詞。其他語言則完全是另一回事——這正是重點。
Tokenization (BPE & WordPiece) Tokenization 是一種學來的壓縮:模型看到的片段,是靠統計共現選出來的,不是語言學家決定的。
Byte Pair Encoding(BPE) ——原本是一種壓縮演算法,如今是主流的分詞方法(GPT、Llama、DeepSeek 都在用)——從原始位元組開始,反覆合併最常相鄰出現的配對,直到達到目標詞彙量。因為合併規則來自訓練資料,詞彙表也承載了那些資料的偏向:" world" 佔一個 token,「語言」卻碎成位元組。
深入:BPE 與 WordPiece 如何運作 BPE 的迴圈:
從單一字元(或位元組)開始 反覆合併最常相鄰出現的配對 達到目標詞彙量時停止 Byte-level BPE 直接在原始位元組上運作,因此任何文字都能被編碼——最壞情況就是一次一個位元組。
WordPiece (Google 為 BERT 開發)與 BPE 類似,但以似然改善而非單純頻率來選擇合併,並以 ## 標記接續片段:
"playing" → ["play", "##ing"]
"unhappiness" → ["un", "##happi", "##ness"] 為什麼重要: tokenization 直接影響效率與成本。GPT-2 用約 5 萬個 token;GPT-4o 約 20 萬——壓縮率與嵌入表大小之間的取捨,由每個家族自行決定。
Embeddings(嵌入向量) Embedding 把意義變成幾何——詞成為空間中的點,相似變成距離。
以高維空間中的密集數值向量來表示詞、token 或概念。模型在訓練中學習嵌入,使語義相近的項目聚集在一起。這些向量捕捉的關係非常豐富——不只是相似度,還有類比和層級結構——支撐著語義搜尋、聚類和遷移學習。
經典範例: vector("king") - vector("man") + vector("woman") ≈ vector("queen")。現代嵌入在數千個維度上編碼了更豐富的關係。
Context Window(上下文視窗) Context window 是模型的工作記憶:它能同時放在心上的一切,多一個 token 都不行。
LLM 可以同時考慮的最大文本量(以 token 計)。更大的視窗能裝下整本書或整個程式碼庫,但注意力的計算成本呈平方成長——而且研究顯示「context rot」:多數模型早在標示上限之前就開始退化,一個 200K 的視窗實務上可能在 130K 左右就不再可靠。
深入:視窗如何成長 Context Window 的演進:
Model 年份 Context Window GPT-3 2020 4K tokens GPT-4 Turbo 2023 128K tokens Gemini 1.5 Pro 2024 1M tokens Claude Sonnet 4 2025 1M tokens Llama 4 2025 最高 10M tokens GPT-5.6 Sol 2026 1.5M tokens