- RAG
- データガバナンス
RAG本番化の6ステップ:文書解析から引用元の明示まで
執筆:Apollaデリバリーチーム読了目安:約4分
まず結論
RAGの回答品質は、文書解析、セマンティックチャンク分割、ベクトル化、ハイブリッド検索、リランキングと圧縮、引用付き生成という6つの工程が組み合わさって決まります。実務では、「回答が不正確」という問題の約60%は検索より前の工程(解析とチャンク分割)に原因があり、モデルの問題ではありません。模範解答付きの100〜300件の評価セットで再現率、リランキングのヒット率、忠実度を層ごとに測定して初めて、どの工程に原因があるのかを特定できます。
ステップ1:文書解析
企業の文書には、表、多段組みレイアウト、スキャン画像が多く含まれます。汎用パーサーが表を順序の崩れたテキストに分解してしまうと、そこを起点に後続のあらゆる工程が機能しなくなります。OCR、レイアウト解析、表の復元の各機能を備えたうえで、PDF、Word、PowerPoint、画像のそれぞれに適した解析経路を選び、見出し階層やページ番号といったメタデータを保持する必要があります。
ステップ2:セマンティックチャンク分割
固定文字数で分割すると、本来ひとまとまりである規程の条文が途中で切れてしまいます。より良いのは、意味と見出し階層に沿って分割し、オーバーラップウィンドウを設け、親子チャンクを採用する方法です。検索は小さなチャンクで精度を確保し、モデルに渡す際には親チャンクを添えて文脈を欠けのない状態に保ちます。
ステップ3:ベクトル化
汎用のEmbeddingモデルは、業界用語や社内略語を表現する力に限りがあります。ある程度のラベル付きデータが揃った段階でドメインデータを使ってEmbeddingをファインチューニングすると、通常は再現率が5〜15ポイント向上します。マルチベクトル表現(同じチャンクから要約ベクトルと原文ベクトルの両方を生成する方法)は、長い文書に対して特に効果的です。
ステップ4:ハイブリッド検索
ベクトル検索は意味的な近さに強く、BM25は型番、番号、人名などの完全一致に強みがあります。両者を組み合わせ、クエリの書き換え(同義語展開、HyDE)を加えるのが、現時点で安定した手法です。ナレッジグラフは、多段階の推論が必要なケース(「A部門の上位部門の責任者は誰か」など)で両者の弱点を補います。
ステップ5:リランキングと圧縮
20〜50件の候補パッセージを取得したら、Rerankモデルで精密に並べ替え、上位5〜8件を生成工程に渡します。コンテキスト圧縮で質問と無関係な文を取り除けば、トークンを節約できるうえ、無関係な内容にモデルが引きずられる確率も下がります。
ステップ6:引用付き生成
モデルには回答の中で引用したパッセージの番号を明記させ、画面表示の際にはそれを原文へのクリック可能なリンクに変換します。忠実度チェックでは、回答中の各主張が検索されたパッセージに裏付けられているかを検証し、裏付けが見つからない主張は事実として出力せず、「未検証」と明示します。
- 60%
- 「回答が不正確」の原因が検索より前の工程にある割合
- 5–15ポイント
- ドメインデータでファインチューニングしたEmbeddingによる再現率の向上幅
- 100–300件
- 評価セットの初期規模
Apolla導入実績の統計
評価セットによる層別の原因特定
まず再現率(見つけるべきパッセージを見つけられたか)、次にリランキング(関連パッセージが上位に並んだか)、最後に生成(モデルが検索結果に忠実か)の順に確認します。
各層が個別に指標を出せるようになって初めて、直すべきはパーサーなのか、Embeddingなのか、プロンプトなのかが分かります。層別の指標がないままのRAG最適化は、本質的には当て推量にすぎません。