アーキテクチャ例

RAG アーキテクチャ例

RAG(Retrieval-Augmented Generation)のクラウドアーキテクチャ構成と、Vector DB・Embedding・LLM 連携の設計パターンを解説します。

RAG とは

RAG(Retrieval-Augmented Generation)は、LLM(大規模言語モデル)の知識制限を外部データで補完するアーキテクチャパターンです。LLM は学習データのカットオフ以降の情報を持たず、プロプライエタリな社内文書も参照できません。RAG はこの課題を解決します。

ユーザーのクエリに対して、まず外部ナレッジベースから関連ドキュメントを検索(Retrieve)し、それを LLM へのプロンプトに付加することで、最新・独自の情報に基づいた回答を生成(Generate)します。

ファインチューニングとの違い

モデルの再学習不要。データ更新がリアルタイム反映可能。

主なユースケース

社内ドキュメント検索・カスタマーサポート・コード支援・法律文書解析

ハルシネーション低減

根拠となるドキュメントを提示することで回答の信頼性が向上

RAG の処理フロー

データ取り込みパイプライン(オフライン)
データソーステキスト抽出チャンク分割Embedding モデルVector DB 保存
クエリ処理パイプライン(オンライン)
ユーザークエリクエリ Embedding類似度検索コンテキスト生成LLM 生成回答

主要コンポーネント

データソース

PDF・Word・Confluence・Notion・SharePoint・GitHub・Webページ等。DocumentParser(python-docx/PyPDF2)でテキスト抽出し、適切なチャンクサイズ(256〜1,024トークン)に分割する。メタデータ(ソースURL・更新日時・カテゴリ)も合わせて保存する。

Embedding モデル

テキストを高次元ベクトル(768〜3,072次元)に変換するモデル。AWS Bedrock の Amazon Titan Embeddings、OpenAI text-embedding-3-large、Google Vertex AI の textembedding-gecko などが代表的。日本語対応の品質に差があるため検証が必要。

Vector DB

ベクトルを効率的に検索するための専用 DB。pgvector(PostgreSQL 拡張)は既存 Aurora/RDS に統合可能でコスト効率が高い。Pinecone・Weaviate は専用 SaaS でスケール性が高い。OpenSearch / Azure Cognitive Search / Vertex AI Vector Search はハイブリッド検索(BM25 + ベクトル)に強い。

生成 LLM

検索されたコンテキストを元に回答を生成するモデル。Claude(Bedrock)、GPT(OpenAI API)、Gemini(Vertex AI)が代表的。コンテキストウィンドウが長いモデルほど多くのチャンクを参照できる。

クラウド別実装例

AWS 実装例

Amazon Bedrock が Embedding(Titan Embeddings)と生成 LLM(Claude)を統合管理。pgvector(Aurora PostgreSQL) で既存 DB にベクトル検索を追加。

S3(ドキュメント保存) → Lambda(Parser + Chunker) → Bedrock Titan Embeddings → Aurora pgvector
ユーザークエリ → API(ECS) → Bedrock Titan Embeddings → Aurora pgvector 類似検索 → Claude
Azure 実装例

Azure OpenAI Service(text-embedding-3-large + GPT)と Azure Cognitive Search(ハイブリッド検索)の組み合わせが標準的。AI Search のセマンティックランキングで精度向上。

Blob Storage → Azure Functions → Azure OpenAI Embeddings → Azure AI Search インデックス
ユーザークエリ → Azure OpenAI Embeddings → AI Search(BM25 + ベクトル) → GPT 生成
Google Cloud 実装例

Vertex AI(textembedding-gecko + Gemini)と Vertex AI Vector Search(旧 Matching Engine)または Cloud SQL pgvector を組み合わせる。

GCS → Cloud Functions → Vertex AI Embeddings → Cloud SQL pgvector / Vector Search
ユーザークエリ → Vertex AI Embeddings → Vector Search → Gemini 生成

設計上の考慮点

チャンクサイズ

小さすぎると文脈不足、大きすぎるとノイズが増える。256〜512トークンがバランスが良く、オーバーラップ(20〜50トークン)で文脈の断絶を防ぐ。

メタデータ設計

ソース・更新日時・カテゴリ・部門などのメタデータを付与し、フィルタリング検索を可能にする。古いドキュメントの自動除外も重要。

ハイブリッド検索

ベクトル検索(意味的類似)と BM25 キーワード検索を組み合わせることで、専門用語や固有名詞の検索精度が向上する。RRF(Reciprocal Rank Fusion)でスコアを融合。

レイテンシ最適化

類似検索は近似最近傍探索(ANN)を使用することでミリ秒単位に短縮。よくある質問の回答は Redis にキャッシュして応答速度を向上させる。

ArchitectAI でクラウドアーキテクチャ設計を自動化しましょう

無料で始める(10クレジット)