RAG アーキテクチャ例
RAG(Retrieval-Augmented Generation)のクラウドアーキテクチャ構成と、Vector DB・Embedding・LLM 連携の設計パターンを解説します。
RAG とは
RAG(Retrieval-Augmented Generation)は、LLM(大規模言語モデル)の知識制限を外部データで補完するアーキテクチャパターンです。LLM は学習データのカットオフ以降の情報を持たず、プロプライエタリな社内文書も参照できません。RAG はこの課題を解決します。
ユーザーのクエリに対して、まず外部ナレッジベースから関連ドキュメントを検索(Retrieve)し、それを LLM へのプロンプトに付加することで、最新・独自の情報に基づいた回答を生成(Generate)します。
モデルの再学習不要。データ更新がリアルタイム反映可能。
社内ドキュメント検索・カスタマーサポート・コード支援・法律文書解析
根拠となるドキュメントを提示することで回答の信頼性が向上
RAG の処理フロー
主要コンポーネント
PDF・Word・Confluence・Notion・SharePoint・GitHub・Webページ等。DocumentParser(python-docx/PyPDF2)でテキスト抽出し、適切なチャンクサイズ(256〜1,024トークン)に分割する。メタデータ(ソースURL・更新日時・カテゴリ)も合わせて保存する。
テキストを高次元ベクトル(768〜3,072次元)に変換するモデル。AWS Bedrock の Amazon Titan Embeddings、OpenAI text-embedding-3-large、Google Vertex AI の textembedding-gecko などが代表的。日本語対応の品質に差があるため検証が必要。
ベクトルを効率的に検索するための専用 DB。pgvector(PostgreSQL 拡張)は既存 Aurora/RDS に統合可能でコスト効率が高い。Pinecone・Weaviate は専用 SaaS でスケール性が高い。OpenSearch / Azure Cognitive Search / Vertex AI Vector Search はハイブリッド検索(BM25 + ベクトル)に強い。
検索されたコンテキストを元に回答を生成するモデル。Claude(Bedrock)、GPT(OpenAI API)、Gemini(Vertex AI)が代表的。コンテキストウィンドウが長いモデルほど多くのチャンクを参照できる。
クラウド別実装例
Amazon Bedrock が Embedding(Titan Embeddings)と生成 LLM(Claude)を統合管理。pgvector(Aurora PostgreSQL) で既存 DB にベクトル検索を追加。
ユーザークエリ → API(ECS) → Bedrock Titan Embeddings → Aurora pgvector 類似検索 → Claude
Azure OpenAI Service(text-embedding-3-large + GPT)と Azure Cognitive Search(ハイブリッド検索)の組み合わせが標準的。AI Search のセマンティックランキングで精度向上。
ユーザークエリ → Azure OpenAI Embeddings → AI Search(BM25 + ベクトル) → GPT 生成
Vertex AI(textembedding-gecko + Gemini)と Vertex AI Vector Search(旧 Matching Engine)または Cloud SQL pgvector を組み合わせる。
ユーザークエリ → Vertex AI Embeddings → Vector Search → Gemini 生成
設計上の考慮点
小さすぎると文脈不足、大きすぎるとノイズが増える。256〜512トークンがバランスが良く、オーバーラップ(20〜50トークン)で文脈の断絶を防ぐ。
ソース・更新日時・カテゴリ・部門などのメタデータを付与し、フィルタリング検索を可能にする。古いドキュメントの自動除外も重要。
ベクトル検索(意味的類似)と BM25 キーワード検索を組み合わせることで、専門用語や固有名詞の検索精度が向上する。RRF(Reciprocal Rank Fusion)でスコアを融合。
類似検索は近似最近傍探索(ANN)を使用することでミリ秒単位に短縮。よくある質問の回答は Redis にキャッシュして応答速度を向上させる。
ArchitectAI でクラウドアーキテクチャ設計を自動化しましょう
無料で始める(10クレジット)