AI Cost Tracking

AI Token 計費陷阱:同一段文字,不同模型收費差 2.65 倍

Token 不是長度單位,而是供應商 tokenizer 的產物。同一段文字在不同模型可能產生 2.65 倍 token 差異,而輸入格式(如 HTML vs Markdown)更可造成 21 倍差距。本文拆解 tokenization 如何影響成本,並提供實務建議。

AI Token 計費陷阱:同一段文字,不同模型收費差 2.65 倍 — 文章封面
本頁內容7 個段落
  1. 差異有多大?從單字到整份文件
  2. 價格排名會翻轉:沒有「最便宜模型」
  3. 結構化內容是 token 殺手
  4. 原始 HTML 是最糟的輸入:21 倍差距
  5. 非英文內容的 tokenizer 稅
  6. 實務建議:先修格式,再換模型
  7. 參考來源

當你比較兩個模型的每百萬 token 價格,選了較便宜的那個,帳單卻反而更高——不是算錯,而是兩個供應商對你的文字產生了不同數量的 token。這就是 LLM tokenization,它是所有 token 帳單底層的隱形因素。

Token 不是長度單位,而是模型實際讀取的最小單位。每個供應商的 tokenizer 都有自己的詞彙表(通常 10 萬到 25 萬個條目),由訓練語料決定。常見詞彙可能是一個 token,罕見詞彙則被拆成片段。因此,同一段文字在不同模型上會得到不同 token 數。

差異有多大?從單字到整份文件

劍橋大學與香港大學的研究團隊測試了十種 tokenizer,發現「antidisestablishmentarianism」這個字在 Claude 上要 9 個 token,在 Gemini 和 Grok 上只要 5 個,範圍從 4 到 9 不等。Firecrawl 自己的測試也印證:Gemini 的 countTokens 回傳 5,Anthropic 回傳 8。

單字是趣聞,百萬字的差異就是預算問題。同一研究顯示,表情符號和數字的壓縮比差異可達 100%,其他內容也有 20% 到 50% 的差距。英文散文比技術寫作壓縮率高約 25%。換句話說,你的 token 成本取決於你送出的內容類型,而不只是數量。

TensorZero 在 2026 年 4 月做過最乾淨的比較,將相同輸入送進各家 API,並以 OpenAI 為基準。結果顯示,在純文字上,Gemini 只比 OpenAI 多 6%,但 claude-opus-4-7 多了 57%;在工具定義上,Gemini 多了 82%,claude-opus-4-7 多了 165%。各模型相對 gpt-5.4 的 token 倍數整理如下:

模型 純文字 YAML JSON 工具定義
gpt-5.4 1.00x 1.00x 1.00x 1.00x
gemini-3.1-pro-preview 1.06x 1.18x 1.11x 1.82x
claude-sonnet-4-6 1.17x 1.25x 1.22x 2.06x
claude-opus-4-7 1.57x 1.53x 1.70x 2.65x

橫向看,每個模型都隨內容愈結構化而變差;縱向看,供應商之間的差距從純文字的 1.57 倍擴大到工具 schema 的 2.65 倍。

價格排名會翻轉:沒有「最便宜模型」

把 token 倍數乘上牌價,才是真實成本。TensorZero 的數據顯示,claude-opus-4-7 在工具密集的工作上,實際成本是 gpt-5.4 的 5.3 倍,儘管牌價只差 2 倍。更關鍵的是,排名不穩定:Gemini 在純文字上最便宜(每百萬 token 約 2.12 美元),但一旦送工具定義,就比 OpenAI 貴 46%。

所以「哪個模型比較便宜」沒有固定答案,只能針對你的內容組合去量測。如果你之前比較過 agent 的 token 成本,這些數據就是你需要修正的偏差。

結構化內容是 token 殺手

結構化文字(JSON、YAML、工具 schema)是 tokenizer 最不擅長的。括號、引號、冒號、縮排都會產生幾乎沒有意義的短 token。例如 JSON 的 key「created_at」,在花費 token 表達概念之前,就先耗掉兩個引號和一個底線。

這就是為什麼工具 schema 會落在 2.65 倍的極端,也是為什麼載入大量工具定義會讓 agent 還沒開始工作就燒掉成本。Firecrawl 也指出,Claude Code 的 skill 光是啟動就要約 100 token,而且大部分是 frontmatter 而非指令。

原始 HTML 是最糟的輸入:21 倍差距

Firecrawl 自己跑了基準測試,抓取 15 個真實網頁,分別以原始 HTML 和 Markdown(只保留主要內容)處理,再用各家 tokenizer 計數。結果:原始 HTML 總共 4,103,706 個 GPT token,Markdown 只有 190,817 個,縮減 21.5 倍。中位數每頁 19 倍,範圍從 Hacker News 首頁的 2.6 倍到 Vercel 首頁的 283 倍。

這個縮減在三家 tokenizer 上都成立:GPT 21.5 倍、Claude 20.8 倍、Gemini 22.5 倍。成本故事很明顯,但可行性故事更尖銳:15 頁中有 5 頁的原始 HTML 超過 20 萬 token,根本塞不進 200k 的 context window;轉成 Markdown 後,沒有一頁接近極限。

有趣的是,清理頁面後,tokenizer 之間的差距反而擴大(Claude 從 1.168 倍變成 1.210 倍),Gemini 則縮小。原因是 HTML 是重複的 ASCII 標記,各家 tokenizer 處理起來差不多;清理後留下的是散文,詞彙差異才真正顯現。

非英文內容的 tokenizer 稅

如果你爬的不只是英文,這會是最大的 tokenization 效應。Petrov 等人在 NeurIPS 2023 的研究顯示,最弱勢的語言,同等內容的成本是英文的 12 倍以上,而且這個差異在 tokenization 階段就造成,用他們的話說「遠在語言模型看到任何資料之前」。同樣的溢價也影響延遲和 context window 的容量。

實務建議:先修格式,再換模型

總結三個可操作的結論:

  1. 先清理輸入格式:把 HTML 轉成 Markdown,通常能省下一個數量級的 token,這比換模型更有效。
  2. 量測自己的內容:不要只看牌價,用你的實際內容(文字、JSON、工具定義)去跑各家 API 的計數,算出有效成本。
  3. 注意結構化內容的隱藏成本:工具 schema、JSON 這類輸入,會讓模型之間的差異放大到 2 倍以上,選模型時要特別留意。

Tokenization 不是你可以控制的,但你可以控制送進去的內容。格式和 tokenizer 是兩個獨立的槓桿,清理輸入不一定能換到更好的匯率,但永遠能讓你要交換的量少一個數量級。

參考來源

本文由 AI 協助自上述來源整理,經人工審核後發布。

分享X電郵