---
title: "一個 Token 到底是多少字？AI 計價單位沒有業界標準這件事"
url: https://joelin.cc/p/9770
source: https://joelin.cc/p/9770
id: 9770
slug: "what-is-an-ai-token-and-how-billing-works"
pubDate: 2026-09-15
date_modified: 2026-09-15
updatedDate: 2026-09-15
schema_type: BlogPosting
description: "Token 沒有業界統一定義，它是每個模型訓練時就定死的切字表，同一段文字在不同模型會切出不同數量。這篇把 BPE 原理、中英文換算經驗法則、計價結構，以及對話成本呈平方成長的陷阱一次講清楚，並說明為什麼單價低不等於便宜。"
ai_summary: "解釋 AI 的 Token 是什麼、業界怎麼計算與計價。核心判讀是 Token 沒有跨廠商標準——詞彙表屬於模型權重的一部分、訓練後不可更改，標準化沒有技術著力點；業界統一的只有計價結構（每百萬 Token、輸入與輸出分開、輸出約為輸入的四到五倍）。內容含 BPE 切字原理、中英文與程式碼的換算經驗法則、中文 Token 效率為何因模型而異、對話成本接近平方成長的機制，以及用 count_tokens 實測而非拿 tiktoken 代算的理由。"
key_facts: ["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 數與前一代不同。"]
categories: ["商業/科技前沿參考"]
tags: ["Token", "AI成本", "LLM", "Tokenizer", "prompt caching"]
authorship:
  origin: written
  ai_role: assist
entity_ids:
  author: https://me.joelin.cc/#joe
  publisher: https://me.joelin.cc/#joelincc
---

# 一個 Token 到底是多少字？AI 計價單位沒有業界標準這件事

## 摘要

解釋 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 數與前一代不同。

先給結論：Token 沒有業界統一定義。它是每一個模型訓練時就定死的「切字表」，同一段文字丟給不同模型，切出來的數量不一樣，甚至同一家公司的不同世代模型也不一樣。所以「一個 Token 等於幾個字」這個問題，只有經驗法則，沒有固化指標。

真正被業界統一下來的，是計價的結構——每百萬 Token 多少錢、輸入與輸出分開算——而不是 Token 本身。這個差別在你要做成本試算表的時候會變得很致命。

## Token 是什麼：它的目標是壓縮，不是語意

Token 是模型把文字切成的最小處理單位。切法來自一類叫 BPE（Byte Pair Encoding）的演算法，三個步驟：

1. 拿巨量語料統計，把最常一起出現的字元組合反覆合併。
2. 合併出一本詞彙表，規模通常在五萬到二十萬條之間。
3. 之後所有輸入都拿這本表去比對切割。

關鍵在於，這套演算法的目標是壓縮，不是理解語意。常見的字串——英文的 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 的完整試算](/p/9757)。

## 要精確數字，只有一個方法

用那個模型自己的 Tokenizer 實測。

Anthropic 提供 count_tokens 這個端點，呼叫時必須帶上你實際要用的模型代號，因為不同模型數字不同。OpenAI 那邊對應的是 tiktoken 這個套件。

這裡有一個常見的誤差來源：拿 tiktoken 去估 Claude 的用量，會低估大約百分之十五到二十，中文和程式碼的落差更大。兩家的切字表不同，本來就不該互相代用。我看過不只一份成本試算表是這樣算出來的，結果是實際帳單比預估高出兩成，而且找不出原因。

## 四種情境，該用哪一種算法

| 情境 | 該用的方法 |
|---|---|
| 抓個大概，決定要不要做 | 經驗法則，英文除以四、中文乘以一 |
| 要報價、要進預算 | 用正式上線的那個模型代號跑 count_tokens 實測 |
| 已經上線、要控成本 | 看每次回傳的用量欄位，尤其是快取命中率 |
| 跨廠商比價 | 拿同一份樣本分別用兩家的 Tokenizer 實測，不能只比單價 |

這四格的差別不在精確度，而在你會拿這個數字做什麼決定。決定「要不要做」的時候估錯兩成沒關係；決定「跟客戶收多少錢」的時候估錯兩成，那兩成是從你的利潤裡出。

最後回到開頭那個問題：一個 Token 是什麼？它是那個模型認得的最小組件，而每個模型認得的東西不一樣。接受這件事，你的成本模型才會建在對的地基上。

本文關鍵字：Token、Tokenizer、BPE、AI 成本、LLM 計價、prompt caching、count_tokens

## 常見問題

### 一個 Token 到底等於幾個字？

沒有固定答案。英文大約 1 個 Token 對應 4 個字元、約 0.75 個單字；中文大約 1 個漢字對應 0.6 到 1.5 個 Token，區間之所以這麼寬，是因為 UTF-8 一個漢字佔三個位元組，而該詞有沒有被那個模型的詞彙表收錄，會讓結果差到兩倍以上。這些數字只能用來估算要不要做，不能用來報價。

### 為什麼 Token 沒有業界統一標準？

因為詞彙表是模型權重的一部分，訓練完就不能改。它本質上是模型的一個零件，不是一份外部規格，所以標準化沒有技術上的著力點——要求兩家公司用同一本詞彙表，等於要求他們用同一個模型。同一家公司換代時也會換 Tokenizer，去年建的成本模型今年可能已經不準，而且不會報錯。

### 可以用 tiktoken 估算 Claude 的用量嗎？

不建議。tiktoken 是 OpenAI 的 Tokenizer，拿來估 Claude 會低估大約百分之十五到二十，中文和程式碼的落差更大。要精確數字只有一個方法：用該模型自己的 Tokenizer 實測，Anthropic 這邊是 count_tokens 端點，呼叫時必須帶上實際要用的模型代號。

### 為什麼長對話的成本會愈來愈貴？

因為模型本身沒有記憶，每一輪都要把前面全部的歷史重新送一次。第二十輪你講的那句「好」，實際計費是把前十九輪的全文再算一次輸入，所以成本成長接近平方而不是線性。連帶的結論是系統提示屬於每輪重複計費的固定成本，不是開頭付一次就沒事；prompt caching 就是為了壓這一段而存在。

### 單價比較便宜的模型就一定比較省錢嗎？

不一定。中文的 Token 效率取決於那個模型的中文語料有多厚，同一段中文在不同廠商的模型可能差兩倍以上的 Token 數，而這件事在單價表上完全看不出來。一個中文 Token 效率差三成的模型，就算單價便宜兩成，實際上還是比較貴。要比價就得拿同一份樣本分別用兩家的 Tokenizer 實測。
