RAGとは
RAG(Retrieval-Augmented Generation:検索拡張生成)とは、AIが回答を生成する前に、外部の信頼できる情報源から関連情報を検索し、その情報をプロンプトに組み込む手法です。
AIモデルの学習データに含まれていない最新情報や、企業内の非公開ドキュメントに基づいた正確な回答を得るために不可欠な技術です。
RAGの主なメリット
- ハルシネーション(嘘)の抑制:根拠となる情報を提示させることで、正確性が向上します。
- 情報の鮮度:モデルを再学習させることなく、最新情報を反映できます。
- セキュリティ:機密情報をモデルの学習に使わずに、安全に活用できます。
RAGの基本アーキテクチャ
一般的なRAGシステムは、以下の3つのプロセスで構成されます。
1. インジェクション(データ登録)
ドキュメントを適切なサイズに分割(チャンキング)し、ベクトル化してデータベースに保存します。
2. リトリーバル(検索)
ユーザーの質問に関連する情報を、ベクトルデータベースから検索・抽出します。
3. ジェネレーション(生成)
抽出した情報と元の質問を組み合わせ、AIに回答を生成させます。
ベクトルデータベースの選定
RAGの心臓部となるのがベクトルデータベースです。用途やデータ量に応じて適切なものを選択する必要があります。
- Pinecone:フルマネージドでスケーラビリティに優れたSaaS。
- Chroma:軽量でオープンソース。ローカル環境やプロトタイプ開発に最適。
- Supabase (pgvector):PostgreSQL上でベクトル検索を実現。既存のDBと統合しやすい。
- Elasticsearch:大規模な全文検索とベクトル検索を組み合わせたハイブリッド検索が可能。
チャンキング戦略
ドキュメントをどのように分割するか(チャンキング)は、検索精度に大きく影響します。単に文字数で区切るのではなく、意味のまとまりを維持することが重要です。
代表的なチャンキング手法
- 固定長チャンキング:一定の文字数で分割(最もシンプル)。
- 再帰的文字分割:段落、改行、句点などの区切り文字を考慮して分割。
- 意味的チャンキング:文章の意味的な類似度に基づいて分割。
チャンキング方針の策定プロンプト
以下のドキュメント形式に最適なチャンキング戦略を提案してください。 # ドキュメント形式 【例:社内の就業規則(PDF)、技術仕様書(Markdown)、顧客対応履歴(CSV)】 # 検討事項 ・1チャンクあたりの適切な文字数 ・前後のチャンクとのオーバーラップ(重複)率 ・メタデータとして保持すべき情報(ページ番号、章タイトル等)