なぜあなたのRAGシステムはハルシネーションを起こすのか

あなたのRAGシステムの検索精度は34%です。チュートリアルはすべてこなしました。適切なライブラリも使いました。ブログ記事を参考にチャンクサイズも選びました。それでも、システムは失敗し続けます。

これはツールの問題ではありません。基礎の問題です。

下層のレイヤーを理解せずにライブラリを積み重ねると、「抽象化の負債(abstraction debt)」が生じます。スピードは手に入りますが、デバッグ能力を失います。ブラックボックスを作り上げてしまうのです。

RAGパイプラインを修正するには、3つのレイヤーをマスターする必要があります。

  1. Chunking Strategy(チャンク戦略) チャンクサイズは意味論的な決定です。チャンクが512トークンであれば、段落単位の検索になります。もし質問が多くの段落にまたがるアイデアを繋ぎ合わせる必要のあるものであれば、チャンクが小さすぎます。チャンク間でどれだけのコンテキストを流すかを決定しなければなりません。

  2. Embedding Models(埋め込みモデル) 高密度埋め込み(Dense embeddings)は意味を捉えますが、正確な構文を失います。モデルによっては「error 403」と「error 404」をほぼ同一のものとして扱うかもしれません。モデルが何を捉えているかを知る必要があります。法的契約書には、コードリポジトリとは異なる埋め込みが必要です。

  3. Retrieval vs. Recall(検索 vs. 再現率) ベクトル検索は、関連する可能性のあるものすべてを見つけ出します。これが再現率(recall)です。本番環境のRAGには精度(precision)が必要です。必要なのは10個の似たような段落ではなく、正確な回答です。だからこそ、ハイブリッド検索が必要なのです。

ハイブリッド検索は、高密度ベクトルとキーワードマッチング(BM25)を組み合わせます。

  • 純粋なセマンティック検索は、正確なコードやIDを見逃します。
  • 純粋なキーワード検索は、概念的な意味を見逃します。
  • ハイブリッド検索は、両方に重み付けをして真実を見つけ出します。

最適な重みはマニュアルには載っていません。自身のデータでテストすることで見つけ出すものです。

魔法に頼るのはやめましょう。もし基礎的なRAGパイプラインをゼロから構築できないのであれば、Agentic RAGへの準備はできていません。基礎を理解していないと、複雑さは増大します。

次のプロジェクトの前に、これら4つのことを行ってください。

  • チャンクのベンチマーク。3つの異なるサイズをテストする。top-1およびtop-5の精度を測定する。
  • 実際のデータで埋め込みをテストする。合成テストではなく、実際のユーザーのクエリを使用する。
  • 失敗をログに記録する。2週間、失敗したすべてのクエリを記録する。検索が何を見逃しているのか、そのパターンを探る。
  • 一度BM25を実装してみる。後でライブラリを使うとしても、キーワードベースの基準(baseline)を理解しておく必要があります。

ライブラリは時間を買ってくれます。理解は信頼性を買ってくれます。

Source: https://dev.to/xu_xu_b2179aa8fc958d531d1/why-your-rag-system-keeps-hallucinating-the-hidden-cost-of-skipping-fundamentals-1no8

Optional learning community: https://t.me/GyaanSetuAi