AIの計画 / CLEARBYTE

AI のトークンと単語:費用を見積もる前に要求を数える

トークンはモデルのトークナイザーが作る単位で、固定の単語数や文字数ではありません。正確な文章計測には対応する設定を使います。API 全体ではメッセージ構造やツールも含め、事前推定と返された利用量を照合します。

このガイドの内容

記事の長さには単語カウンターが役立ちますが、AI 要求がコンテキストに入るか、費用がいくらかは正確に分かりません。同じ文章でもトークナイザーで分割が変わり、要求には最後に貼り付けた文以外も含まれます。

ここでは生テキストの計測、要求全体の計測、課金使用量を分けます。オフラインの例と記入用の表を用意します。実行していないモデルに対して、正確そうな数値を作ることはしません。

単語、Unicode 文字、トークンを分ける

一語が一つ、複数の部分語、空白や句読点を含む単位になることがあります。Hugging Face の入門資料は単語、文字、部分語の方法を説明しています。言語、綴り、コード、空白、語彙によって分割が変わります。

Unicode 文字数は別の問いです。複数コード単位やバイトが必要な文字も、複数コードポイントでできた記号もあります。どれもトークンとの普遍的な換算比率はありません。文字数比の経験則は、特定標本の粗い目安として扱います。

目的に応じた測定方法
目的使える測定限界
記事の長さ確認単語数や Unicode 文字数モデルのトークン数は確定しない
特定トークナイザーでファイル計測対応設定によるトークン IDチャット形式や付加情報を除く場合がある
構造化 API 要求の見積もり公式計数機能か正しい要求形式最終使用量と異なる場合がある
課金照合実使用量と現在の課金定義別サービスの要求推定ではない

既知のトークナイザーでローカル文章を数える

Hugging Face tokenizers 形式なら、対応するローカル tokenizer.json を読み、UTF-8 ファイルを符号化します。モデルまたはトークナイザー ID、ファイルの版、パッケージ版、特殊トークンの設定を記録します。この例は公開済み tokenizers 0.23.2 を対象とし、パディングと切り詰めを無効にして数えます。

正規のモデル配布元から得た対応ファイルを使います。例はモデルを取得せず、文章をサーバーに送らず、ホスト型チャット API の完全形式も再現しません。設定が測定対象と合う場合だけ結果が意味を持ちます。特殊な前処理やテンプレートは別途考慮します。

# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer

# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.

コンテキスト計画には要求全体を含める

システム指示、履歴、検索文書、ツール定義、形式情報が最新メッセージ以外に含まれます。チャットテンプレートが役割や境界に制御トークンを加えることもあります。貼り付けた最後の段落だけでは入力を過小評価し得ます。

ホスト型では、入力種別に対応する公式の計数機能があれば使います。Claude の資料は構造化入力の計測と、実使用量の確認が必要な場合を説明しています。ツール、画像、文書では特に、供給元が記す推定の制約に従って解釈します。

未知のオンライン計数機に認証情報や機密文章を渡しません。ローカルは生テキスト計測に使えますが、提供元の端点を使えば入力がその提供元に送られます。測定前にデータに合った経路を選びます。

再現可能な比較表を作る

サポート文、コード、表、利用言語ごとの文章など代表標本を選びます。入力バイトを保存し、比較中に改行、句読点、空白が意図せず変わらないようにします。変更した文章は同じ標本として扱いません。

ID と版、特殊トークン設定、生テキスト数、可能なら要求全体の推定を記録します。未計測値は推測比率で埋めません。異なるトークナイザーの数の違いは、その標本と設定の測定結果であり、言語品質の順位ではありません。

指定したトークナイザーを実行後に埋める記録表
標本トークナイザーと版生テキスト数要求全体の数または推定
サポート文正確な ID を記入ローカルで測定対応形式で測定
コード断片正確な ID を記入ローカルで測定対応形式で測定
別言語の文章正確な ID を記入ローカルで測定対応形式で測定

入力追加の前に出力枠を予約する

仮にこの要求形式の総コンテキストを 32,000 とし、出力に 4,000、計画上の余裕に 2,000 を取ると、入力枠は 26,000 です。指示、履歴、ツールが 8,000 なら、検索内容には 18,000 が残ります。

これは仮定の例で、実在する現在のモデル仕様ではありません。コンテキスト、出力、推論、ツール使用の定義は提供元で異なります。現在の契約を確認して実数を予算計算機に入力します。枠に入ることと、すべての段落が役立つことも別です。

Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget

26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved content

推定と実際の使用量、費用を照合する

小さな実要求の後に、返された使用量を保存して同じ要求の推定と比べます。公開定義に従い、キャッシュ入力、出力、推論などを分けます。ツール定義を数え忘れたなら、単語換算比を変えても原因の説明にはなりません。

費用計算機には実測トークンと確認済みの現行料金を入力します。入力と出力を分け、百万トークン当たりなどの単位を残します。再現可能な費用表は使用量と明示した価格に基づき、単語からの普遍的換算に依存しません。

同じ質問でも履歴やツールが違えば同じ要求ではありません。比較時は構造とキャッシュ条件も記録します。最終回答の文字数だけでは総費用を説明できないため、機密を除いた構造説明と使用量を保管します。

よくある質問

一トークンは常に四文字ですか?

違います。一部の文章とトークナイザーの粗い経験則にすぎません。言語、コード、句読点、空白、設計で結果は変わります。

ローカルの文章数と API 使用量が違うのはなぜですか?

原文にない形式、指示、履歴、ツール、入力種別が要求に含まれ得ます。トークナイザーや特殊トークン設定も確認し、同じ完全要求と提供元の定義を比較します。

このサイトの単語カウンターでモデルの正確なトークン数を出せますか?

出せません。単語や Unicode 文字などの計測用です。対応トークナイザーや公式計数方法で測り、その値を費用やコンテキストの計算に使います。

出典と定義

計算方法の確認日: