← 実践記事

OTSUMU KNOWLEDGE

RAGの回答精度を改善する方法:検索・分割・プロンプトの見直し

RAGの回答精度は、失敗を「検索で正しい文書が取れていない」と「文書は取れているのに回答がおかしい」に分けて原因を特定し、チャンク・検索方式・プロンプトの順に見直すと効率よく改善できます。評価セットの作り方から具体的な改善策まで解説します。

RAGの回答精度を上げたいとき、最初にやるべきことは、プロンプトを書き換えることでもモデルを変えることでもなく、「どこで失敗しているか」を切り分けることです。RAGの回答が間違う原因は、大きく二つに分かれます。質問に答えるための文書が検索で取れていない「検索の失敗」と、正しい文書は取れているのに回答の文章がおかしい「生成の失敗」です。この二つは対策がまったく違うため、区別せずに手を入れると、効果のない改善に時間を使うことになります。

実際の現場では、精度の問題の多くは検索の側にあります。そのため改善の順番は、まず評価の仕組みを用意して失敗を分類し、検索の失敗に対してはチャンク(文書の分け方)と検索方式を見直し、それでも残る生成の失敗に対してプロンプトとモデルを見直す、という流れが効率的です。

この記事は、社内文書を検索して答えるAI(RAG)を作ったものの、思ったような精度が出ずに困っている開発担当者や、プロジェクトの責任者に向けて書いています。精度を測る評価セットの作り方、失敗の切り分け方、チャンク・検索・プロンプトそれぞれの改善策、改善を続けるための運用までを、順番に説明します。

RAGの精度が上がらない典型的な症状

精度の問題は、利用者からは「答えが間違っている」「答えてくれない」という形で見えますが、その裏にある原因はさまざまです。まずは、よく見られる症状を整理しておきます。

  • 文書に書いてあるはずのことを「見つかりません」と答える
  • 関係はあるが、質問とは別の箇所の内容を答える
  • 古い版の文書の内容を答える
  • 複数の文書の内容を混ぜて、どちらにも書いていないことを答える
  • 条件によって答えが違うのに、条件を無視して一つの答えを返す
  • 表や箇条書きの内容を読み違える
  • 文書の内容は正しく引いているが、質問への答えになっていない
  • 文書にないことを、もっともらしく付け加える

前半の症状の多くは検索の失敗、後半は生成の失敗に起因することが多いものの、症状だけで原因を決めつけることはできません。次に説明する評価と切り分けの手順で、原因を確かめてから手を打ちます。

評価セットを作り、失敗を切り分ける

まず評価セットを作る

改善の前提になるのが、精度を測るための評価セットです。評価セットがないまま改善を進めると、ある質問が良くなったが別の質問が悪くなった、という変化に気づけません。

評価セットは、次の要素を持つ質問の一覧として作ります。

項目内容
質問実際に利用者が入力しそうな言い方で書く
期待する回答正解の要点。完全な文章でなくてよい
根拠の文書と箇所どの文書のどの部分に答えがあるか
質問の種類単純な事実確認、条件で答えが分かれる、複数文書にまたがる、文書にない(答えてはいけない)など

質問は、実際の問い合わせ記録や、試作段階で利用者に入力してもらった質問から集めるのが理想です。開発者が考えた質問だけで作ると、文書の言い回しに近い質問ばかりになり、実際の利用で起きる失敗を拾えません。言い換えや略語、あいまいな聞き方を含めることが大切です。また、「文書に答えがない質問」も必ず含めます。答えがないときに正しく「分からない」と言えるかどうかは、精度と同じくらい重要な性質です。

評価セットの作り方と採点基準の決め方は、生成AIの出力品質をどう評価するか:評価セットと採点基準の作り方で詳しく解説しています。

採点の仕方を決める

評価セットができたら、採点の仕方を決めます。最初は「正しい」「部分的に正しい」「誤り」「答えるべきでないのに答えた」「答えるべきなのに答えなかった」のような少数の区分で十分です。区分を細かくしすぎると採点者によるばらつきが大きくなります。採点は、少なくとも最初の数回は業務を知っている人が行い、採点の理由をメモとして残しておくと、後で生成AIに採点を補助させるときの基準にもなります。

検索の失敗と生成の失敗を切り分ける

評価セットで回答を採点したら、間違った回答について、検索の結果を確認します。具体的には、回答を作るときにAIに渡された文書の断片(チャンク)の中に、根拠となる箇所が含まれていたかどうかを見ます。

  1. 評価セットの各質問について、検索で取得されたチャンクを記録する
  2. 根拠の箇所が、取得されたチャンクに含まれていたかを確認する
  3. 含まれていなかったものを「検索の失敗」、含まれていたのに回答が間違っていたものを「生成の失敗」に分類する
  4. 検索の失敗について、根拠の箇所が検索結果の何番目にあったか(あるいはまったく出てこなかったか)を記録する
  5. 分類ごとの件数を見て、どちらから手を付けるかを決める

検索の失敗の中でも、「根拠は検索結果の下位にはあったが、AIに渡す件数から漏れた」のか、「そもそも検索結果に出てこなかった」のかで、打つ手が変わります。前者は並べ替えや渡す件数の調整で改善できる可能性があり、後者はチャンクの作り方や検索方式の見直しが必要です。

この切り分けを行うためには、開発の段階から、質問ごとに検索結果と渡したチャンクを記録する仕組みを入れておく必要があります。記録がないと、失敗の原因を推測で議論することになり、改善が進みません。

検索だけの指標を持つ

切り分けができたら、回答の正しさとは別に、検索だけの成績を測る指標を持っておくと改善が速くなります。例えば「根拠の箇所が、AIに渡したチャンクの中に入っていた質問の割合」のような指標です。検索方式やチャンクの変更は、回答を毎回人が採点しなくても、この指標で効果を確かめられます。回答の採点は手間がかかるため、検索の改善は検索の指標で素早く回し、節目ごとに回答全体を採点する、という使い分けが現実的です。

切り分けの具体例

架空の例として、製造業の会社で、製品の保守手順書を対象にしたRAGを作ったとします。評価セットの質問のうち、型番を含む質問の多くで誤った回答が出ていました。検索結果を確認すると、ベクトル検索では型番の違う似た製品の手順書が上位に来ており、正しい手順書はAIに渡す件数から漏れていました。これは検索の失敗です。一方、「部品を交換する前に電源を切る必要があるか」という質問では、正しい手順書のチャンクが渡されていたのに、回答に注意事項が抜けていました。チャンクを見ると、注意事項は手順の前の別の見出しにあり、手順のチャンクとは分かれていました。これはチャンクの問題が生成の失敗のように見えていた例です。このように、記録を見て初めて本当の原因が分かることは珍しくありません。

チャンクの見直し

検索の失敗の原因として最も多いのが、文書の分け方の問題です。文書をどの単位で区切るかによって、検索で見つかるかどうかも、見つかった後にAIが正しく読めるかどうかも変わります。

よくあるチャンクの問題

  • 区切りが細かすぎて、答えに必要な文脈が別のチャンクに分かれている
  • 区切りが大きすぎて、一つのチャンクに複数の話題が混ざり、検索で質問との関係が薄まる
  • 見出しと本文が別のチャンクに分かれ、本文だけでは何についての記述か分からない
  • 表が途中で切れていたり、行と列の関係が崩れたりしている
  • 条件と結論が別のチャンクになり、条件が抜けた状態でAIに渡される

改善の方向

まず、文字数で機械的に区切っている場合は、見出しや条、Q&Aの項目など、文書の構造に沿った区切り方に変えることを検討します。そのうえで、各チャンクの先頭に、文書名と見出しの階層を付けておくと、チャンク単体でも何についての記述かが分かり、検索でも生成でも効果があります。

また、チャンクに「文書の種類」「対象の範囲」「更新日」などのメタデータを持たせると、検索時に絞り込みができ、古い版の混入も防げます。文書の種類ごとの分け方は、RAGのチャンク分割の考え方:文書の種類別に最適な分け方で詳しく扱っています。PDFや表を多く含む資料の場合は、分ける前の前処理で情報が欠けていることもあります。PDFや表を含む社内資料をRAGで扱うときの前処理の工夫もあわせてご覧ください。

検索方式の見直し

チャンクを整えても検索の失敗が残る場合は、検索の方式を見直します。

ベクトル検索だけに頼らない

RAGでは、文章の意味を数値の並びに変換して近いものを探すベクトル検索がよく使われます。言い換えに強い一方で、型番、製品名、規程の条番号、社内の略語のような固有の語句の一致には弱いことがあります。そこで、キーワードの一致で探す従来の全文検索と組み合わせるハイブリッド検索を取り入れると、両方の弱点を補えます。

検索結果を並べ替える

検索で多めに候補を取り、その中から質問との関連が強い順に並べ替えてAIに渡す方法もあります。この並べ替えの処理はリランキングと呼ばれます。「根拠は検索結果の下位にはあったが、AIに渡す件数から漏れた」という失敗が多い場合に特に効果があります。

質問を書き換えてから検索する

利用者の質問は、短すぎたり、話し言葉だったり、前の会話を前提にしていたりします。「それっていつまで?」のような質問は、そのまま検索しても何も見つかりません。会話の文脈を補って検索用の文に書き換える、略語を正式名称に展開する、一つの質問を複数の検索に分ける、といった前処理を加えると、検索の精度が上がります。

メタデータで絞り込む

質問者の所属や、質問の対象となる製品・拠点が分かる場合は、メタデータで検索対象を絞り込みます。全文書から探すよりも、関係のある文書の中から探す方が、無関係なチャンクの混入が減ります。

失敗の傾向見直す対象主な手段
固有名詞・型番・条番号で見つからない検索方式キーワード検索との併用
根拠が検索結果の下位にある検索結果の扱い候補を増やして並べ替える
短い質問・会話の続きで見つからない質問の前処理文脈の補完、言い換えの展開
関係のない文書が混ざる検索対象メタデータでの絞り込み
文脈が欠けたチャンクが渡るチャンク構造に沿った分割、見出しの付与
古い版の内容が出る文書管理とメタデータ版の管理、更新日での除外

プロンプトと生成の見直し

検索で正しいチャンクが渡っているのに回答が間違う場合は、生成の側を見直します。

指示を具体的にする

AIへの指示(プロンプト)で、次のような振る舞いを明確に指定します。

  • 渡した文書の内容だけを根拠に答え、書かれていないことは推測しない
  • 根拠が見つからない場合は、分からないと答える
  • 条件によって答えが異なる場合は、条件ごとに分けて答えるか、条件を確認する
  • 回答の根拠となった文書名と箇所を示す
  • 数値や日付、名称は文書の表記どおりに答える

回答を根拠となる情報に結び付けて、根拠のない内容を出さないようにする考え方はグラウンディングとも呼ばれます。

渡す情報の並べ方を工夫する

チャンクを渡すときに、それぞれの文書名、見出し、更新日を付けて区切って渡すと、AIが情報源を区別しやすくなります。関連の薄いチャンクを大量に渡すと、かえって回答が不安定になることがあるため、渡す件数は多ければよいわけではありません。評価セットで件数を変えながら確かめます。

回答の形式を決める

回答の長さや形式も、正確さの受け取られ方に影響します。長い回答の中に正しい内容と不要な内容が混ざると、利用者は肝心の部分を読み落とします。「最初に結論を一文で述べ、次に条件や手順を箇条書きで示し、最後に根拠の文書名を添える」のように形式を決めておくと、回答がそろい、採点もしやすくなります。

回答の例を示す

望ましい回答の形を例として示すと、回答の形式がそろいます。特に、条件で答えが分かれる場合の書き方や、答えがない場合の返し方は、例を示すと安定します。

モデルを見直す

指示を整えても生成の失敗が多い場合は、使っているモデルを見直します。長い文書の読解や、条件の多い判断が苦手なモデルもあります。ただし、モデルの変更は費用や応答速度にも影響するため、評価セットで比較してから判断します。

改善の手順とチェックリスト

ここまでの内容を、改善の手順としてまとめます。

  1. 評価セットを作り、現状の精度を測る
  2. 間違った回答を、検索の失敗と生成の失敗に分類する
  3. 件数の多い方から手を付ける(多くの場合は検索の失敗)
  4. 検索の失敗は、チャンクの作り方、検索方式、質問の前処理、絞り込みの順に見直す
  5. 生成の失敗は、指示の具体化、渡す情報の並べ方、回答例の提示、モデルの順に見直す
  6. 一度に一つの変更だけを加え、評価セットで結果を比べる
  7. 改善した設定と評価の結果を記録し、悪化した質問がないかも確認する
  8. 運用中の利用ログから新しい失敗例を集め、評価セットに追加する

6の「一度に一つの変更」は、地味ですが重要な原則です。複数の変更を同時に加えると、どの変更が効いたのか、どの変更が別の質問を悪化させたのかが分からなくなります。

精度改善チェックリスト

  • 評価セットに、言い換え・略語・あいまいな質問・答えのない質問が含まれている
  • 質問ごとに検索結果と渡したチャンクが記録されている
  • 失敗を検索と生成に分類して件数を把握している
  • チャンクの先頭に文書名と見出しが付いている
  • 表が崩れずにチャンクに入っている
  • 古い版の文書が検索対象から外れている
  • 固有名詞や型番で検索できることを確認した
  • 根拠がない質問に「分からない」と答えることを確認した
  • 変更のたびに評価セット全体で比較している

よくある失敗と避け方

プロンプトの調整から始める

最も手軽なためプロンプトから手を付けがちですが、検索で正しい文書が取れていなければ、どんな指示を書いても正しい回答にはなりません。必ず失敗の切り分けを先に行います。

数件の質問で良し悪しを判断する

目についた数件の質問だけで改善を判断すると、他の質問への影響を見落とします。評価セット全体での比較を習慣にします。

元の文書の問題をAIで解決しようとする

文書同士の内容が食い違っている、古い版が残っている、肝心の情報がそもそも書かれていない、といった問題は、RAGの仕組みをいくら改善しても解決しません。評価で見つかった文書の問題は、文書の管理者に戻して直してもらいます。

改善を一度で終わらせる

文書は追加・改定され、利用者の質問も変わっていきます。運用中のログから失敗例を拾い、評価セットに加え、定期的に精度を測り直す仕組みを用意しておきます。

応答速度と費用を見ずに改善を重ねる

候補を多く取って並べ替える、質問を複数の検索に分ける、大きなモデルに変える、といった改善は、精度を上げる一方で応答までの時間と一回あたりの費用を増やします。精度だけを指標にして改善を重ねると、使われる場面で待ち時間が長すぎる、運用費が想定を超える、といった別の問題が起きます。評価のたびに、精度とあわせて応答時間と費用の目安も記録しておき、業務で許容できる範囲の中で最もよい組み合わせを選びます。

よくある質問

Q. 精度はどのくらいを目標にすればよいですか?

用途によって求められる水準は変わるため、一律の目標はありません。間違えたときの影響が大きい用途ほど高い水準が必要で、同時に「答えられないときに分からないと言えること」を重視すべきです。評価セットを使って、業務の責任者と合格の基準を合意しておくことをおすすめします。

Q. 文書が多いほど精度は上がりますか?

必ずしも上がりません。関係の薄い文書や古い版、内容の重複する文書が増えると、検索で無関係なチャンクが混ざりやすくなります。対象の文書を絞り、管理された状態に保つ方が精度は安定します。

Q. ファインチューニングをすれば精度は上がりますか?

社内文書の内容を正確に答えさせる目的であれば、まずは検索と文書の整備を見直す方が効果的です。ファインチューニングは、回答の形式や振る舞いを変えたい場合に向く手法です。使い分けはRAGとファインチューニングの使い分けで解説しています。

Otsumuに相談できること

対象の文書が少なく、評価セットを作って失敗を切り分ける体制が社内にあれば、この記事の手順に沿ってチャンク、検索方式、プロンプトを順に見直すことで、自社で精度を改善できる場合は多いはずです。まずは検索結果を記録する仕組みを入れ、どこで失敗しているかを数えるところから始めてみてください。

一方で、評価の仕組みがなく何が原因か分からない、PDFや表を多く含む資料が中心で前処理から見直す必要がある、検索方式の変更や並べ替えの仕組みを組み込む開発の手が足りない、といった場合は、外部の力を借りた方が早く進むことがあります。RAGの構築全体を見直したい場合は、RAGシステムの構築手順もあわせてご覧ください。

Otsumuでは、評価セットの設計と失敗の切り分けから、チャンクと検索方式の見直し、プロンプトの改善、運用中の精度監視までを一貫して支援しています。目的から逆算して必要な改善に絞り、AIを活用した少人数の開発で、評価の結果を確かめながら進めます。詳しくはRAG開発のページをご覧ください。

今のRAGがどこでつまずいているか、ログや評価の状況を伺いながら一緒に整理することもできます。30分の無料相談からお気軽にご連絡ください。

この記事について

Otsumu株式会社が執筆しました。統計値や他社の事例には依拠せず、進め方と判断の枠組みを中心にまとめています。法務・税務・会計などの制度は、専門家や公的窓口で最新の情報をご確認ください。

執筆:Otsumu株式会社 / 編集日 2026.10.01

あわせて読む

次の一手を、一緒に。

事業の検証から開発・運用まで、現在の段階に合わせて支援します。

事業について相談する ↗
FROM KNOWLEDGE TO ACTION

知識を、次の一手へ。

30分の無料診断で、次の一手を整理する ↗