1. はじめに
LLMは多様なタスクで活躍しますが、特定知識の文書検索には限界があります。Retrieval-Augmented Generation (RAG) は、LLMが外部知識を参照し、高精度な検索と回答生成を実現するフレームワークです。本稿では、RAGによる文書検索精度向上に焦点を当て、主要な技術と戦略を紹介します。
2. データ取り込みとチャンキング
データの質とチャンキング戦略はRAGの要です。
- 固定サイズ:トークン数や文字数で分割。オーバーラップで文脈途切れを緩和
- 文ベース:文単位で分割し意味まとまり保持
- 段落ベース:段落ごと分割で豊かな文脈維持
- セマンティック:埋め込みで意味関連文をグループ化し精度向上
- 再帰的:階層分割で文脈損失防止
- スライディングウィンドウ:オーバーラップ付き固定サイズで関連性判断支援
- コンテンツアウェア:内容理解し意味ある単位で分割
- エージェント:LLMが最適分割を自動決定
- Small-to-Big:小チャンクで検索し必要に応じ大チャンク取得
3. 埋め込みモデルの選択とファインチューニング
埋め込みモデルの選択と調整は重要です。
- 汎用埋め込みモデル: OpenAI、Cohereなどが提供
- オープンソース埋め込みモデル: Sentence Transformersなど
- ドメイン固有埋め込みモデル: 特定分野に特化
- ファインチューニング: タスク特化で精度向上。MRLで次元削減も可能
4. 高度な検索技術
高度な検索技術で精度を向上させます。
- 文脈埋め込み:タイトル等付加で精度向上
- クエリ変換:LLMで書き換え・拡張。HyDE、マルチクエリ、ステップバックなど
- グラフ検索:知識グラフで関係性に基づき検索(GraphRAG)
- ハイブリッド検索:キーワード(BM25)とベクトル検索の組み合わせ
5. 生成フェーズの強化
検索結果を活かし高品質な応答を生成します。
- プロンプトエンジニアリング:適切な指示で正確な回答を生成
- コンテキスト圧縮:冗長情報削除し必要な情報保持
- 再ランキング:関連性の高い順に並べ替え
- CoTプロンプティング:段階的推論で複雑な質問に対応
- Self-RAG:自己評価で誤情報抑制
- LLMファインチューニング:RAGアプリに最適化
- NLIフィルタリング:無関係なコンテキストを除外
6. 評価指標
性能評価は改善に不可欠です。
- 検索品質:適合率、再現率、MRR、NDCG
- 生成品質:関連性、正確性、忠実性、ハルシネーション、流暢性、多様性
- システム全体:文脈関連性と根拠の正確性
- 評価フレームワーク(Ragas、Quotient AI、Arize Phoenix)も利用可能
7. まとめ:継続的な改善で高精度な文書検索
RAGによる文書検索精度向上には、データ準備から評価までの最適化が重要です。本稿で解説した技術を活用し、継続的な改善を図ることで、より高度な検索システムを実現できます。