金色の配線パターンが広がる基板の接写
技術解説

DoorDashのRAG本番構成から学ぶ可用性設計

目次を見る

LLM(大規模言語モデル)単体では、リアルタイムの商品カタログや独自の業務ロジックを扱えない。DoorDashが本番環境で稼働させている「Ask DoorDash」は、その限界を乗り越えるために複数の技術レイヤーを重ねた構成を採用しています。SRE視点で読むと、このアーキテクチャには可用性・レイテンシ・フィードバックループという三つの設計判断が見えてきます。

RAGパイプラインの構造と障害ポイント

RAG(Retrieval-Augmented Generation)とは、LLMへの入力に外部データを動的に付加する仕組みです。ユーザーの質問をそのままLLMに渡すのではなく、まず社内の検索インデックスや構造化DBからドキュメントを取得し、それをコンテキストとして添えてからLLMに推論させます。

DoorDashの構成では、このパイプラインにインテント分類(ユーザーの意図を事前に振り分けるステップ)を組み合わせています。「特定の商品を探している」「アレルギー情報を確認したい」など、リクエスト種別を分類してから後続の検索戦略を切り替える設計です。たとえば商品推薦クエリは構造化データのランキングAPIへ、自由文の問い合わせは非構造化テキストのベクトル検索へ、と経路を分けることで各ルートの精度と速度を両立しています。

SRE観点でこの設計を見ると、パイプライン上の各ステップが障害ドメインになり得る点に注目する必要があります。インテント分類モデルのレスポンスが遅延した場合、後続の検索が全件タイムアウトします。ベクトル検索インデックスが部分的に古いデータを返した場合、LLMは誤った前提で回答を生成します。単純なHTTPサービスと異なり、エラーが「不正確な回答」という形でサイレントに現れる点が難しいところです。

レイテンシとフィードバックループの設計

InfoQの記事が強調しているのは、DoorDashがリアルタイムインタラクションのレイテンシ管理に相当の工夫を施している点です。複数の検索バックエンドへのI/Oを並列化し、ランキングステップを非同期で実行することで、エンドツーエンドのレスポンスタイムを抑えています。

この設計を支えるオブザーバビリティ(システムの内部状態を外部から観測できる性質)の仕組みも重要です。パイプラインの各ステップにトレースIDを付与し、「どのステップで何ミリ秒消費したか」を分散トレーシングで可視化します。たとえばOpenTelemetryを使ってスパンを記録し、Jaegerなどのトレーシングバックエンドに集約する構成が典型的です。これにより、SLO(サービスレベル目標)のP99レイテンシを定義・監視できます。

フィードバックループとは、ユーザーの反応(クリック・スキップ・明示的な評価)をモデルやランキングの改善に継続的に反映する仕組みです。本番AI基盤でこのループが機能しないと、精度の劣化が静かに進行します。フィードバックイベントをストリーミングで収集し、特徴量ストアに蓄積する設計が一般的です。

サプライチェーンセキュリティとBumblebee

AIパイプラインを構成するOSSライブラリ自体のリスクも見逃せません。Perplexity AIがオープンソース化したBumblebeeは、開発者のローカル環境を対象にしたサプライチェーンスキャナー(依存ライブラリの脆弱性・設定ミスを検出するツール)です。

サプライチェーン攻撃とは、信頼されたライブラリに悪意あるコードを混入させる手口を指します。2021年のLog4Shellや、PyPIへのタイポスクワッティングパッケージが代表例です。AIワークロードはPython依存が深く、pip install一発で何十ものパッケージが入るため、CI/CDパイプラインへのスキャン組み込みが特に有効です。

# Bumblebeeを使った依存関係スキャンの例(概念的な実行イメージ)
bumblebee scan --path ./requirements.txt --output json > scan_report.json

BumblebeeをGitHub ActionsなどのCI環境に組み込むと、プルリクエストごとに依存関係の健全性を自動確認できます。IaC(Terraform/Pulumiなどのインフラ定義コード)と組み合わせてデプロイ前ゲートとして機能させる設計も考えられます。

本番AI基盤の設計ポイント整理

今回のシード記事が示す技術を整理すると、以下の観点が浮かびます。

  • RAGパイプラインはステップごとに独立した障害ドメインを持つため、各ステップにSLO指標(レイテンシ・エラー率)を設定する
  • インテント分類とベクトル検索は並列化・非同期化によってP99レイテンシを制御できる
  • フィードバックループの停止は精度劣化というサイレント障害につながるため、ループ自体の稼働をモニタリングする
  • AIパイプラインを構成するPythonライブラリはサプライチェーンリスクを持つため、CI段階でスキャンを自動化する

AIエージェントのメッシュ構成(複数エージェントが相互に状態を共有し合う設計)については、エージェント間の通信プロトコルや状態の一貫性保証が新たな障害モードを生みます。従来のマイクロサービス間通信と同様に、サーキットブレーカーやリトライポリシーの設計が必要になるでしょう。AI基盤特有の「不正確な出力」というサイレント障害を可視化するオブザーバビリティ設計が、次のSRE実践の主戦場になりつつあります。

参考

DoorDash RAG Architecture, AI Agent Mesh, & Open-Source Supply-Chain Scanner

この記事について: 本記事は AI を活用して作成し、forva AI 編集部が内容を確認・監修しています。

AI 駆動開発のご相談は forva AI へ。まずはお気軽にどうぞ。