JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

實戰分詞:陷阱、費用與直覺

分詞默默解釋了大型語言模型一長串的怪癖——算術出錯、奇怪的空格 bug、為什麼某些語言更貴,以及圖片如何變成 token。把前面幾篇的機制,化成你每天用得上的直覺。

分詞會滲進每一件事

現在你知道,文字在模型做任何事之前都會先變成 token。實務上的重點是:真正左右你在乎的幾乎所有事情的,是 token 數,而不是字元數:你付多少錢、回覆串流多快、你的提示塞不塞得下。價格是用每 token 費用(cost per token)報的,速度用每秒 token 數衡量,而脈絡長度上限(context length limit)也是用 token 數來算。學會用 token 來思考,是整個主題裡最實用的一項技能。

\text{tokens}\;\approx\;\frac{\text{characters}}{4}\;\approx\;\frac{\text{words}}{0.75}

这条便捷的经验法则——也正是它不可靠的原因:代码、数字和非英文文本都会打破这个比例,所以要运行真正的分词器,而不是靠猜。

經典陷阱,逐一拆解

大多數有名的大型語言模型怪事,其實都是分詞陷阱(tokenization pitfalls)的偽裝。一旦你看見了 token,那些怪癖就不再神祕:

  1. 算術與拼字出錯:模型根本看不到一個個字母或數字。「1234」可能是一個 token,也可能被怪異地切成「12」+「34」,所以「數字元」或「做長乘法」對它來說是真的很難。
  2. 空格有差的 bug:「 hello」(前面有空格)和「hello」(沒有)常常是不同的 token。你提示結尾多一個空格,就可能悄悄改變模型的行為。
  3. 精確字串的脆弱:叫模型重複一個罕見 token,或把一個字的字母倒過來,可能會失敗,因為那個字對它而言是一個不透明的 token,而不是一串字元。
  4. 語言公平性:一個英文字可能是 1 個 token,但同樣的意思用泰文、印地語、甚至中文表達可能要好幾個。這代表非英文提示可能更貴,也更快吃掉脈絡視窗。

位元組層級(byte-level)分詞器能縮小語言差距,也保證沒有任何東西無法表示,但它無法消除差距:分詞器訓練資料中較少見的文字系統,仍然會被切成更多、更小的片段。

在相信任何估算之前,先數 token

因為比例並不可靠,專業的做法是直接跑你的模型實際使用的分詞器,看真正的數量。每個主流供應商都附了一個你可以在本地呼叫的分詞器——把你的提示餵給它,它就回傳 token 清單和長度。這就是你估算費用、確認沒超過脈絡上限、以及除錯空格意外的方法。

prompt = "the cat sat"
ids = tokenizer.encode(prompt)
print(ids)          # -> [1820, 5169, 7493]
print(len(ids))     # -> 3 tokens, this is what you are billed for
虛擬碼:永遠去量測真正的 token 數,而不是相信「字數換 token」的猜測。

記得第 2 篇講的詞彙表大小(vocabulary size)取捨:詞彙表較大的模型,往往用更少的 token 就能編碼同樣的文字,這可能讓它更便宜、也能在視窗裡塞下更多——這還是在比較「每 token 標價」之前。Token 效率,是模型一個真實、可比較的特性。

不只文字:圖片也會變成 token

同樣的想法漂亮地推廣開來。多模態(multimodal)模型透過多模態分詞(multimodal tokenization)來處理圖片:一張圖被切成一塊塊小區塊(patch),每塊變成一個向量,於是這張圖以一串圖片 token(image tokens)的形式抵達,跟你的文字 token 並肩坐在同一個向量空間裡。這就是為什麼供應商把一張圖當成一堆 token 來計費,也是為什麼一張高解析度圖片會悄悄吃掉你脈絡視窗很大一塊——它真的就是更多 token

用一個心智模型收攏整個主題

退一步看,這條管線又短又美。文字被切成詞彙表片段(分詞),每個片段變成一個整數編號,每個編號查出一個學好的向量(嵌入矩陣),而在輸出端,模型替每個 token 評分以挑出下一個——常常透過綁定嵌入(tied embeddings)重複使用輸入那張表。下游的一切——注意力、Transformer 堆疊、最終答案——全都在這些向量上運作。把這道前門弄懂,大型語言模型其餘的部分就不再是魔法,而開始變成一台看得懂的機器。

一图回顾全程:每个 token ID 查出一个学习到的向量,把词语放置为意义空间中的点,其方向能体现 king − man + woman ≈ queen 之类的类比。

示意图:词向量作为空间中的点,king − man + woman ≈ queen。