本篇摘要
解釋 AI 的 Token 是什麼、業界怎麼計算與計價。核心判讀是 Token 沒有跨廠商標準——詞彙表屬於模型權重的一部分、訓練後不可更改,標準化沒有技術著力點;業界統一的只有計價結構(每百萬 Token、輸入與輸出分開、輸出約為輸入的四到五倍)。內容含 BPE 切字原理、中英文與程式碼的換算經驗法則、中文 Token 效率為何因模型而異、對話成本接近平方成長的機制,以及用 count_tokens 實測而非拿 tiktoken 代算的理由。
- Token 沒有跨廠商統一定義;詞彙表是模型權重的一部分,訓練完成後不可更改。
- BPE 詞彙表規模通常在五萬到二十萬條之間。
- 英文約 1 Token 對應 4 個字元、0.75 個單字;中文約 1 個漢字對應 0.6 到 1.5 Token。
- UTF-8 一個漢字佔三個位元組,詞彙表未收錄的中文詞會退化成接近按位元組切分。
- 業界計價單位一律為每百萬 Token,輸入與輸出分開計價,輸出通常貴四到五倍。
- 2026 年年中 Anthropic 官方 API 參考價:Claude Opus 5 輸入 5 美金、輸出 25 美金;Sonnet 5 為 2 與 10 美金;Haiku 4.5 為 1 與 5 美金(每百萬 Token)。
- 模型本身沒有記憶,每輪對話需重送全部歷史,因此長對話成本接近平方成長而非線性。
- prompt caching 的快取讀取價格常約為正常輸入的十分之一;批次處理通常打五折。
- 拿 OpenAI 的 tiktoken 估算 Claude 用量會低估約百分之十五到二十,中文與程式碼落差更大。
- Claude 在 Opus 4.7 世代更換過 Tokenizer,同一段文字的 Token 數與前一代不同。
本篇目錄(11 節)
先給結論:Token 沒有業界統一定義。它是每一個模型訓練時就定死的「切字表」,同一段文字丟給不同模型,切出來的數量不一樣,甚至同一家公司的不同世代模型也不一樣。所以「一個 Token 等於幾個字」這個問題,只有經驗法則,沒有固化指標。
真正被業界統一下來的,是計價的結構——每百萬 Token 多少錢、輸入與輸出分開算——而不是 Token 本身。這個差別在你要做成本試算表的時候會變得很致命。
Token 是什麼:它的目標是壓縮,不是語意
Token 是模型把文字切成的最小處理單位。切法來自一類叫 BPE(Byte Pair Encoding)的演算法,三個步驟:
- 拿巨量語料統計,把最常一起出現的字元組合反覆合併。
- 合併出一本詞彙表,規模通常在五萬到二十萬條之間。
- 之後所有輸入都拿這本表去比對切割。
關鍵在於,這套演算法的目標是壓縮,不是理解語意。常見的字串——英文的 the、and,中文的「的」「因為」,程式碼裡的 function——整串算一個 Token;罕見的詞則會被拆碎,人名、專有名詞、打錯的字經常被切成三到五個 Token。
所以 Token 不是「字」,也不是「詞」,它是「這個模型認得的最小組件」。這是理解後面所有成本問題的前提。
為什麼不可能有統一標準
這點我一開始也覺得奇怪:都 2026 年了,這麼基礎的計價單位怎麼會沒有標準?
答案是詞彙表屬於模型權重的一部分,訓練完就不能改。它本質上是模型的一個零件,不是一份外部規格——標準化在技術上根本沒有著力點。你不可能要求兩家公司用同一本詞彙表,那等於要求他們用同一個模型。
延伸出來一個更容易踩到的狀況:同一家公司換代時也會換 Tokenizer。Claude 在 Opus 4.7 那一代就換過,同一段文字的 Token 數與前一代不同。如果你的成本模型是去年建的,換代之後那張表就已經不準了,而且它不會報錯,只會讓你的預估默默偏掉。
經驗法則:估算可以用,報價不能用
| 內容類型 | 大致換算 | 備註 |
|---|---|---|
| 英文 | 1 Token 約 4 個字元,約 0.75 個單字 | 業界最常引用的粗估 |
| 中文 | 1 個漢字約 0.6 到 1.5 Token | 區間很寬,原因見下節 |
| 程式碼與 JSON | 明顯偏高 | 縮排、大括號、引號都要錢 |
| 圖片 | 依尺寸換算 | 一張圖常見一千到兩千 Token |
這張表的用途只有一個:讓你判斷「這件事值不值得做」。想抓個大概、決定要不要投入,用這個就夠;但只要牽涉到報價、預算或對客戶承諾,這張表就不能用了,因為它的誤差在中文與程式碼上可以到兩倍。
中文為什麼吃虧,而且吃多少不一定
UTF-8 編碼裡一個漢字佔三個位元組。如果那個模型的詞彙表收錄了你用的那個詞,可能兩三個字併成一個 Token;如果沒收錄,就會退化成接近按位元組切,一個字吃掉兩到三個 Token。
所以中文的 Token 效率,完全取決於那個模型的中文語料有多厚。這是一條很少被講清楚的成本線:同樣一段中文,不同廠商的模型成本可能差兩倍以上,而你從單價表上完全看不出來。
這也是為什麼我不太相信「單價比較」這種比法。單價低不等於便宜——一個中文 Token 效率差三成的模型,單價便宜兩成,實際上還是比較貴。
計價結構:這才是業界共通的部分
| 項目 | 業界慣例 |
|---|---|
| 計價單位 | 一律是每百萬 Token 多少美金 |
| 輸入與輸出 | 分開計價,輸出通常貴四到五倍 |
| 快取(prompt caching) | 重複的前綴寫進快取後,讀取常只要正常輸入的十分之一 |
| 批次處理 | 不需即時回應的批次任務通常打五折 |
| 思考型 Token | 算在輸出,即使你看不到內容也照付 |
以 2026 年年中的 Anthropic 官方 API 為例,Claude Opus 5 大約是輸入五美金、輸出二十五美金;Sonnet 5 是二美金與十美金;Haiku 4.5 是一美金與五美金。價格會變,我列這幾個數字不是要你拿去報價,是要你看出那個結構——輸出永遠是輸入的四到五倍。
這個結構會直接改變你的設計決策。一個會產出長篇報告的功能,和一個只做分類、輸出三個字的功能,就算輸入量一樣,成本可以差一個數量級。要壓成本,先看的是輸出那一欄。
最容易被低估的一件事:成本不是線性的
這是我認為最值得單獨拉出來講的一點。
模型本身沒有記憶。每一輪對話,都要把前面全部的歷史重新送一次,才能讓它知道你們剛剛在講什麼。所以第二十輪你講的那句「好」,實際計費是把前十九輪的全文再算一次輸入。
用數學的講法,長對話的成本成長接近平方,不是線性。實務上會推出三件事:
- 長對話的成本集中在後段,不是平均分布。你在第三輪覺得很便宜,第三十輪的單輪成本可能是它的十倍。
- 系統提示是每一輪都在重複計費的固定成本,不是開頭付一次就沒事。一份寫得很詳盡的角色設定,你每講一句話就付一次。
- 快取機制就是為了這件事存在的。把不變的前綴固定住,重複的部分用約十分之一的價格讀回來,這是目前對長對話最有效的一招。
如果你在評估自己的用量落在哪個區間,我另外寫過一篇把本地部署與雲端訂閱的成本從頭算一次的文章,裡面有每月 Token 用量對應的決策門檻,可以接著看:本地部署 AI 的完整試算。
要精確數字,只有一個方法
用那個模型自己的 Tokenizer 實測。
Anthropic 提供 count_tokens 這個端點,呼叫時必須帶上你實際要用的模型代號,因為不同模型數字不同。OpenAI 那邊對應的是 tiktoken 這個套件。
這裡有一個常見的誤差來源:拿 tiktoken 去估 Claude 的用量,會低估大約百分之十五到二十,中文和程式碼的落差更大。兩家的切字表不同,本來就不該互相代用。我看過不只一份成本試算表是這樣算出來的,結果是實際帳單比預估高出兩成,而且找不出原因。
四種情境,該用哪一種算法
| 情境 | 該用的方法 |
|---|---|
| 抓個大概,決定要不要做 | 經驗法則,英文除以四、中文乘以一 |
| 要報價、要進預算 | 用正式上線的那個模型代號跑 count_tokens 實測 |
| 已經上線、要控成本 | 看每次回傳的用量欄位,尤其是快取命中率 |
| 跨廠商比價 | 拿同一份樣本分別用兩家的 Tokenizer 實測,不能只比單價 |
這四格的差別不在精確度,而在你會拿這個數字做什麼決定。決定「要不要做」的時候估錯兩成沒關係;決定「跟客戶收多少錢」的時候估錯兩成,那兩成是從你的利潤裡出。
最後回到開頭那個問題:一個 Token 是什麼?它是那個模型認得的最小組件,而每個模型認得的東西不一樣。接受這件事,你的成本模型才會建在對的地基上。
本文關鍵字:Token、Tokenizer、BPE、AI 成本、LLM 計價、prompt caching、count_tokens