Token カウンター
AIモデルでのToken数を推定、主要LLMの料金計算に対応
統計
推定コスト
1M入力トークンあたり$2.50
1M出力トークンあたり$10.00
Tokenとは?
トークンカウンターは、AI モデルがテキストをどのような処理単位に分割するかを見積もるツールです。トークンは必ずしも単語や文字と同じではなく、単語全体、単語の一部、句読点、空白の扱い、言語によっては 1 文字になることもあります。トークン数は、コンテキスト上限、料金見積もり、プロンプト設計、RAG の分割、チャット履歴管理、入力がモデルに収まるかの判断に関わります。モデルごとに tokenizer が異なるため、数値は絶対ではなくモデル依存です。送信前に文章を短縮、分割、構造化するための目安として使うのが適切です。
使い方
基本的な使い方
- 入力欄にテキストを入力または貼り付けてください
- ターゲットAIモデルを選択(GPT-4、Claude、Geminiなど)
- 右側のパネルでトークン数の推定値を確認する
- 推定出力長を設定してAPIコストを試算
トークン化のルール
- GPTシリーズ:約4英字 = 1トークン、約1.5中国語の文字 = 1トークン
- Claudeシリーズ:GPTと類似しており、若干の違いがあります
- DeepSeekシリーズ:中国語に最適化されており、約2文字 = 1トークン
- 特殊文字、句読点、改行もトークンを消費します
- コードやJSONなどの構造化テキストはトークン密度が高くなる傾向があります
利用シーン
仕組み
最新のLLMトークナイザーは空白による分割ではなく、サブワードアルゴリズム — 主にByte Pair Encoding(BPE)とSentencePiece — を使用します。BPEは個々のバイトから開始し、最も頻度の高い隣接ペアを繰り返しマージして、通常32k〜200kの固定語彙を生成します。一般的な単語は単一トークンになり、稀な単語は複数のサブワードに分解され、任意のバイト(絵文字、制御文字)はアルファベットが256バイトすべてをカバーするため安全に符号化されます。SentencePiece(Llama、Mistral、Geminiの派生で使用)は空白を`▁`マーカーを通じて通常の文字として扱うため、先頭のスペースは次のトークンの一部になります。これが` hello`と`hello`が通常異なるトークンIDになる理由です。 OpenAIは`tiktoken`ライブラリを通じて3つの主要なBPE語彙を公開しています:`p50k_base`(50,281トークン、GPT-3/Codex)、`cl100k_base`(100,277トークン、GPT-3.5 TurboとGPT-4)、そして`o200k_base`(約200kトークン、GPT-4oとo1)です。o200k_baseは非英語圏のカバレッジを拡充し、中国語・日本語のトークン数を約1.4〜1.7倍に削減します。Claudeは類似したスケールの独自トークナイザーを使用しています。大まかな目安として、英語テキストは平均約4文字/トークン、中国語はcl100k_baseで約1.5〜2文字/トークン、o200k_baseで約2文字/トークン、絵文字は複数のUTF-8バイトに符号化されるため1つで2〜5トークンを消費します。 トークン数はコンテキストウィンドウの使用量とコストの両方を左右します。現在のウィンドウはGPT-4oが128k、Claude 3.5 Sonnetが200k、Gemini 1.5 Proが2Mです。コストは`トークン数 × 100万トークンあたりの単価`で課金され、入力と出力は別々に価格設定されます(例:GPT-4oは$2.50/$10.00/100万トークン、Claude 3.5 Sonnetは$3.00/$15.00/100万トークン)。本カウンターはすべてのトークナイザーの語彙ファイルをバンドルするとペイロードが数MBになるため、ファミリー別のヒューリスティック係数を使用しており、結果は作業用の推定値です。正確な数値はモデルのAPIレスポンスの`usage`フィールドが権威ある情報源です。
- BPEは頻度の高いバイトペアを固定語彙にマージ。OpenAI語彙は`cl100k_base`(GPT-4/3.5)、`o200k_base`(GPT-4o/o1)、`p50k_base`(Codex)。
- SentencePieceは先頭の空白を`▁`として符号化するため、` world`と`world`はLlama/Mistral/Geminiで異なるトークンIDにマッピングされる。
- 英語の目安 ≈ 4文字/トークン。CJK ≈ cl100k_baseで1.5〜2文字/トークン、o200k_baseで約2文字/トークン。絵文字は通常1つで2〜5トークン。
- コスト計算式:`(入力トークン数 / 1,000,000) × 入力単価 + (出力トークン数 / 1,000,000) × 出力単価`。入力と出力は別々に価格設定される。
- 2025年のコンテキストウィンドウ:GPT-4o 128k、GPT-4 Turbo 128k、Claude 3.5 Sonnet 200k、Gemini 1.5 Pro 2M、DeepSeek V3 128k。
- 同じテキストでもベンダーごとにトークン数が異なる。トークナイザーの語彙、バイトフォールバックルール、空白処理がすべて異なるため。
- 正確なカウントはAPIレスポンスの`usage.prompt_tokens` / `usage.completion_tokens`(OpenAI)または`usage.input_tokens` / `usage.output_tokens`(Anthropic)が情報源。
使用例
GPT-4 における短い英語フレーズ
入力: Hello, world!
モデル: GPT-4 (cl100k_base)
トークン: 4 -> ["Hello", ",", " world", "!"]
文字数: 13
比率: 3.25 chars/token中国語は1文字あたりのトークン数が多い
入力: 你好,世界! (中国語の「Hello, world!」)
GPT-4: 約8トークン (1.5 chars/token)
DeepSeek V3: 約4トークン (2 chars/token、CJK 最適化)
Claude 3.5: 約7トークン1,000語の記事のコスト見積もり
入力: 1,000 英単語(約1,330トークン)
想定出力: 500トークン
モデル: GPT-4o ($2.50 input / $10.00 output per 1M tokens)
入力コスト: 1,330 / 1,000,000 * $2.50 = $0.00333
出力コスト: 500 / 1,000,000 * $10.00 = $0.00500
合計: リクエストあたり約$0.0083目安: 約75語 ≈ 約100トークン(英語)
段落(75語):
"The quick brown fox jumps over the lazy dog. Pack my box with five
dozen liquor jugs. How vexingly quick daft zebras jump! The five
boxing wizards jump quickly. Sphinx of black quartz, judge my vow."
GPT-4 トークン: 約100
Claude トークン: 約95ベクトル DB に埋め込む前のチャンクサイズ
目標チャンク: 512トークン (text-embedding-3-small の上限: 8191)
英語テキスト: チャンクあたり約384語
中国語テキスト: チャンクあたり約768文字(GPT トークナイザー)
オーバーラップ: チャンク間で50トークン(コンテキスト保持)よくある質問
カウンターはどのトークナイザーを使用していますか?
通常はOpenAIのtiktoken(GPT-4、GPT-3.5用のcl100k_base、GPT-4o用のo200k_base)を使用し、場合によってはAnthropicのClaudeトークナイザーやオープンモデル用のHugging Faceトークナイザーも使います。モデルによってテキストの分割方法が異なるため、モデル間でカウントは変わります。
なぜカウントが単語数と一致しないのですか?
トークンはサブワード単位です。「Hello world」は2トークン、「antidisestablishmentarianism」は5〜6トークンです。英語では平均してトークンあたり約0.75単語(つまり1000トークン ≈ 750単語)です。他の言語はより密で、中国語の漢字は1文字でも1〜2トークンになることがよくあります。
プロンプトはアップロードされますか?
いいえ。トークナイザーはブラウザ内で実行されます。tiktokenにはエンコードをローカルで行うJavaScriptポートがあります。プロンプトがネットワークを越えることはありません。
コスト見積もりはどれくらい正確ですか?
トークン数は正確です。コストの数値は、選択したモデルの1Kトークンあたりの価格(公開価格表から読み取り)によって決まります。プロバイダーの価格変更はページ更新時に反映されます。予算が重要な決定では最新価格と照合してください。
OpenAIのプレイグラウンドとカウントが少し異なるのはなぜですか?
tiktokenのバージョン違いで小さな差が生じることがあります。特殊トークン(チャットメッセージにはrole/systemフレーミングトークンがある)はメッセージごとに数トークンを追加しますが、構造化されていないカウンターはこれを含めない場合があります。正確なAPI課金には、コードが実際に送信する内容をカウントしてください。
コード、JSON、構造化データはどのように扱われますか?
トークナイザーは句読点、括弧、空白を多くの小さなトークンに分割します。JSONは密で、小さなJSONオブジェクトでも50トークン以上を使うことがあります。コードは同等の散文より多くのトークンを使用します。コンテキスト制限が厳しいモデルにJSONやコードを送る際は、これを考慮して計画してください。
リストにないモデルのトークンをカウントできますか?
そのトークナイザーがブラウザ内で利用可能な場合のみ可能です。一般的なもの(GPT、Claude、Llama)はJS実装があります。マイナーまたは独自モデルの場合は、モデルプロバイダーの公式カウンターを使うか、見積もり(英語では4文字 ≈ 1トークン)を使用してください。