每個 LLM API 都按 token 計費,每個 context window 都用 token 算大小,每次「為什麼帳單這麼貴」的 debug 最後都會回到 token。但大多數人每天用 LLM,從來沒看過一個 token 長什麼樣。這篇講清楚。
Token 大致等於一個字的片段
LLM 讀文字的時候,第一件事就是用 tokenizer 把文字切成 token。Tokenizer 是一個固定的查找表 — 通常有 5 萬到 20 萬個項目 — 模型訓練時就建好,之後永遠用同一個。
英文的話,一個 token 通常是:
- 一個常見的字(”the”、”computer”、”running”)— 一個字一個 token
- 一個常見的子詞片段(”-ing”、”un-”、”ization”)— 一個 token
- 罕見字或不在詞表裡的字,會被拆成單字元
粗略換算:1 token ≈ 0.75 個英文字。所以 1,000 tokens 大約 750 字,差不多兩頁英文文章。
中文(以及日文、韓文)不一樣。現代主流的 tokenizer(Claude、GPT、Gemini)大多把一個中文字算成 1 到 2 個 token。也就是說 1,000 個中文字 ≈ 1,500 到 2,000 tokens。中文每個字比英文每個字貴。
程式碼的 token 比較小,一行 Python 大概 5-15 個 token。
你可以看到實際的切法
想真的看一下,有 tokenizer 試玩工具:
- OpenAI:tiktokenizer.vercel.app 或 platform.openai.com/tokenizer
- Anthropic:
count_tokensAPI - Hugging Face:任何 tokenizer 都能用
AutoTokenizer.from_pretrained(...)載入
貼一段你的文字,直接看模型實際看到哪些 chunk。常常嚇到人:
- “strawberry” 在 GPT 的詞表是一個 token。所以 GPT 以前常數錯字母 r。
- 數字切法很怪 — “1234” 可能是一個 token,但 “12345” 可能拆成 “123” + “45”。
- 結尾的空格有差。”hello” 跟 ” hello”(前面有空格)是不同 token。
- 程式碼結構前後的空白(
{、},等)常常自己佔一個 token,這就是為什麼程式碼的 token 數比字元數推估的還多。
對成本的影響
API 計價以「每百萬 tokens」為單位,輸入跟輸出分開:
- Input token 是你送進去的所有東西:system prompt + 對話歷史 + 這次訊息。比較便宜。
- Output token 是模型吐出來的。比較貴(通常貴 3-5 倍)。
2026 年常見價格(每百萬 tokens):
- Claude Sonnet:約 $3 input,$15 output
- GPT-5:差不多,看 tier 而定
- Gemini 2.5 Pro:便宜些,約 $1-3 input
- DeepSeek V3:超便宜,通常 input 不到 $1
- 自架的 Llama 70B:按 GPU-hour 算,不按 token
這代表 prompt 長度就是你的帳單。每次都送 50K tokens 的 system prompt,單位經濟學會直接爛。
緩解方式:prompt caching(重複 prefix 便宜 5-10 倍)、縮短 system prompt、用 RAG 取代整個知識庫塞進去、簡單問題改用便宜模型(也就是 LLM routing)。
對 context window 的影響
模型有 200K context window,這個上限是 token,不是頁數。所以:
- 100 頁英文文件(約 5 萬字 ≈ 65K tokens)輕鬆塞得下
- 100 頁中文文件(約 5 萬字 ≈ 75K-100K tokens)勉強塞得下
- 100 頁的 Python 專案,看密度差很多
設計 app 時請估 token 預算。不要想「這份文件 5MB」 — 算 token。
對輸出速度的影響
模型一個一個 token 生出來。速度的單位是 tokens per second(tps)。
- 前沿 API(像 Claude Sonnet)輸出大約 50-80 tps
- 小模型(Haiku、Flash)能到 100-300 tps
- 自架 + vLLM / TensorRT-LLM,7B 模型可以推到 500+ tps
如果使用者想要 1,000 tokens 的回答,模型 50 tps 的話,實際牆鐘時間是 20 秒。Chat UI 為什麼一定要 stream — 就是這個原因,不要等整段生完再顯示。
估算速查表
背一下:
- 1 頁英文 ≈ 500 字 ≈ 650 tokens
- 1 頁中文 ≈ 500 字 ≈ 750-1000 tokens
- 1 個一般使用者訊息 ≈ 50-200 tokens
- 1 個正式 app 的 system prompt ≈ 500-3000 tokens
- 1 次 RAG(5 個 ~300 tokens 片段)≈ 1500 tokens
- 1 份長 PDF 報告 ≈ 10K-50K tokens
乘以你的月請求量,你就有一個粗估的月成本 — 在你 ship 任何嚴肅產品前先算一下。
什麼時候不需要太計較 token
如果你只是用 chat 產品(ChatGPT、Claude.ai)的月費版,你不是按 token 付錢 — 一個月 $20,公平使用。在這個情境裡執著於 token 只是浪費時間。
隨意聊天時,你花在優化 prompt 長度的時間,比省下來的 token 錢還貴。
延伸閱讀
- 什麼是 LLM
- 什麼是 context window
- Tokens vs 字數:LLM 計價怎麼算
- 為什麼 input token 比 output token 便宜
- LLM routing:把簡單問題丟給便宜模型