Claude Codeで各モデルの消費トークンを比較してみた
前回は「Claude Codeを使ってみて驚いたこと」という体験談を書きましたが、今回はその第2弾として記事を作成してみました。
テーマは、Claude Codeで同じ内容を複数のモデルに実行させたとき、消費トークン数はどれくらい違うのかです。
前提: 消費トークン数とは
Claude Codeには週ごとに利用できる上限が決められており、その使用量を超えると来週になるまで利用が出来なくなり、その使用量は消費トークン数によって決まります。
前提: Fable 5はProプランでは使えなかった
比較するモデルとして、当初はClaude Fable 5・Opus 4.8・Sonnet 5・Haiku 4.5の4種類を想定していました。しかしどうやらClaude Proプランでは現在利用できないモデルのようです。
というわけで、今回の比較は以下の3モデルで行っています。
Opusが最も性能が高いとされ、その次にSonnet、最も軽量で性能控えめなのがHaikuの順位です。
- Claude Opus 4.8
- Claude Sonnet 5
- Claude Haiku 4.5
トークン数の確認方法
筆者はClaude Pro契約なのですが、「セッション7%」「週間1%」のようなプラン上限に対する割合しか表示されず、モデルごとの生のトークン数は出ません。
そこでClaude Codeのセッションログ(JSONL形式)を直接読み、各ターンのusage情報(input/output/cacheトークン数)を集計するスクリプトを作成。
「消費トークン合計」の計算方法について
表内の消費トークン合計は、以下の式で計算しています。
消費トークン合計 = input + output + cache_write + cache_read × 0.1
cache_readは、Anthropic公式ドキュメントでAPI課金上「通常のinputの約10%のコスト」として扱うことが明記されているため、重みを反映しています。
ただし1点注意が必要で、重み付け全てが公表されているわけではないため、今回の「消費トークン合計」は参考値となります。
検証1: 質問タスク
まずはシンプルに、考える余地のある質問を1つ投げて、その回答にかかる消費トークン合計を比較しました。
「Webアプリのセッション管理で、JWTとサーバーサイドセッションのどちらを採用すべきか、スケーラビリティ・セキュリティ・実装コストの観点から比較し、あなたならどちらを推奨するか理由とともに答えてください」
各モデルで2セッションずつ実行した合計
| モデル | turns | input | output | cache_write | cache_read | 消費トークン合計 |
|---|---|---|---|---|---|---|
| claude-opus-4-8 | 4 | 8 | 4,868 | 46,600 | 72,184 | 58,694 |
| claude-sonnet-5 | 4 | 8 | 3,652 | 57,820 | 106,672 | 72,147 |
| claude-haiku-4-5 | 4 | 40 | 5,300 | 46,736 | 78,604 | 59,936 |
所感: 一番消費トークン合計が多かったのは意外にもSonnet 5。「高性能なモデルほど多く消費するはず」という予想に反して、Opus 4.8とHaiku 4.5はほぼ僅差という結果に。単純な一問一答では、モデル間の差はそこまで大きく開かないようです。
検証2: ツール作成タスク
ファイル作成・実行確認などのやり取りが発生する、少し重めのタスクで比較。
「CSVファイルを読み込んで、指定した列の平均・中央値・標準偏差を計算してコンソールに出力するPythonスクリプトを書いてください」
各モデルで3セッションずつ実行した合計
| モデル | turns | input | output | cache_write | cache_read | 消費トークン合計 |
|---|---|---|---|---|---|---|
| claude-opus-4-8 | 37 | 74 | 28,705 | 115,942 | 1,091,545 | 253,876 |
| claude-sonnet-5 | 21 | 42 | 17,010 | 127,171 | 761,285 | 220,352 |
| claude-haiku-4-5 | 21 | 190 | 14,449 | 117,008 | 564,449 | 188,092 |
所感: 今度はOpus 4.8が最多という結果に。turns数もOpusだけ突出して多く(37)、ファイル作成やコード実行の過程でより多くのやり取り・試行錯誤が発生していたことがわかります。質問タスクではSonnetが最多だったので、タスクの種類によって「どのモデルが多く消費するか」の傾向が変わるというのは、実際にやってみないとわからなかった発見でした。
まとめ
今回の実験からわかったのは、「高性能=usage消費が多い」ではなく、タスクの性質によってモデルごとの消費傾向が入れ替わるということでした。知識ベースの質問ならSonnet、ファイル操作を伴うタスクならOpusが多く消費しています。
そして、結果を一通り大まかに確認したところ
トークンを多く消費=深掘り出来ているといった印象を受けました。
あくまで1〜2種類のタスク・少数回の試行での結果で、これが全てのケースに当てはまるとは限りませんが、普段「Opusは重そうだから最終手段」くらいで使い分けていたところに、実際の数字で裏付けが取れたのは面白い経験でした。次にモデルを選ぶときの参考にしてみようと思います。