ベクトル検索以外のRAG手法7選|比較表付き解説

RAG=ベクトルDBは誤解。BM25、Web検索、GraphRAGなど7つの手法を比較表で整理。データ規模・コスト・精度での選び方を解説します。

はじめに

「RAGを導入したい」という話になると、多くの場合「じゃあベクトルDBを選定しなきゃ」という流れになります。

弊社でもRAG構築・導入支援サービスを提供しており、RAGについて説明する機会が多くあります。その中で「RAG」と「ベクトル検索」を同じ文脈で質問されることがよくあります。

確かに、トレンドとしてRAGとベクトル検索を同じ文脈で語ることは間違いではありません。しかし、実はChatGPTやClaudeの検索機能もWeb検索エンジンと連携した「RAG」の一種です。

本記事では、RAGの原論文に立ち返り、RAGの本質は「検索手法」ではないということを整理します。そして、ベクトル検索以外にどのような外部情報の取り込み方があるのかを俯瞰的に紹介します。

RAGの定義に立ち返る

RAGとは何か

RAG(Retrieval-Augmented Generation:検索拡張生成)とは、LLM(大規模言語モデル)に外部の情報を与えることで、回答の精度を向上させる手法です。LLMは学習データに基づいて回答を生成しますが、学習後の最新情報や社内固有の知識は持っていません。RAGはこの課題を「外部から必要な情報を検索して補う」というアプローチで解決します。

RAGの階層構造を整理する

RAGを理解するために、以下の階層構造を整理しておきましょう。

ここで重要なのは、RAGの本質は「外部知識をコンテキストに補うアプローチ」であり、「どう取り込むか」は手段の話だということです。ベクトル検索は実装選択肢の一つに過ぎません。

原論文(Lewis et al., 2020)の定義

RAGの原論文では、RAGを以下のように定義しています。

“models which combine pre-trained parametric and non-parametric memory for language generation”
(言語生成のために、事前学習済みのパラメトリックメモリと非パラメトリックメモリを組み合わせたモデル)

  • パラメトリックメモリ: LLMが学習時に獲得した知識(モデルの重みに格納)
  • 非パラメトリックメモリ: 外部から取得する知識(検索で取得)

注目すべきは、この定義に「ベクトル検索」という限定がないことです。論文の実装例ではDPR(Dense Passage Retrieval)というベクトル検索手法が使われていましたが、RAGの定義自体は「外部知識をどのように取得するか」を限定していません。

論文における概念の発展

RAGという概念は、様々な論文が発表される中で発展を続けています。

  • 2020年: RAGは「BART + DPR」という特定のモデルアーキテクチャとして提案されました。論文では “RAG models”、”fine-tuning recipe” といった用語が使われています。
  • 2024年: RAGは「外部知識とLLMを統合するための包括的な概念」として再定義されています(RAG SurveyModular RAG)。”RAG paradigms”、”framework”、”LEGO-like framework” といった用語が使われ、単一の技術ではなく目的達成のための概念・考え方として扱われています。

補足: RAGの発展段階(Naive → Advanced → Modular)や各手法の数値的な比較については、弊社ブログ「RAGはどのように進化しているのか?」で体系的に解説しています。本記事では「RAGとは何か」という概念の整理に焦点を当てます。

RAGにおける外部情報の取り込み方

RAGを実現するための外部情報の取り込み方は、ベクトル検索だけではありません。ここでは代表的な手法を紹介します。

手法選択の考え方は「ユースケースに適した方法で、必要な情報をLLMに与える」です。各手法には得意な情報の特性があり、ユースケースに応じて選択します。また、単一の手法だけでなく、複数の手法を組み合わせることも有効な選択肢です。

なお、どの手法を選択しても、導入して終わりではありません。精度測定と継続的なメンテナンス(チューニング、データ更新、クエリ最適化など)は共通して必要な取り組みです。

ベクトル検索型

埋め込みベクトルによる意味的類似度検索を行う手法です。

  • 特徴: 意味的な類似性を捉えられる
  • 適したユースケース: 「〇〇に似た事例は?」「関連するドキュメントを探したい」など、意味的に類似した情報を探す場面
  • 実現キーワード: Auzre AI Search , Pinecone, FAISS, pgvector, Milvus, Chroma, Weaviate, Qdrant

キーワード検索型(BM25)

従来の全文検索アルゴリズムを活用する手法です。

  • 特徴: 完全一致が重要な場面で有効
  • 適したユースケース: エラーコード検索、法律条文、製品型番、固有名詞など、完全一致・部分一致が重要な場面
  • 実現キーワード: Auzre AI Search, Elasticsearch, OpenSearch, Apache Solr, Whoosh

ハイブリッド検索型

ベクトル検索とキーワード検索を組み合わせ、リランキングと併用する手法です。

  • 特徴: 意味的類似性と完全一致の両立
  • 適したユースケース: 意味的類似性と完全一致の両方が求められる場面、大規模データで高い検索精度が必要な場面
  • 実現キーワード: Azure AI Search, Elasticsearch (kNN + BM25), OpenSearch, Pinecone (Hybrid), Weaviate (Hybrid)

Web検索型

外部検索エンジンと連携してリアルタイム情報にアクセスする手法です。

  • 特徴: リアルタイム情報へのアクセスが可能
  • 適したユースケース: 最新ニュース、現在の価格・在庫、イベント情報など、リアルタイム性が求められる情報
  • 実現キーワード: ChatGPT Search, Claude Web Search, Gemini Grounding, Perplexity, Bing API, Google Custom Search API

構造化検索型

ナレッジグラフや構造化データベースを活用する手法です。

GraphRAG

  • ナレッジグラフを活用し、エンティティ間の関係を検索
  • 適したユースケース: 「AとBはどう関係する?」「〇〇に関連する人物は?」など、関係性を辿る必要がある場面

SQL検索

  • 構造化データからの正確なデータ取得
  • 適したユースケース: 売上データ、在庫数、ユーザー情報など、構造化データから正確な値を取得する場面
  • 実現キーワード: Neo4j, Amazon Neptune, Azure Cosmos DB (Gremlin), PostgreSQL, BigQuery

マニュアルRAG(人力補填型)

人間が選択的に文章を補填する手法です。

  • 特徴: 文脈理解や暗黙知の活用が可能
  • 適したユースケース: PoC・少量運用、暗黙知の活用、システム化前の検証、文脈依存で人間の判断が必要な場面
  • 実現キーワード: コピー&ペースト、社内Wiki参照、ドキュメント手動選択

実は、ChatGPTやClaudeにファイルをアップロードして質問するのも、広義ではマニュアルRAGの一種と言えます。言葉が異なるだけで、概念的にはRAGを触っている機会は多いのかもしれません。

手法の分類まとめ

手法の全体像

手法選択の比較表

手法情報の特性データ規模初期コスト運用負荷精度安定性
ベクトル検索意味的類似大規模対応中〜高
BM25完全一致大規模対応低〜中
ハイブリッド両方大規模対応最高
Web検索リアルタイム外部依存外部依存
GraphRAG関係性中規模向きユースケース依存
SQL検索構造化データ大規模対応中(既存活用)低〜中
マニュアルRAG文脈依存小規模のみ高(人的)人依存

まとめ

本記事では、RAGの本質と外部情報の取り込み方について整理しました。

RAGは単一の技術ではなく、LLMの回答精度を向上させるための概念です。 論文でも2024年以降は「パラダイム」「フレームワーク」として扱われています。

RAGの目的は「要求される回答精度の達成」です。 手法はあくまで目的達成のための手段であり、ベクトル検索は選択肢の一つに過ぎません。

ただし、ベクトル検索が有効なケースが多いのも事実です。 大規模データで意味的な検索が必要な場面では、ベクトル検索やハイブリッド検索が有効であり、多くのRAGシステムで採用されています。それが唯一の選択肢ではない、ということです。

手法選択は戦略的判断です。 精度要件、コスト、スケール、運用負荷を考慮し、ユースケースに応じて最適な取り込み方を選びましょう。


RAG導入をご検討の方へ

弊社では、RAGを活用したソリューションを提供しています。

  • 社内ナレッジ活用AIチャット導入サービス:
    お客様のAzure環境に弊社RAGプロダクトを構築します。導入だけでなく、導入後の精度改善の支援や、利用普及に向けた支援などトータル的にサポートを行います。
  • RAGスターターパック:
    RAGプロダクトをスピーディーに導入します。、チャットUI+回答精度の評価・改善のためのオールインワン基盤をご提供しています。導入後はお客様側で自由なカスタマイズを実地いただけます。とりあえず試してみたい!という方にお勧めです。

「RAGを導入したい」「どの手法を選べばいいかわからない」「RAGの精度が出ない」といったお悩みがあれば、お気軽にご相談ください。


参考文献

  1. Lewis, P., et al. (2020). “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.” arXiv:2005.11401. https://arxiv.org/abs/2005.11401
  2. Gao, Y., et al. (2024). “Retrieval-Augmented Generation for Large Language Models: A Survey.” arXiv:2312.10997. https://arxiv.org/abs/2312.10997
  3. Gao, Y., et al. (2024). “Modular RAG: Transforming RAG Systems into LEGO-like Reconfigurable Frameworks.” arXiv:2407.21059. https://arxiv.org/abs/2407.21059

関連記事

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。
エンジニア募集中!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です