EXERCISE 60分

ストーリー

田中VPoE
RAGの全体像、Embedding、ベクトルDB — 基礎理論は一通り学んだ。ここからは実践だ。NetShop社の社内ナレッジ検索システムのRAGアーキテクチャを設計してもらう
あなた
いよいよ設計ですね。具体的な要件はありますか?
田中VPoE
もちろんだ。社内の技術文書、議事録、FAQの3種類のドキュメントを対象に、自然言語で質問して的確な回答を返すシステムだ。開発チーム200名が日常的に使う想定だ
あなた
かなりの規模ですね。どこまで精度を求めますか?
田中VPoE
「回答の80%以上が正確」をまず目指す。PoCでNaive RAGから始めて、段階的にAdvanced RAGへ進化させる計画を立ててくれ

ミッション概要

項目内容
演習タイトルRAGアーキテクチャ設計
想定時間60分
成果物RAGアーキテクチャ設計書(要件整理 + 技術選定 + 段階的ロードマップ)

前提条件

NetShop社の社内ナレッジ

項目内容
技術文書約5,000件(Markdown、Confluence)
議事録約30,000件(Google Docs、Notion)
FAQ約3,000件(社内Wiki)
合計ドキュメント数約38,000件
平均ドキュメント長約2,000文字
更新頻度技術文書: 週次、議事録: 日次、FAQ: 月次
利用者開発チーム200名
想定クエリ数1日あたり500件
言語日本語90%、英語10%

技術制約

項目制約
クラウドAWS利用中
予算(年間)500万円(インフラ + API利用料)
開発チームエンジニア3名(6ヶ月)
セキュリティ社内ネットワーク内で完結(外部データ送信の制限あり)

Mission 1: 要件定義とアーキテクチャ選定

要件

以下の項目について整理し、RAGアーキテクチャを選定してください。

  1. 機能要件の整理(検索機能、回答形式、対話機能等)
  2. 非機能要件の整理(精度、レイテンシ、可用性、セキュリティ)
  3. RAGアーキテクチャの選定(Naive/Advanced/Modular)とその理由
  4. 段階的進化計画(Phase 1→Phase 2→Phase 3)
解答例

機能要件

要件ID機能優先度
F-01自然言語による質問・検索必須
F-02回答の根拠ドキュメントの提示必須
F-03ドキュメント種別によるフィルタリング必須
F-04部門・プロジェクト別の絞り込み推奨
F-05フォローアップ質問への対応推奨
F-06回答へのフィードバック機能推奨

非機能要件

要件目標値根拠
回答精度80%以上(Phase 1)、90%以上(Phase 2)ユーザーの信頼獲得に必要
レイテンシ5秒以内ユーザー体験の観点
可用性99.5%(平日営業時間)業務利用のため
同時接続50ユーザーピーク時の想定
セキュリティ社内ネットワーク内完結制約条件

アーキテクチャ選定

Phase 1: Naive RAG + Reranking(3ヶ月目標)

選定理由:

  • 38,000件は中規模であり、Naive RAGでも十分なベースライン精度が見込める
  • Rerankingを追加することで、低コストで精度を向上できる
  • 3名チームで3ヶ月という制約内で実装可能

Phase 2: Advanced RAG(6ヶ月目標)

  • Pre-Retrieval: Query Rewriting追加
  • Post-Retrieval: Cross-Encoder Reranking強化
  • ハイブリッド検索(ベクトル + BM25)導入

Phase 3: Modular RAG(12ヶ月目標)

  • ドキュメント種別ごとのルーティング
  • 自己反省型RAG(Self-RAG)の導入
  • 評価・改善の自動化パイプライン

Mission 2: 技術スタック選定

要件

前提条件と制約を踏まえて、以下の技術選定を行ってください。

  1. Embeddingモデルの選定(理由付き)
  2. ベクトルDBの選定(理由付き)
  3. LLMの選定(理由付き)
  4. フレームワークの選定(LangChain/LlamaIndex等)
  5. 全体アーキテクチャ図の作成
解答例

技術選定

コンポーネント選定理由
Embeddingモデルtext-embedding-3-small(OpenAI)日本語対応良好、コスト効率が高い、1536次元
ベクトルDBQdrant(セルフホスト on AWS)高パフォーマンス、ハイブリッド検索対応、OSSでコスト抑制
LLMClaude 3.5 Sonnet(Anthropic)日本語の回答品質が高い、200Kトークンの長コンテキスト
RerankerCohere Rerank v3日本語対応、API利用で運用負荷低
フレームワークLangChain(Python)エコシステムが充実、各コンポーネントとの統合が容易
インフラAWS ECS + RDS + S3既存AWS環境を活用

全体アーキテクチャ図

[ユーザー]
    ↓ 質問
[API Gateway(FastAPI on ECS)]

[Query Processor]
    ├── Embedding(OpenAI API)
    └── BM25 Index(Qdrant)

[Qdrant(ベクトルDB on EC2)]
    ↓ Top-20結果
[Reranker(Cohere API)]
    ↓ Top-5結果
[Prompt Builder]

[LLM(Claude API)]
    ↓ 回答 + 参照元
[ユーザー]

[バッチ処理(EventBridge + Lambda)]
    ├── ドキュメント取得(Confluence/Notion/Wiki API)
    ├── チャンキング + Embedding
    └── Qdrant Upsert

コスト試算

項目月額年額
OpenAI Embedding API3万円36万円
Cohere Rerank API5万円60万円
Anthropic Claude API15万円180万円
AWS インフラ(ECS + EC2 + RDS)10万円120万円
合計33万円396万円

予算500万円以内に収まる。


Mission 3: リスク分析と対策

要件

以下のリスク分析を行い、対策を立案してください。

  1. 技術リスク(精度不足、レイテンシ超過等)
  2. 運用リスク(ドキュメント更新の遅延、コスト超過等)
  3. セキュリティリスク(データ漏洩、プロンプトインジェクション等)
  4. 各リスクへの緩和策
解答例

リスク分析表

リスクカテゴリ影響度発生確率緩和策
検索精度が目標80%に達しない技術Phase 1で精度測定→ボトルネック特定→チャンキング戦略・Reranking調整で改善
日本語Embeddingの品質不足技術multilingual-e5-largeをフォールバックとして検証済みにしておく
レイテンシが5秒を超過技術ベクトルDB側のインデックスチューニング、LLMのストリーミング応答で体感速度改善
ドキュメント更新パイプラインの障害運用更新ジョブの監視、障害時のアラート、手動トリガーの用意
API利用料の想定超過運用月次コストモニタリング、セマンティックキャッシュの導入検討
社外へのデータ送信(セキュリティ制約)セキュリティEmbedding/LLM APIへの送信データの匿名化、社外送信データのログ記録・監査
プロンプトインジェクションセキュリティ入力バリデーション、システムプロンプトの分離、出力フィルタリング

Phase 1のPoC成功基準

指標基準値測定方法
回答精度80%以上100件のテスト質問で人手評価
レイテンシ P955秒以内パフォーマンステスト
ユーザー満足度4.0/5.0以上パイロットユーザーアンケート
日次コスト1万円以内コストモニタリング

達成度チェック

観点達成基準
要件定義機能要件・非機能要件が具体的に整理されている
アーキテクチャ選定段階的進化計画(Phase 1→2→3)が合理的に設計されている
技術選定各コンポーネントの選定理由が明確で、制約条件を満たしている
コスト試算年間予算500万円以内に収まる見積もりが提示されている
リスク分析技術・運用・セキュリティの3観点でリスクと緩和策が整理されている
PoC基準成功/撤退の判断基準が定量的に定義されている

推定所要時間: 60分