トークナイザーの精度:OpenAI BPE vs Anthropic 近似
なぜ OpenAI のカウントは正確で、Anthropic / Gemini のカウントには Approx バッジが付くのか — 5〜15% の誤差が月次予算に与える意味を解説。
詳細な説明
「正確な世界」と「近似の世界」
OpenAI は公開 BPE(GPT-4 Turbo / GPT-3.5 用の cl100k_base、GPT-4o と o シリーズ用の o200k_base)として自社のトークナイザーを公開しています。内部 API と同じ語彙ファイルを gpt-tokenizer が利用しているため、OpenAI 行に「5,432 トークン」と表示されたなら、API も usage.prompt_tokens で同じ 5,432 を返します(チャット形式の特殊トークン 3〜7 個分の加算は除く)。
Anthropic、Google、DeepSeek は JS で動く公式トークナイザーを公開していません。Anthropic 公式の /v1/messages/count_tokens エンドポイントはプロンプトを送信する必要があるため、オフラインツールという本ツールの趣旨と相容れません。
ヒューリスティック
本ツールでは:
- 英語 / ラテン文字:1トークン ≒ 4文字
- CJK(中国語 / 日本語 / 韓国語):1トークン ≒ 2文字
Anthropic と Gemini が報告するトークン数とおおむね合致し、自然言語プロンプトでは経験的に 5〜15% の範囲に誤差が収まります。
誤差が広がるケース
以下の3種は自然言語より密にトークン化され、15〜30% 過小評価になります:
- コード:句読点、識別子、特殊文字は1文字ごと、または2文字ごとにトークン化されます。
- テーブル / TSV / CSV:空白と区切り文字が多い。
- ネストの深い JSON:すべてのキー、カンマ、波括弧が独立したトークンになります。
予算策定ルール
近似コストに次のマージンを上乗せしてください:
| ワークロード | マージン |
|---|---|
| 自然言語チャット | +0% |
| 散文 + 軽いコード | +10% |
| コード / JSON / TSV 中心 | +25% |
| 構造化文書を扱うRAG | +15% |
月 $5,000 の Claude 請求であれば +15% は $5,750 — 影響は軽微とは言えませんが致命的でもありません。最初の月の Anthropic 請求と照合し、そこから倍率を調整してください。
ユースケース
経理に対して予算項目を擁護するとき、想定より高かった Anthropic の請求を整合させるとき、コード中心ワークロードでどのプロバイダーを選ぶか決めるときに使ってください。