LLMトークン使用量トラッキング(エルエルエムトークンシヨウリョウトラッキング)
LLM APIへのリクエストごとにinput/outputトークン数を記録・集計し、コスト管理や使用パターン分析に活用する仕組み。プロバイダのレスポンスヘッダーやusageオブジェクトからデータを取得し、ユーザー別・機能別に按分する。
LLMトークン使用量トラッキングとは
LLMトークン使用量トラッキングは、大規模言語モデルへのAPI呼び出しごとにinputトークン(プロンプト側)とoutputトークン(コンプリーション側)の消費量を記録し、時系列で集計・分析する運用プラクティスである。OpenAI、Anthropic、Google等の主要プロバイダはAPIレスポンスにusageオブジェクトを含めて返却するため、これを取得・蓄積することがトラッキングの基本となる。
なぜトークン使用量の追跡が重要か
LLM APIの課金はトークン単位で行われる。GPT-4oのinputは$2.50/1Mトークン、outputは$10.00/1Mトークンであり、Claude 3.5 Sonnetはinput $3.00/1Mトークン、output $15.00/1Mトークンである。追跡なしに運用すると月末の請求額で初めてコスト超過に気付くことになる。
| モデル | Input料金(/1Mトークン) | Output料金(/1Mトークン) | 月間100万コール想定コスト |
|---|---|---|---|
| GPT-4o | $2.50 | $10.00 | $12,500〜 |
| Claude 3.5 Sonnet | $3.00 | $15.00 | $18,000〜 |
| Gemini 1.5 Pro | $1.25 | $5.00 | $6,250〜 |
| GPT-4o mini | $0.15 | $0.60 | $750〜 |
実装パターン
パターン1: レスポンスusageオブジェクト直接取得
最もシンプルな方法は、APIレスポンスのusageフィールドを読み取ることである。OpenAI互換APIでは以下の構造で返却される。
response.usage.prompt_tokens → inputトークン数
response.usage.completion_tokens → outputトークン数
response.usage.total_tokens → 合計トークン数
パターン2: プロキシ型ミドルウェア
HeliconeやLiteLLMのようなプロキシをLLMプロバイダの手前に配置し、全リクエスト/レスポンスからトークン情報を自動抽出する。アプリケーションコードへの変更が最小限で済む。
パターン3: OpenTelemetry計装
OpenLLMetryやTraceloopのSDKを導入し、LLMコールをOTEL Spanとして記録する。gen_ai.usage.input_tokens属性でトークン消費を標準化して既存のオブザーバビリティ基盤に統合する。
トークン数の事前推定
APIコール前にトークン数を推定してコスト予測やリクエスト制限を行うことも重要である。
- tiktoken(OpenAI公式): GPTモデル向けのトークナイザライブラリ
- Anthropic tokenizer: Claude向けのトークンカウントAPI(
/v1/messages/count_tokens) - 近似法: 英語は1トークン≒4文字、日本語は1トークン≒1.5〜2文字が目安
集計と可視化のベストプラクティス
効果的なトークン使用量ダッシュボードには以下のディメンションが必要である。
- 時間軸: 時間別・日別・週別・月別のトレンド
- モデル別: どのモデルがコストの大部分を占めるか
- 機能別: チャット・要約・分類など機能ごとの消費内訳
- ユーザー別: ヘビーユーザーの特定とレート制限
- input/output比率: プロンプトが長すぎないかの検証
FAQ
Q1: ストリーミングレスポンスでもトークン数は取得できる?
OpenAIのストリーミングではstream_options: {"include_usage": true}を指定すると、最終チャンクにusage情報が含まれる。Anthropicのストリーミングではmessage_stopイベントにusageが付与される。
Q2: キャッシュされたトークンは課金対象?
OpenAIのPrompt Cachingでは、キャッシュヒットしたinputトークンは50%割引で課金される。Anthropicも同様にキャッシュヒット分は割引料金が適用される。トラッキング時はキャッシュヒット/ミスの区別も記録すべきである。
Q3: 無料枠やクレジットの残量も追跡すべき?
追跡すべきである。Google AI StudioやAnthropic Consoleの無料枠は月間リセットされるため、APIダッシュボードの残量とテレメトリの消費量を突合して整合性を確認することが推奨される。