RAG・検索基盤

RAGとは|各段が9割でも、3段を通ると72.9%にしかならない

RAGとはどういう構成なのかどの段で落ちるのか全体の精度はどう決まるのか

社内の文書を検索して、その内容でAIに答えさせる構成があります。分ける、探す、答えるという段を通ります。

実際に走らせたところ、分け方を変えただけで最後まで届いた問いが5件から2件に落ちました。段が重なると、各段の取りこぼしが掛け算になります。

この記事の要点

  • 条ごとに分ければ5問すべて最後まで届く
  • 30文字ごとに分けると2問まで落ちる
  • 落ちたのは探す段で、分ける段は5/5だった
  • 各段が9割でも、3段通ると72.9%

各段が9割でも、3段を通ると72.9%にしかならない

3つの段を通して実際に走らせました。分け方を変えただけで、最後まで届く問いが5件から2件に落ちます。

RAGの構成で、どの段が結果を左右するのかを実際に走らせて測りました。用意したのは条文8件と、問い5件です。

分割も検索も判定も本当に実行しています。数えたのは段ごとの通過で、どこで落ちたかを切り分けられるようにしました。

javascript
// 段1: 分ける
const splitBy = (mode2) => {
  if (mode2 === 'sentence') return SENTS;
  const full = SENTS.join('');
  const o = []; for (let i = 0; i < full.length; i += 30) o.push(full.slice(i, i + 30));
  return o;
};
// 段2: 探す(語の重なりで上位1件)
const find = (chunks, q) => { /* 問いの語を最も多く含む塊を返す */ };
// 段3: 答えられるか(渡した塊に答えが入っているか)
const canAnswer = (chunk, want) => chunk.includes(want);
text
分け方        段1で答えが同じ塊  段2で正しい塊を選ぶ  段3で答えられる
条ごと                    5 / 5               5 / 5            5 / 5
30文字ごと                 5 / 5               2 / 5            2 / 5

段ごとの通過率をかけ合わせたときの、最後まで届く割合

段1  段2  段3  最後まで届く
100% 100% 100%        100.0%
 90%  90%  90%         72.9%
 80%  80%  80%         51.2%
 60%  80%  90%         43.2%

上の表の段1を見てください。どちらの分け方でも5/5です。答えの数値は、どこかの塊には必ず入っています。

落ちたのは探す段

差がついたのは段2です。30文字ごとに切ると、正しい塊を選べたのは2件でした。

原因は塊の中身です。機械的に切ると1つの塊に複数の条文が混ざり、問いと関係のない語も一緒に入ります。その塊が選ばれてしまいます。

落ちた段は取り返せない

段3の列は、段2と同じ数字になりました。探す段で外した問いは、答える段でも当然答えられません

段は順に通るので、前の段で落ちたものは後ろの段で拾えません。答える側の性能を上げても、この2件は戻りません。

掛け算になる

下の表が、段が重なることの意味です。各段が9割でも、3段を通ると72.9%にしかなりません。

8割ずつなら51.2%です。段を1つ足すたびに、全体の水準は下がります。段を増やす設計は、この掛け算を前提に考えることになります。

分ける段は同じ。落ちたのは探す段で、後ろでは取り返せない。

条ごとに分ける・段2通過5落ちた5問30文字ごと・段2235問30文字ごと・段3235問問い5件での実測。段1はどちらの分け方でも5/5で、差は段2から生じた。
図1 ── 段ごとに通過した問いの数
出典Docs by LangChain「Retrieval」2026-08-18 確認
The retrieval pipeline becomes a foundation for a broader system that combines search with generation.
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

RAGとはどういう構成なのか

手元の文書を検索し、見つけた内容をAIに渡して答えさせます。学習させ直さずに、自社の情報を扱えるようにする構成です。

RAGは、手元の文書を検索して、その内容をAIに渡して答えさせる構成です。日本語では検索を組み合わせた生成と呼ばれます。

なぜ検索を挟むのか

AIは学習した時点の内容しか持っていません。自社の規程も、昨日の議事録も知りません

LangChainも、この形が検索を組み合わせた生成の基礎であり、その場に固有の情報でモデルの答えを補強するものだとしています。学習させ直さずに、自社の情報を扱えるようにする手立てです。

通る段

  1. 取り込んで分ける。検索できる単位に切る
  2. 探す。問いに関係する塊を選ぶ
  3. 渡して答えさせる。選んだ塊を文脈として渡す
  4. 答えを確かめる。渡した範囲に収まっているか

4番目は省かれがちですが、渡した範囲を超えた答えが出ることがあります。確かめ方はグラウンディングの記事で扱っています。

検索の上に立っている

同じ文書では、検索の流れが、検索と生成を組み合わせたより広い仕組みの土台になるとされています。

つまり答えの質は、検索の段までで大部分が決まっています。前の節で落ちた3件も、探す段で決まりました。

余談 段ごとに記録できるようにしておく

測ってみて分かったのは、段ごとの通過を記録しておかないと直す場所が決まらないということでした。最後の2/5という数字だけでは、分け方が悪いのか探し方が悪いのか判断できません。段1が5/5だと分かって初めて、探す段に絞れます。

出典Docs by LangChain「Retrieval」2026-08-18 確認
This is the foundation of Retrieval-Augmented Generation (RAG) , enhancing an LLM’s answers with context-specific information.
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

RAGを組むときによくある失敗

最後の数字だけを見ることです。どの段で落ちたかが分からなければ、直す場所も決まりません。

RAGでいちばん多い失敗は、答えの良し悪しだけを見て、モデルや指示を触り続けることです。

答える段を疑いがち

答えがおかしいと、まず答える段を疑います。ところが前の節では、落ちた3件はすべて探す段で決まっていました

この3件については、指示をどう書き直しても答えられません。渡された塊に、答えが入っていないからです。

全部渡せば解決しない

次に出るのが「全部渡せばよい」という案です。ところがLangChainも、モデルの限界として文脈が有限であり、資料の全体を一度に取り込めないことを挙げています。

渡せる量には上限があります。だから探す段が要るという順序になります。

直す順番

  1. 段ごとの通過を記録する。これがないと始まらない
  2. いちばん落ちている段を特定する。前の節では探す段
  3. その段だけを直して測り直す。他は触らない
  4. 全部の段を同時に触る。どれが効いたか分からなくなる

4番目を避けてください。段が3つあると、同時に触ったときの原因の切り分けができません

答えがおかしい原因は、たいてい答える段より前にある。

充足 2 / 4段ごとの通過を記録している段1が5/5と分かって初めて、落ちているのが探す段だと切り分けられる落ちている段だけを直している段が3つあると、同時に触ったとき何が効いたか分からない答えがおかしいと指示を書き直している探す段で落ちた問いは、渡された塊に答えが入っていない全部渡せば解決すると考えている渡せる量には上限がある。だから探す段が要る条文8件・問い5件での実測にもとづく。各段が9割でも3段通ると72.9%になる。
図2 ── RAGを組むときの点検項目
出典Docs by LangChain「Retrieval」2026-08-18 確認
Finite context : they can’t ingest entire corpora at once.
原文Docs by LangChain「Retrieval」 この内容の有効期限2027-02-18

よくある質問

どの段がいちばん効きますか
この計測では探す段でした。分ける段はどちらの方式でも5/5でしたが、探す段で5/5と2/5に分かれています。
なぜ分け方が探す段に効くのですか
分けた塊が検索の対象になるためです。30文字ごとに切ると1つの塊に複数の話題が混ざり、問いと合わない塊が選ばれます。
段ごとに測る必要がありますか
あります。最後の数字だけを見ても、どの段を直せばよいか決まりません。この計測でも、分ける段は問題ありませんでした。
各段を9割にすれば十分ですか
3段を通ると72.9%になります。段が増えるほど、1段あたりに求められる水準は上がります。

まとめ

  • RAGは分ける・探す・答えるの段を通る構成
  • 条ごとに分ければ5問すべて、30文字ごとだと2問
  • 落ちたのは探す段で、分ける段は問題なかった
  • 各段9割でも、3段通ると72.9%

今日から始められること

  1. 実際に聞かれる問いを5件用意する
  2. 段ごとに通過したかを記録できるようにする
  3. 分ける段・探す段・答える段のどこで落ちているかを数える
  4. 落ちている段だけを直す

実務で組んだRAGのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る