社内ナレッジを活用するRAG(検索拡張生成)システムの構築
DefinitionRAG(検索拡張生成)とは、LLMが学習していない社内データや最新情報を、外部データベースから検索(Retrieve)して回答生成(Generate)に組み込む技術のことです。
TL;DR (要約)
RAGの精度は、モデルよりも「データ整備・権限・更新フロー」で決まります。最初は用途(FAQ/手順/規程)を絞り、検索対象と品質基準を明確にします。監査可能性(ログ)と運用(更新・廃止)まで設計して、継続利用できる形にします。
この記事でわかること
- RAGとは(何が解決できるか/できないか)について学べます
- 失敗パターン(データが汚い・権限が破綻・更新が止まる)について学べます
- 設計の要点(ソース選定・権限・メタデータ)について学べます
- 精度改善の進め方(評価→改善→再評価)について学べます
- 運用設計(更新、廃止、監査ログ、責任分界)について学べます
- 導入ロードマップ(PoC→本番の要件)について学べます
- チェックリスト(最小構成で始める)について学べます
RAGとは(何が解決できるか/できないか)
LLM(大規模言語モデル)は、インターネット上の一般的な知識は持っていますが、「御社の就業規則」や「先月の売上データ」は知りません。これらをAIに「カンニング」させる技術がRAG (Retrieval-Augmented Generation) です。
- できること:社内ドキュメントに基づく回答、根拠(ソース)の提示、最新情報の反映。
- できないこと:データが存在しないことへの回答(推測で答えてしまう)、カオスなデータからの正確な抽出。
RAG vs ファインチューニング (Fine-tuning) 比較表
| 比較軸 | RAG (推奨) | ファインチューニング |
|---|---|---|
| 知識源 | 外部データベース (Vector DB) | モデル自体の重み (Weight) |
| コスト | 安価 (DB料金 + API利用料) | 高額 (GPU計算リソースが必要) |
| 更新頻度 | リアルタイム (DB更新のみ) | リードタイム長 (再学習が必要) |
| ハルシネーション | 根拠を提示できるため抑制しやすい | 抑制が難しく、もっともらしい嘘をつく |
| 向き不向き | 知識検索、FAQ、マニュアル | 特定文体への矯正、医療用語理解 |
ベクトルDB(Vector DB)とは?
例え話:図書館の司書さん
- 従来の検索(キーワード)は、「タイトルに『売上』が含まれる本」しか探せません。
- ベクトル検索(意味検索)は、「『景気が良い』雰囲気の本」といった意味の近さで探せます。
- これを実現するために、文章を数値(ベクトル)に変換して保存する場所がベクトルDBです。
仕組み(3ステップ)
- Embedding:文章をAIで「数値の座標」に変換する。
- Indexing:その数値をベクトルDBに保存する。
- Search:質問文も数値に変換し、座標が近いデータを引っ張ってくる。
失敗パターン(データが汚い・権限が破綻・更新が止まる)
RAG導入が失敗する典型的な原因は、技術ではなく「データ」にあります。
- Garbage In, Garbage Out :古いマニュアル、未確定の議事録、重複ファイルなどが大量に検索対象に含まれていると、AIは誤った情報を参照します。
- 権限の壁 :役員報酬規定などが検索対象に含まれてしまい、一般社員がAI経由で閲覧できてしまう事故。
- 更新の断絶 :元のドキュメントが更新されても、RAG側のデータベース(Vector DB)が更新されず、回答が陳腐化する。
設計の要点(ソース選定・権限・メタデータ)
成功の鍵は「検索対象を絞ること」です。ファイルサーバー全体を検索対象にするのではなく、「AIに読ませて良い(品質が担保された)フォルダ」を作成し、そこだけを参照させます。
| 対象データ | 判断基準 |
|---|---|
| 【推奨】確定情報 | 就業規則、公式マニュアル、プレスリリース、FAQ。 → 優先的に取り込む |
| 【注意】フロー情報 | 日報、Slackログ、議事録。 → 文脈が不明瞭なため、ノイズになりやすい。要加工。 |
| 【禁止】機微情報 | 個人情報、パスワード、人事評価、インサイダー情報。 → 絶対に取り込まない(物理的に隔離する) |
推奨技術スタックの選定観点
特定の製品ありきで選ぶのではなく、要件(データ量・セキュリティ・コスト)に合わせて選びます。
- Vector DB (保存場所)
- Pinecone:フルマネージドで手軽。小規模〜中規模向け。運用負荷が低い。
- Weaviate / Qdrant:オープンソースあり。オンプレミスや自社VPC内で完結させたい場合。
- pgvector (PostgreSQL):既存のRDB運用に乗せたい場合。SQLと混ぜて使えるのが強み。
- Framework (開発ツール)
- LangChain:機能豊富でデファクトだが、抽象度が高くブラックボックスになりがち。
- LlamaIndex:データロード(取り込み)機能が強力。RAGに特化するならこちらが便利。
精度改善の進め方(評価→改善→再評価)
RAGの精度が出ない場合、以下のどこに問題があるか切り分けます。
- 検索(Retrieval)の失敗 :必要なドキュメントがヒットしていない。
→ キーワードの類義語登録、チャンク(分割)サイズの調整、ハイブリッド検索(キーワード+ベクトル)の導入。 - 生成(Generation)の失敗 :ドキュメントは渡せているが、AIの回答が変。
→ プロンプトの改善(「以下の情報を元に答えて」という指示の強化)、モデルの変更(GPT-3.5 → GPT-4o)。
運用設計(更新、廃止、監査ログ、責任分界)
作ってからが本番です。ドキュメントは日々増え、古くなります。「マニュアルが更新されたのに、AIが古い回答をし続ける」のが最大のリスクです。
これを防ぐには、データ更新をトリガーにAIを再学習させる自動化フロー(正確にはRe-indexing)を組むか、運用担当者が定期的にデータを入れ替える業務フローを確立する必要があります。
システムは生き物です。データの鮮度を保つ仕組みが必要です。
- 更新フロー:元のマニュアルが更新されたら、Webhook等で即座に再インデックス(学習)される自動化フローを組む。
- 監査ログ:ユーザーが「どのドキュメントを参照して」回答を得たのか、ソースへのリンクを必ず表示させる。
- 責任分界:「回答が間違っていた場合、責任はAIではなく、元ドキュメントの管理者か、確認しなかったユーザーにある」という免責事項をUIに明示する。
導入ロードマップ(PoC→本番の要件)
いきなり全社展開せず、以下のステップで進めます。
- PoC(概念実証):IT部門や特定のプロジェクトチーム(10名程度)に限定し、特定のドキュメント(例:社内PCセットアップ手順)のみで試す。
- ドキュメント整備:PoCで見えた「AIが答えにくい形式(画像の多いPDF、スキャンPDF)」を修正する。Markdown形式が最も精度が出やすい。
- 本番展開:部署単位で権限設定を行いながら対象範囲を広げる。
チェックリスト(最小構成で始める)
RAG構築前に確認すべき項目です。
重要ポイント
チェックリスト
- □ 検索対象にするドキュメントの範囲は明確か(全部入れない)
- □ ドキュメントの中に個人情報や機密情報が含まれていないか確認した
- □ ドキュメントのファイル形式はAIが読みやすいか(テキスト抽出可能か)
- □ 元ファイルが更新された際、どうやってRAG側に反映するか決まっているか
- □ 「アクセス権限」の設計ができているか(役職ごとの閲覧制限)
- □ AIが回答に「参照元(ソース)」を提示するUIになっているか
- □ 回答精度を誰がどうやって評価するか決まっているか(評価データセット)
- □ プロンプトインジェクション対策(「以前の命令を無視して」等)は考慮されているか
- □ ログ(質問と回答)を保存し、定期的にモニタリングできるか
- □ 利用者に対し「AIは間違う可能性がある」ことの周知徹底ができているか
AI活用でビジネスを変革
RAG構築から生成AIの業務組込まで、実践的なAIソリューションを提供します。
実務で使えるビジネスAI導入:生成AIと自動化の融合
このテーマの全体像を把握し、より体系的な理解を深めましょう。