「第3回生成AI Innovation Awards 最優秀賞」受賞プロジェクトで、Gemini APIの429リソース不足エラーへの対処としてExponential Backoff戦略が紹介されていました。
参考
背景
Gemini APIを大規模に運用すると、「429 Resource Exhausted(リソース不足)」エラーは避けられません。Vertex AIでは「スロット購入」という解決策が用意されていますが、ピーク時のアクセス量に合わせて契約すると運用コストが大幅に膨らみます。
今回のプロジェクトでは、「即時レスポンスは必須ではない」というビジネス特性を活かし、コストを抑えつつ処理を確実に完了させるリトライ戦略を採用しています。
Exponential Backoff
リトライ戦略の核となる「Exponential Backoff」は、API呼び出し失敗時に即座に再試行せず、リトライ間隔を指数関数的に延ばしていく手法です。
- 1回目のリトライ:1秒後
- 2回目のリトライ:6秒後
- 3回目のリトライ:30秒後
待ち時間を段階的に増やすことで、サーバー負荷が下がるタイミングを捉えます。無計画な連続リトライによる負荷増大を防ぎながら、最終的にリクエストを成功させる合理的な設計です。
導入時の検討ポイント
この手法はコスト効率に優れる一方、適した用途の見極めが必要です。
- 処理期限の猶予:完了まで数分〜数十分の遅延が許容されるか
- リトライ設定の妥当性:最大待ち時間がビジネス要件を逸脱しないか
- ユーザー体験への影響:バッチや非同期処理として切り離せているか
まとめ
追加コストを抑えながら膨大なリクエストを安定処理できるこの手法は、ビジネス要件によっては最良の選択肢となります。