AI機能による財布の枯渇をどう防いだか
サイドプロジェクトにAIチャットボットを追加しました。簡単だろうと思っていました。
しかし、それは間違いでした。
2週間後、OpenAIの請求額はたった1週間で87ドルに達しました。ユーザーはわずか50人しかいませんでした。趣味のプロジェクトで赤字を出していたのです。
コストを抑えるためにいくつかの方法を試しましたが、失敗したものもありました。
- レート制限:リクエスト数を制限しました。ユーザーはそれを嫌い、離れていきました。
- コンテキストの切り詰め:トークンを節約するためにデータを削りました。すると、回答が不正確になりました。
- 単純なキャッシュ:全く同じ質問をキャッシュしました。ユーザーが全く同じ質問を二度することは滅多にないため、これは失敗に終わりました。
問題は「重複した作業」にあると気づきました。LLMが同じような内容を何度も繰り返し処理していたのです。
私は3つのステップでこれを解決しました。
セマンティック・キャッシュ (Semantic Caching) 単語の完全一致を探すのをやめました。代わりにembeddings(埋め込み)を使用して、似た質問を見つけるようにしました。新しい質問が過去の質問と92%一致する場合、キャッシュされた回答を返します。これによりヒット率は40%に達し、コストを半分に削減できました。
スマートなモデル・ルーティング (Smart Model Routing) 何でもかんでもGPT-4を使うのをやめました。ルーターを構築しました。質問が短くて単純な場合は安価なプロバイダーを使用し、複雑な質問の場合はプレミアムモデルに送るようにしました。ほとんどの質問にハイエンドなモデルは必要ありません。
プロンプトのトリミング (Prompt Trimming) モデルに送るコンテキストの量を減らしました。最も関連性の高いデータチャンクのみを選択することで、コンテキストのサイズを60%削減しました。
結果:
- 週間のコストが40ドルから7ドルに減少。
- キャッシュのおかげでレスポンスタイムが高速化。
- ユーザー満足度は高いまま維持。
学んだ教訓:
- 初日からセマンティック・キャッシュを構築すること。
- クラウドアカウントのコストアラートをすぐに設定すること。
- 単純なFAQタスクに高価なモデルを使用しないこと。
AIの導入は、単にプロンプトの問題ではありません。経済性の問題です。APIコールはすべて、実際のお金がかかります。効率性を考慮して設計しなければ、プロジェクトは失敗します。
あなたはどのようにAIコストを管理していますか?
出典: https://dev.to/__c1b9e06dc90a7e0a676b/how-i-stopped-my-ai-feature-from-draining-my-wallet-20il