AI APIのコストを70%削減した話
OpenAIの請求額が30ドルから150ドルに跳ね上がりました。 原因は、小さなSlackボットでした。 プロンプトの繰り返しとリトライが、膨大なコストを生んでいました。
簡単な修正も試しました。 基本的なキャッシュを利用しました。 モデルを切り替えました。 しかし、どれも効果はありませんでした。 ユーザーは質問の言い回しを変えます。 言葉が変わると、基本的なキャッシュは機能しません。
そこで、AIプロキシを構築しました。 これはアプリとAPIの間に位置します。 役割は3つあります:
- セマンティック・キャッシュ:embeddingsを使用して類似した質問を探します。一致度が高い場合は、キャッシュされた回答を返します。
- レート制限:Redisを使用して、リクエストの急増を抑えます。
- リトライ・バッファ:プロキシが失敗した呼び出しを自動的にリトライします。
これにより、コストを70%削減できました。
ただし、トレードオフもあります:
- レイテンシ:リクエストごとに200ms追加されます。
- メモリ:Redisにベクトル用のスペースが必要です。
- 精度:似たようなプロンプトでも、異なる回答が必要な場合があります。
皆さんへの教訓:
- LiteLLMのようなオープンソースツールから始めましょう。
- 初日からデータを追跡しましょう。
- 高トラフィックな場合はメッセージキューを使用しましょう。
AI APIをブラックボックスとして扱うのはやめましょう。 それらはHTTPエンドポイントに過ぎません。 ミドルウェアを使って制御しましょう。
あなたの構成はどうなっていますか? 既存のサービスを使っていますか、それとも自作していますか?