読む順番の目安
RAGそのものの仕組みはRAG:検索でLLMに最新の知識を持たせるにあります。こちらはその先—— 動かしてみたが精度が出ない、というところから始まるカタログです。まず評価で失敗が検索側か生成側かを切り分け、検索側ならチャンク設計と取り込みという土台から見直すのが遠回りに見えて最短です。
解説記事
設計パターン
どの問題に効く手なのかを明示。効果とコストの両方を見て、入れる順序を判断できるように。
RAGの評価 — どこが悪いのかを切り分けて測る
「なんとなく良くなった気がする」から抜け出せる。検索と生成を分けて測る指標を組み立て、失敗が検索側か生成側かを数字で切り分けられるようになる。
small-to-big と文脈圧縮 — 検索する単位と渡す単位を分ける
チャンクを小さくすると当たるが文脈が足りない、大きくすると当たらないというジレンマを解消できる。親子チャンク・窓の拡張・文脈圧縮の3手法を使い分けられるようになる。
クエリ変換 — 質問と文書の言葉のずれを埋める
ユーザーの質問がそのままでは検索に向かない理由を理解し、HyDE・マルチクエリ・クエリ分解・ステップバックを使い分けられるようになる。どの手法がどのずれに効くかを判断できる。
チャンク分割の設計 — 検索精度の8割はここで決まる
RAGの精度が出ない原因の多くはチャンク設計にある。固定長・文単位・意味的・親子の4方式を使い分け、粒度とオーバーラップを根拠を持って決められるようになる。
ハイブリッド検索とRRF — 語彙検索とベクトル検索を融合する
ベクトル検索だけでは型番や固有名詞を取りこぼす理由が分かり、BM25との併用で穴を塞げるようになる。スコアの正規化を回避して2つの順位を統合するRRFの式まで実装できる。
メタデータフィルタとルーティング — 検索する前に範囲を絞る
類似度だけに頼る検索の限界を、構造化された条件で補えるようになる。事前フィルタと事後フィルタの違い、権限による絞り込み、複数コーパスへの振り分けを設計できる。
リランキング — 2段構えで精度とコストを両立する
検索は当たっているのに回答がずれる原因を、順位の粗さとして特定できるようになる。bi-encoderとcross-encoderの構造的な差を理解し、2段構えの設計とコストの見積もりができる。
自己改善型RAG — 検索結果を評価して引き直す
一発勝負の検索が外れたときに黙って誤答する構造を、評価と再検索のループで断てるようになる。Self-RAG・CRAG・Agentic RAGの違いと、コストに見合う導入判断ができる。
取り込みパイプライン — 検索できる形に整える前工程
検索精度の問題が実は取り込みの失敗であるケースを見抜けるようになる。PDF抽出・表・更新の反映・削除の伝播という、地味だが破壊的な4つの落とし穴を潰せる。