01|什麼是 Token?AI 計費與長度限制的最小單位

🪙 一句話:Token 是 AI 模型「看見」與「計費」的最小單位——理解它,才看得懂 AI 帳單、Context Window 限制、和為什麼中文比英文貴。
一、Token 不是「字」,是「子詞片段」
電腦不認識字,只認識數字。為了把人類語言交給 AI 處理,我們需要先把文字切成小片段、每個片段對應一個編號——這個片段就叫 Token。
| 文字 | Token 切法(示意) |
|---|---|
unbelievable | un + believ + able |
pre-processing | pre + - + processing |
你好世界 | 你好 + 世界(中文常 1 token = 1-2 字) |
Hello world | Hello + world(英文常 1 token ≈ 1 word) |
每個 Token 對應一個整數 ID(叫 token id),AI 模型實際看的是這串整數。
二、Token 的由來:BPE 分詞演算法
現代 AI 的分詞器多半基於 BPE(Byte Pair Encoding):
- 把全部文字拆成 byte(最細粒度)
- 統計「最常一起出現的兩個 byte 組合」
- 把這對組合合併成新 token
- 重複,直到 vocabulary(字典)達到目標大小(通常 5-20 萬)
結果:
- 英文常見字(如
the、and、hello)→ 各佔 1 token - 罕見字、外語、表情符號 → 切成多個 token
- 中文字(3 byte UTF-8)→ 常被切成 2-3 個 token
🔬 這也是為什麼中文 token 數約英文 1.5-3 倍(俗稱 language tax)。
三、怎麼計算 Token 數
線上工具
- OpenAI Tokenizer:https://platform.openai.com/tokenizer
- Anthropic Token Counter:API messages.count_tokens endpoint
程式
# OpenAI 系:tiktoken
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("你好世界")
print(len(tokens), tokens)
# 6 [57668, 53901, 38184, 244, 33503, 250]
# 對照英文
print(len(enc.encode("Hello world")))
# 2
# Anthropic 系:messages.count_tokens API
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $API_KEY" \
-d '{"model":"claude-opus-4-7","messages":[{"role":"user","content":"你好世界"}]}'
四、實用倍率對照
| 語言 | 1 token 約 = | vs 英文倍率 |
|---|---|---|
| 英文 | 4 字元 / 0.75 word | 1×(基準) |
| 中文 | 0.5-1 字 | 1.5-3× |
| 日文 / 韓文 | 1 字 | 2-2.5× |
| 阿拉伯文 / 印地文 | 多 byte | 2-4× |
不同 tokenizer 表現差異:
| Tokenizer | 中文壓縮率 |
|---|---|
| GPT-4 (cl100k_base) | 差,約 2.5× 英文 |
| GPT-4o (o200k_base) | 顯著改善,約 1.7× |
| Claude 3.x/4.x | 約 1.5-2× |
| 中文母語訓練的開源模型 | 約 1.0-1.3×(最佳) |
五、為什麼 Token 數這麼重要
① API 成本
LLM 多半按 input/output token 數計費。中文應用實際成本比英文版本貴 1.5-3 倍。
② Context Window 限制
模型「一次能看見多少 token」是有限的(詳見 Context Window)。中文寫應用要打 1.5 倍折扣。
③ 輸出延遲
模型一個 token 一個 token 生成。輸出愈長,等愈久。中文長文章感覺特別慢就是這原因。
六、常見誤解
| ❌ 誤解 | ✅ 正解 |
|---|---|
| 「一個字 = 一個 token」 | 中英文都不等於——英文常 1 word = 1 token,中文常 1 字 = 1-2 token |
| 「Token 數 = 字數」 | 完全不同的計量單位 |
| 「換大型號就比較便宜」 | 沒這回事,計費仍按 token,模型只是更貴 |
| 「中英混寫就省 token」 | 反而可能增加,因為混寫降低分詞器效率 |
七、實戰建議
- 算錢時用 token 不用字數——估算 ChatGPT/Claude 成本前,先 tokenize 過樣本
- 中文應用先考慮分詞器——同樣 task,DeepSeek/Qwen 比 GPT/Claude 省 30-60% token(但 安全龍蝦 場景可能不能用)
- 長文件先 chunk——切成多個 token-aware 段落
- 試試 system prompt 加「用英文 reasoning,繁中輸出」——複雜推理任務可省 30-50% 的 thinking token