コストとレイテンシのトレードオフ
- コスト/品質/速度のトライアングル — なぜ3つすべてを同時に最大化できないのか
- 重要なところに支出し、それ以外で節約するための6つの最大のレバー
- チープファーストのカスケードがどのように90%の量を小さなモデルにルーティングし、難しいケースで品質を落とさずにコストを約70%削減するか
- 体感速度を作り変えるレイテンシ特化の勝ち手(ストリーミング、並列化、キャッシュ、非同期)
- なぜ『闇雲な最適化』は品質を焼き払うのか — まず計測し、次に評価で守る
品質、コスト、速度は互いに引っ張り合います。3つすべてを同時に最大化することはできませんが、それぞれを重要なところに振り向け、それ以外のすべてで節約することはできます。
トライアングル
大きいモデルは賢いですが遅く高価です。小さいモデルは速く安いですが能力は劣ります。良いエンジニアリングとは、各タスクをこのトライアングル上の適切な点に振り分けることです。
最大のレバー(おおよそ重要度順)
Guided walkthrough1 of 6
- 分類にOpusを使わないこと。Sonnetから始め、単純で大量のステップにはHaikuまで落とし、難しい部分のためにOpusを取っておきましょう。単独で最大のレバー — /docs/api/choosing-a-model を参照。
- まず安いモデルを使い、必要なときだけ(例:確信度の低いケース)より強いモデルにエスカレーションします。以下の実例を参照。
- 安定したプロンプトの接頭辞を呼び出し間で再利用します — 繰り返されるシステムプロンプト、RAGのコンテキスト、エージェントのツールカタログで大きな節約になります。/docs/api/prompt-caching を参照。
- 重要なものだけを送ります。RAGは、ナレッジベース全体を詰め込むよりも優れています。入力が短いほど安く、しかもしばしば結果も良くなります。
- 適切な max_tokens と、厳密なフォーマット指示を設定しましょう。出力トークンは最高料金で課金されます — 上限を設けることでテールを切り落とせます。
- インタラクティブである必要のないものには、Message Batches APIを使いましょう。レイテンシと引き換えに、トークン単位で大きな割引が得られます。
実例:チープファーストのカスケード
カスケードは、曖昧に聞こえるので人々がスキップするレバーです。具体的にしましょう。10万件のサポートメールをトリアージする必要があるとします。素朴なアプローチはすべてのメールを最強のモデルに通します。カスケードは、量の大部分を安いモデルにルーティングし、難しいケースだけをエスカレーションします。
安いモデルがケースの90%を単独で解決し、より強いモデルがトークンあたりでおよそ5倍のコストがかかるとします。相対的なコスト単位(1 = 1メールに対する1回の安いパス)で数えると:
- 全部強力:
100k × 5 = 500kコスト単位。 - カスケード:
100k × 1(すべてのメールが安いパスを受ける)+ 10k × 5(エスカレーションする10%)= 150kコスト単位。
これは約 70% の削減 であり、本当に難しいケースはまだ最良のモデルにかかります。倍率と割合は例示的です — 自分のトークン数と料金を当てはめて、評価で実際のエスカレーション率を測ってください。教訓は変わりません。節約は高価な料金の率そのものではなく、それを払う頻度がいかに稀かから来ます。
レイテンシに特化した勝ち手
- 応答をストリーミング — ユーザーは最初のトークンを即座に見るので、合計時間が変わらなくても体感速度は跳ね上がる(/docs/api/streaming)。
- 独立したサブ呼び出しを並列化する — 3つのツールにファンアウトするリクエストは sum(latency) ではなく max(latency) で終わる。
- 繰り返しの作業をキャッシュし、できるところは事前計算 — 最速のトークンは生成しなくてよいトークン。
- インタラクティブな経路にはより小さいモデルを選び、重い処理は非同期に移して、ユーザーがそれを待たないようにする。
- インタラクティブなエンドポイントの max output tokens を減らす — 長い生成はテールレイテンシの主要な原因。
闇雲に最適化しない
まず計測しましょう。トークンと秒は実際にどこに消えているのか?それから最大の項目を最適化します。そして、コスト削減のあとは評価で必ず品質を再確認しましょう。間違っている安い構成は、安くはありません。
自己チェック
0/4- トライアングルは現実:品質、コスト、速度は引っ張り合う — エンジニアリングとは3つすべてを最大化することではなく、各タスクを適切な点にルーティングすること。
- モデルの適正サイズ化が単独で最大のレバー;カスケードは難しい少数派にだけフラッグシップ料金を払うことでそれを掛け算する。
- プロンプトキャッシュ、厳しい max_tokens、RAG駆動の入力削減はモデル選択と複合する。
- レイテンシの体感は別の軸 — ストリーミング、並列サブ呼び出し、非同期の重い処理は生のコストを変えずにUXを作り変える。
- すべてのコスト削減は評価で守らなければならない — 間違っている安い構成は安くない。