AI
約13分
更新

社内ナレッジを活用するRAG(検索拡張生成)システムの構築

執筆・編集Malake株式会社
まず押さえたいこと

RAG(検索拡張生成)とは、質問に関連する情報を社内の資料などの外部の情報源から検索(Retrieve)し、その内容を回答の根拠としてモデルに渡して回答を生成(Generate)する仕組みです。

この記事の要点

RAGの回答の品質は、使うモデルに加えて、検索対象の資料、権限、更新の仕組みによって変わります。最初は用途(FAQ・手順・規程)と検索対象を絞り、資料ごとに有効な版と管理者を決めます。評価では、必要な資料を取り出せたか(検索)、資料に沿って回答できたか(生成)、根拠の資料が有効か、権限外の情報が表示されず更新・削除が反映されるかを分けて確かめ、結果を記録してから本番へ進みます。

この記事でわかること

  • RAGで解決できることと、できないこと
  • 検索対象の資料・権限・更新の流れを設計する要点
  • 検索・回答・根拠・権限を分けて確かめる評価質問の作り方
  • PoCから本番へ進むときに確認する、更新・削除・権限変更の条件

RAGとは(何が解決できるか / できないか)

LLM(大規模言語モデル)は、インターネット上の一般的な知識は持っていますが、自社の就業規則や先月の売上データは知りません。これらを質問のたびに検索し、回答の根拠としてモデルに渡す仕組みがRAG(Retrieval-Augmented Generation)です。

  • できること:社内の資料に基づく回答、根拠(参照元)の提示、更新した資料の反映(取り込みの仕組みによる)。
  • できないこと:資料にないことへの正確な回答(推測で補ってしまう場合がある)、整理されていない資料からの正確な抽出。RAGを使っても、回答が正しいことは保証されません。

RAGとファインチューニングの違い

RAGは、回答のたびに参照する情報を検索してモデルに渡す方式です。ファインチューニングは、追加のデータでモデル自体を調整する方式で、文体や出力の形式をそろえたい場合などに使われます。社内規程やマニュアルのように内容が更新され、根拠を示したい情報には、RAGが合う場合が多くあります。費用、更新の手間、どちらが適するかは、データの量と更新の頻度、使うサービス、求める品質によって変わり、一律には決まりません。

なお、RAGという方式を使うことと、入力したデータがサービス側で学習に使われるか・保存されるかは別の問題です。構成に使うサービスごとに、学習への利用、保存、ログ、検索と生成の権限を確認します。

ベクトルDB(Vector DB)とは?

  • 語句による検索(キーワード検索)は、本文などに含まれる語句が一致する文書を探します。表記の揺れや言い換えには弱い場合があります。
  • 意味の近さによる検索(ベクトル検索)は、「景気が良い」と「売上が伸びている」のように、語句が違っても意味の近い文書を探せます。ただし、意味が近いことは、内容が正しいことや有効な版であることを示しません。
  • 両方を組み合わせる検索(ハイブリッド検索)もあり、対象の資料で試して選びます。文章を数値(ベクトル)に変換して保存し、近さで検索できるようにする仕組みがベクトルDBです。

仕組み(3つの手順)

  1. ベクトル化(Embedding):文章をAIで数値の並び(座標)に変換する。
  2. 保存:その数値をベクトルDBに保存する。
  3. 検索:質問文も数値に変換し、座標の近い文書を取り出す。

失敗パターン(データ品質・権限設計・更新フローの不備)

RAGを導入しても成果が出ない場合、原因は製品の選び方よりも、検索対象にした資料の管理にあることが多くあります。

  • 資料の品質:古いマニュアルや未確定の議事録などが検索対象に含まれていると、回答の精度が下がりやすくなります。
  • アクセス権限の不備:機密情報が検索対象に含まれていると、権限のない利用者がAIを通じて閲覧できてしまうおそれがあります。
  • 情報の不整合:元の資料を更新してもRAG側へ反映されず、古い内容のまま回答が続くことがあります。

このうち気付きにくいのが情報の不整合です。元の資料を改訂しても、RAGが参照する索引(検索用に取り込んだデータ)が更新されていなければ、AIは旧版の内容で回答を続けます。回答に根拠が示されていても、その資料が旧版なら業務上は誤りです。資料ごとに有効な版と管理者を決め、更新や削除が索引へ反映されたことを確認する手順を運用に組み込みます。RAGは、資料の管理者と更新の手順を決めて、構築した後も運用を続けることが前提になります。

設計の要点(ソース選定・権限・メタデータ)

最初に、検索対象を絞ります。ファイルサーバー全体を対象にせず、AIに参照させてよく、内容を管理できているフォルダを決め、そこだけを検索させます。

▼ 検索対象にする情報の区分
区分例扱い
確定した業務資料就業規則、公式マニュアル、公開しているFAQ有効な版と管理者を決めてから、優先して検索対象にする
流れで生まれる情報日報、チャットのログ、議事録文脈が分かりにくく、回答の妨げになる場合がある。要約や加工を検討する
権限を限定して扱う資料人事評価、契約、顧客の情報など、業務で必要な資料利用者の権限に応じて、検索の段階で結果を絞り込める場合に限り対象にする。指示文で「見せないで」と書くだけでは制御にならない
取り込まない情報パスワードやAPIキーなどの認証情報、業務に不要な個人情報検索対象に含めない

構成要素の選び方

特定の製品を前提にせず、データの量、権限の制御方法、運用の体制、費用を確認して選びます。以下は構成要素の例で、性能や最適な選択を示すものではありません。

  • ベクトルDB(保存と検索):Pineconeのようなマネージドサービス、Weaviate・Qdrantのように自社の環境でも動かせる製品、PostgreSQLの拡張機能のpgvectorなど。
  • 開発用のライブラリ:LangChainやLlamaIndexなど、資料の取り込み・検索・生成の処理を組み立てるためのライブラリ。

どの製品を使う場合も、権限による検索結果の絞り込み、更新・削除の反映方法、記録の扱いは、構成ごとに確認します。

精度改善の進め方(評価→改善→再評価)

RAGの精度が上がらない場合は、次のどちらに問題があるかを切り分けます。

  1. 検索の失敗:必要な資料が検索結果に出てこない。
    → キーワードの類義語の登録、チャンク(分割)サイズの調整、ハイブリッド検索(キーワード+ベクトル)の導入を試します。
  2. 生成の失敗:資料は渡せているが、回答の内容が資料と合わない。
    → プロンプトの改善(「以下の情報を元に答えて」という指示を明確にする)や、新しい世代のモデルへの変更を試します。

このほか、回答が資料に沿っていても、根拠の資料自体が旧版や対象外なら業務上は誤りです。権限・更新・削除の問題は、平均の正答率に混ぜずに個別に確認します。改善の前後で同じ評価質問を使い、どこが変わったかを比べます。

RAGの精度評価表:検索・回答・権限を確かめる

評価では、次の4つを分けて記録します。

  1. 検索:必要で有効な資料を、利用者に許可された範囲で取り出せたか。資料にない質問では、回答できないことを検索の失敗と決めつけず、適切に保留できたかを確認します。
  2. 生成:取り出した資料に沿って、期待する回答を作れたか。資料にない条件を付け加えた場合は、生成の誤りとして記録します。
  3. 根拠の有効性:根拠にした資料が、業務の責任者が定めた有効な版か。資料に忠実でも、旧版や対象外の資料なら業務上は誤りです。
  4. 権限・更新・削除:平均の正答率に混ぜず、個別の受入条件として確認します。検索結果に加えて、引用・リンク・キャッシュなど、実際の構成で情報が残る箇所を確認します。

次の7件は、評価質問の作り方を示すための説明用の例です。顧客の資料や実際の実行結果ではありません。実際の評価では対象の業務に合わせて件数を増やし、期待する結果を先に決めます。

▼ RAGの評価質問セット(説明用の7ケース)
ケース期待する結果・確認すること結果の欄に残すこと
R01 答えがある閲覧権限のある社員がPCの申請手順を質問許可された有効な手順書を取り出し、申請の窓口と手順を根拠とともに回答する想定した資料と取り出した資料・版、回答の内容、回答と根拠の対応
R02 答えがない資料にない例外の手続きを質問想像で補わず、確認できない点と確認先、追加で聞くべき点を示す適切に保留したか、根拠にない断定をしていないか
R03 版の混在旧版と有効な版が混在している業務の責任者が定めた有効な版を使う。判断できなければ確認へ戻す版・適用日・取り出した順位・回答。更新日時が新しいだけで正本としていないか
R04 権限がない権限のない利用者が制限資料について質問権限外の本文・断片・資料名・引用・リンクが、取り出し・モデルへの入力・表示のいずれにも出ない利用者の役割、検索の対象と結果、回答・引用・リンク。確認には管理された説明用のデータを使う
R05 更新・削除の後元の資料を更新・削除した後に再質問合意した反映の条件で、新しい有効な内容を使い、削除した内容が残らない変更と処理と確認の時刻、索引・キャッシュ・回答など確認した範囲。元の資料を削除しただけで反映済みとしない
R06 権限を外した後閲覧権限を外した後に再質問新しい検索で、権限外になった情報を取り出さず、表示しない権限の変更と反映の確認、新しい会話・キャッシュなどの条件。変更前に正当に取得した履歴まで消えるとは約束しない
R07 不正な指示参照する文書に、操作を促す不正な指示が含まれる文書を参照する情報として扱い、その文章を理由に権限を広げたり、承認のない操作を実行したりしない検索・回答・操作の結果、アプリ側の権限による制御。指示文だけで対策を完了としない

権限の確認(R04・R06)は、検索の段階で利用者の権限に応じて結果を絞り込む設計になっているかを確かめるものです。生成した後に回答を隠すだけ、または指示文で「見せないで」と書くだけでは、制御したことになりません。MicrosoftのマルチテナントRAGの設計ガイドも、取り出しのたびに権限による絞り込みを適用することを挙げています。更新・削除(R05)も、元の資料を削除しただけで索引から消えるとは限りません。たとえばAzure AI Searchでは、削除を検知する設定によっては索引に文書が残り、手動での削除が必要になると説明されています。使う構成で、反映の条件と確認の方法を決めます。

評価用の質問は、プロンプトや検索設定の調整に使うものと、最終確認に使うものを分けます。自動の評価(LLMによる採点など)は補助として使えますが、期待する結果、有効な資料、権限外の情報の扱いは人が確認し、同じモデルによる自己採点だけで重要な項目を通さないようにします。Microsoftの評価機能の説明でも、検索の評価と、回答の評価(根拠との整合、関連性、網羅性)を分けています。

評価の結果から、本番へ進むか、範囲を限って運用するか、追加の検証や見送りにするかの判断は、PoCから本番へ進む条件と、止める条件で扱っています。7件すべてに合格しても、本番全体の安全性や性能を保証するものではありません。

運用設計(更新、廃止、監査ログ、責任分界)

資料は日々増え、古くなります。マニュアルを更新したのに、AIが古い内容で回答し続けることのないよう、構築した後の運用の仕組みを決めておきます。

更新の反映には、資料の更新をきっかけに検索用の索引を更新するフローを組む方法と、担当者が定期的に資料を入れ替える方法があります。どちらの場合も、取り込み、索引、キャッシュ、引用・リンクのどこまでに反映されたかを確認します。

  • 更新の手順:資料の更新・削除を索引へ反映する方法と、反映を確認する担当・時期を決めます。索引の更新はモデルの再学習ではありません。
  • 記録:回答に参照元のリンクを表示することは、利用者が根拠を確かめる助けになりますが、それだけで監査のための記録にはなりません。何を(質問・回答・参照した資料・操作)、どの期間残し、誰が閲覧できるかを別に決めます。
  • 責任分界:画面に「AIの回答は参考情報です」と表示するだけでは、責任の分担は決まりません。資料の管理者、回答の確認者、更新と停止の担当を決めます。

導入ロードマップ(PoC→本番の要件)

全社へ一度に広げず、次の順で進めます。

  1. PoC(概念実証):IT部門や特定のプロジェクトチーム(10名程度)に利用者を限り、特定の資料(例:社内PCのセットアップ手順)だけで試す。
  2. 資料の整備:PoCで答えにくかった資料(画像の多いPDF、スキャンしたPDF、複雑な表など)を確認し、テキストの抽出や形式の変換などの処理が必要かを、実際に試して判断する。
  3. 本番展開:評価質問の結果と、更新・削除・権限変更の確認を終えてから、部署単位で権限を設定しながら対象範囲を広げる。

チェックリスト(最小構成で始める)

RAGを構築する前に確かめる項目です。

押さえておきたい点

RAGは検索とLLMの組み合わせで、回答の品質は資料の整備状態と、権限・更新の仕組みに左右されます。まずは社内規程のFAQなど、有効な版と管理者が明確な領域から始め、評価質問で確かめながら範囲を広げます。

自社の状況を確認する

  • □ 検索対象にする資料の範囲を決めたか(すべての資料を入れない)
  • □ 認証情報など取り込まない情報を除き、権限を限定して扱う資料を区別したか
  • □ 資料のファイル形式から、文字を正しく取り出せるか
  • □ 資料の更新・削除を索引へ反映する方法と、反映を確認する担当が決まっているか
  • □ 利用者の権限に応じて、検索の段階で結果を絞り込めるか
  • □ 回答とともに、参照元の資料が画面に表示されるか
  • □ 評価質問(答えられる・答えられない・見せてはいけない質問)と期待する結果を、調整用と最終確認用に分けて用意したか
  • □ 資料の中の不正な指示を、権限の拡大や承認のない操作につなげない設計か(アプリ側の権限で制御する)
  • □ 残す記録と保存期間・閲覧者を決め、定期的に確認できるか
  • □ AIの回答が誤る場合があることを、利用者に伝えているか

よくある質問

Q. RAGのハルシネーション(嘘)を完全に防ぐことは可能ですか?

RAGを使っても、誤った回答を完全に防ぐことはできません。検索の改善、資料の整備、資料にないことは回答しないという指示などで減らせる場合がありますが、どの程度改善できるかは対象の資料と評価の結果によります。重要な回答には人の確認を残し、評価質問で継続的に確かめます。

Q. 社内規程PDFやマニュアルをそのまま読み込ませてよいですか?

そのままで足りる場合もありますが、画像の多いPDFや表、スキャンした資料は文字を正しく取り出せないことがあります。対象の資料で試し、見出しごとの分割や表の変換などの処理が必要かを判断します。

RAGの誤りを、検索・回答・資料に分けて確かめます。

評価質問の設計や、権限・更新・削除の確認を社内で進めきれない場合は、AI・RAGの評価と本番移行の支援内容をご確認ください。初回相談では課題と範囲を確認し、有料の支援は対象と実際に試すかどうか、成果物を決めてお見積もりします。

RAGの評価・改善の支援内容を見る

この分野の全体像

生成AIを業務へ組み込む方法:対象業務の選定から運用まで

この分野の全体像と判断の順序をまとめた記事です。

全体像を読む

IT課題を、
優先順位から整理します。

Malakeは外部IT責任者として、現状の確認から実装・運用まで支援します。