バイブコーディング実践編 — Claude Code を中心に AIで安全に作る力 / セキュリティとコスト管理
Token budgeting — model routingとcost tracking
読了目安 8 分
学習のねらい
AIモデルの利用には、通常、トークン数に応じた費用が発生します。特にAIエージェントが自律的に動作する場合、意図しない大量のトークン消費 (runaway loop、暴走ループ) が発生し、高額な請求につながるリスクがあります。
本レッスンでは、モデルごとの料金体系を理解し、用途に応じて適切なモデルを選択する「モデルルーティング」の考え方、そしてAI利用コストを追跡・可視化するための基本的な手法を学びましょう。
AIモデルの料金体系とトークン
Anthropic の Claude や OpenAI の GPT など、ほとんどの大規模言語モデル (LLM) は、入力と出力のトークン数に基づいて料金が計算されます。トークンは、単語や記号の一部に分割されたテキストの単位です。
- 入力トークン: プロンプトとしてモデルに与えるテキストのトークン数
- 出力トークン: モデルが生成する応答テキストのトークン数
多くの場合、入力トークンと出力トークンで単価が異なり、出力トークンの方が高価です。また、モデルの性能やコンテキストウィンドウ (扱えるトークン数) によって料金も大きく変わります。
Anthropic Claude のモデル別単価 (例)
| モデル名 | 入力単価 (1Mトークンあたり) | 出力単価 (1Mトークンあたり) | 主な用途 |
|---|---|---|---|
| Claude 3 Opus | $15.00 | $75.00 | 高度な推論、複雑なタスク、最高性能 |
| Claude 3 Sonnet | $3.00 | $15.00 | 汎用的なタスク、バランスの取れた性能とコスト |
| Claude 3 Haiku | $0.25 | $1.25 | 高速、費用対効果、シンプルなタスク |
(※上記の単価は執筆時点の参考値であり、最新情報は公式ドキュメントを確認してください。)
この表を見るとわかるように、Opus は非常に高価ですが高性能、Haiku は安価で高速ですが性能は控えめです。Sonnet はその中間です。
モデルルーティング (Sonnet vs Haiku の使い分け)
アプリケーションの機能やタスクの複雑さに応じて、適切なモデルを使い分けることを「モデルルーティング」と呼びます。これにより、コストを最適化しながらも、必要な性能を確保できます。
-
Haiku を使うべき場面:
- シンプルな分類、キーワード抽出
- 短いテキストの要約
- ユーザーインターフェースでの迅速な応答が必要な場面
- 大量のデータを処理するが、高度な推論が不要なタスク
-
Sonnet を使うべき場面:
- やや複雑な推論、コード生成
- 長文の要約や生成
- 複数のステップを含むタスク
- 費用と性能のバランスが求められる汎用的なタスク
-
Opus を使うべき場面:
- 非常に高度な推論、複雑な問題解決
- クリティカルな意思決定支援
- 最高レベルの性能が求められる研究開発
開発初期段階では Sonnet で開発を進め、コストが問題になる部分や性能要件が明確な部分で Haiku への切り替えを検討すると良いでしょう。
コスト追跡 (Cost Tracking) の実装
AI利用コストを把握するためには、API呼び出しごとに使われたトークン数を記録し、集計する仕組みが必要です。
1. API SDK の usage 情報の利用
Anthropic や OpenAI の SDK は、API応答に usage オブジェクトを含んでいます。これには input_tokens と output_tokens が含まれています。
from anthropic import Anthropic
client = Anthropic()
message = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=100,
messages=[
{"role": "user", "content": "Hello, Claude."},
]
)
print(f"Input tokens: {message.usage.input_tokens}")
print(f"Output tokens: {message.usage.output_tokens}")
この情報を取得し、アプリケーション内で集計するラッパー関数やクラスを作成します。
2. ログ収集と可視化
- ログファイル: アプリケーションのログにトークン利用状況を記録します。
- スプレッドシート/データベース: ログをパースして、日ごと、週ごと、機能ごとのトークン利用量や推定コストをスプレッドシートやデータベースに保存します。
- ダッシュボード: 保存したデータを可視化ツール (Google Data Studio, Tableau, Grafanaなど) でグラフ化し、コストの推移を監視します。
簡単なプロジェクトであれば、CSVファイルに追記するだけでも十分な可視化ができます。重要なのは「いつ、どのモデルで、どれくらいのトークンを使ったか」を記録する習慣をつけることです。これにより、コストの異常値を早期に発見し、原因を特定しやすくなります。
まとめ
AIアプリケーション開発において、トークン利用量とコストの管理は必須です。モデルごとの単価を理解し、タスクに応じて Sonnet と Haiku などのモデルを適切に使い分ける「モデルルーティング」を実践しましょう。
また、APIからの usage 情報を活用してトークン利用状況を記録し、集計・可視化する仕組みを導入することで、コストの予期せぬ増大を防ぎ、効率的なAI運用が可能になります。