本文へスキップ
BecomeCoder

RAGコース · 第5章 精度を上げる · レッスン18

「検索がRAGの命」― ありがちな失敗パターン

ローカル実施

導入

RAGを作って動かしてみると、生成モデルLLM)自体は賢いのに、答えがズレることがよくあります。原因を探っていくと、たいてい検索が間違った文書、あるいは何も関係ない文書を拾ってきていたというオチにたどり着きます。「Garbage in, garbage out(ゴミを入れればゴミが出る)」という言葉のとおり、検索でズレた文書を渡してしまえば、生成がどれだけ賢くても正しい答えにはなりません。

説明

代表的な失敗パターンを5つ挙げます。

  1. チャンクが大きすぎる/小さすぎる:大きすぎると関係ない話まで一緒に検索され、ノイズが増える。小さすぎると文脈が途切れ、意味が通じなくなる。
  2. 語彙ミスマッチ:質問と文書で言い回しが違うと、うまく拾えないことがある。キーワード検索は同義語・言い換えに特に弱い。
  3. 関連文書がそもそも索引に無い:文書収集やチャンク分割の段階で漏れていれば、どんなに検索を工夫しても見つけようがない。
  4. top-kの設定が悪い:小さすぎると正解を取りこぼし、大きすぎると無関係な文書まで混ざってノイズになる。
  5. 複数文書にまたがる質問に弱い:「AとBを比較して」のような質問は、1回の検索だけでは片方の情報しか拾えないことがある。

このうち①③は文書の準備段階(第2章)の話なので、この章では②④⑤への対策と、①をさらに一歩進めるチャンク戦略の工夫を扱います。どのレッスンがどの失敗に対応するかを一覧にしておきます。

失敗パターン対策対応レッスン
①チャンクが大きすぎ/小さすぎチャンクサイズの見直し・親子チャンク・メタデータレッスン22
②語彙ミスマッチキーワード検索とベクトル検索を組み合わせる/質問を言い換えて増やすレッスン19・レッスン21
③索引に無い文書収集・チャンク分割を見直す(第2章の範囲)第2章
④top-kが悪い多めに取ってから絞り込む2段構え(リランキング)レッスン20
⑤複数文書にまたがる質問質問を複数の視点に分けて検索するレッスン21

そして最後のレッスン23では、これらの対策が本当に効いているかを数字で確認する方法を学びます。感覚だけで「良くなった気がする」で終わらせないための、大事な仕上げです。

まとめ

  • 検索がズレていれば、生成がどれだけ賢くても正しい答えにはならない(garbage in, garbage out)。
  • ありがちな失敗は、チャンクサイズ・語彙ミスマッチ・索引漏れ・top-k設定・複数文書質問の5つ。
  • この章はそれぞれへの対策を扱い、最後に効果を数字で測る方法(レッスン23)で締めくくる。