RAGとは何か
RAG(Retrieval-Augmented Generation)は、「検索」と「生成」を組み合わせたAI技術です。日本語では「検索拡張生成」と訳されます。
通常の大規模言語モデル(LLM)は、学習済みのデータだけで回答を生成します。しかし、学習データに含まれない社内情報や最新のデータについては答えられません。RAGはこの弱点を補うために、質問に関連する情報をまずデータベースから「検索」し、その結果をLLMに渡して「生成」させる仕組みです。
RAGの処理フロー
- ユーザーが質問を入力する
- 検索エンジンが関連ドキュメントを取得する(Retrieval)
- 取得したドキュメントを文脈としてLLMに渡す
- LLMが文脈を踏まえた回答を生成する(Generation)
この仕組みにより、LLM単体では答えられなかった社内固有の質問にも正確に回答できるようになります。
ベクトル検索の基礎
RAGの検索部分で使われるのがベクトル検索です。従来のキーワード検索は、単語の完全一致や部分一致でドキュメントを探しますが、ベクトル検索は文章の「意味」をもとに検索します。
具体的には、文章をベクトル(数値の配列)に変換し、質問と文書のベクトル間の距離を計算することで、意味的に近い文書を見つけ出します。
たとえば:
- キーワード検索で「リモートワーク 規程」と検索 → 「リモートワーク規程.pdf」がヒット
- ベクトル検索で「在宅で仕事をするときのルール」と検索 → 「リモートワーク規程.pdf」もヒット
後者のように、表現が異なっていても意味が近ければ適切な文書が見つかるのがベクトル検索の強みです。
ナレッジグラフとは
ナレッジグラフは、情報同士の「関係性」をネットワーク構造で表現したデータベースです。
通常のデータベースが表形式でデータを管理するのに対し、ナレッジグラフは「AはBに関連する」「CはDの一部である」といった関係性を明示的に記録します。
ナレッジグラフが解決する問題
社内文書は互いに関連しています。製品仕様書はマニュアルに関連し、マニュアルはFAQに関連し、FAQは問い合わせ履歴に関連します。しかし、ベクトル検索だけではこうした関係性を十分に活用できません。
ナレッジグラフを使うと、ある文書に関連する周辺情報も含めて検索結果に反映できるため、より包括的で文脈を踏まえた回答が可能になります。
GraphRAG:RAGとナレッジグラフの融合
GraphRAGは、RAGのベクトル検索にナレッジグラフの関係性情報を組み合わせた技術です。検索の精度と回答の網羅性が従来のRAGよりも向上します。
従来のRAGとGraphRAGの比較
| 特徴 | 従来のRAG | GraphRAG |
|---|---|---|
| 検索方式 | ベクトル検索のみ | ベクトル検索 + グラフ探索 |
| 文書間の関係 | 考慮しない | 関連文書を自動追跡 |
| 回答の網羅性 | 直接関連する文書のみ | 間接的に関連する情報も含む |
| 複雑な質問への対応 | 苦手 | 得意 |
TIMEWELLのZEROCKは、このGraphRAG技術をエンタープライズ向けに実装しています。社内ドキュメント間の関係性を自動で構築し、「営業資料の中で、先月の顧客Aとの商談に関連する技術仕様はどれか」といった複雑な質問にも対応します。
企業での実践:情報検索の精度を上げるために
RAGやGraphRAGを活用した社内検索を効果的に運用するためには、いくつかのポイントがあります。
データの整備
AIが検索する対象データの品質が、回答の品質を左右します。古い文書の整理、メタデータ(タイトル、作成日、部署など)の付与、重複ドキュメントの統合といった前処理が重要です。
チャンク分割の設計
長い文書を検索可能な単位(チャンク)に分割する際の粒度も、精度に影響します。細かすぎると文脈が失われ、粗すぎると不要な情報が混入します。
フィードバックループの構築
ユーザーからの「この回答は役に立った/立たなかった」というフィードバックを集め、検索精度の改善に活用する仕組みも大切です。
まとめ
- RAGは「検索」と「生成」を組み合わせて、LLM単体では答えられない質問に対応する技術
- ベクトル検索により、キーワードの一致ではなく意味の近さでドキュメントを検索する
- ナレッジグラフは情報同士の関係性をネットワーク構造で管理する
- GraphRAGはRAGとナレッジグラフを融合し、より高精度で網羅的な検索を実現する
次の記事では、企業がAIを導入する際に避けて通れないセキュリティの課題について解説します。