用語解説 ラグ

RAGとは

RAG(検索拡張生成)は、LLMが回答する前に社内文書などを検索し、見つかった内容をもとに答えさせる仕組みです。この記事では、できること、使い方の流れ、費用の内訳、主な提供企業と競合を、エンジニア・企画担当・投資家の立場ごとに解説します。

RAG(Retrieval-Augmented Generation、検索拡張生成)は、大規模言語モデル(LLM)が回答を作る前に外部の文書を検索し、見つかった内容を参考にして答えさせる仕組みです。モデルを再学習させなくても、社内マニュアルや最新の資料に基づいて回答させられるのが特徴です。

RAGとは:何ができるのか

LLMが知っているのは学習データに含まれていた内容だけです。そのため、社内規程や昨日更新された仕様書のことは知らず、聞かれると誤った内容をもっともらしく答える(ハルシネーション)ことがあります。RAGでは、質問のたびに関係する文書を探し出し、「この資料をもとに答えて」とLLMに渡します。こうすることで、手元のデータに基づいた回答ができ、根拠にした文書を示すこともできます。

名前と基本的な考え方は、2020年にFacebook AI Research(現Meta)のLewisらが発表した論文に由来します。

RAGの使い方:基本の流れ

エンジニア向けに、一般的な構成を示します。

1. 準備:PDFやWebページなどの文書を数百〜数千字程度の「チャンク」に分け、埋め込みモデルで数値の列(ベクトル)に変換して、ベクトルデータベースに保存する。 2. 検索:ユーザーの質問も同じ方法でベクトルに変換し、意味の近いチャンクを上位から取り出す。 3. 生成:取り出したチャンクを質問と一緒にプロンプトに入れ、LLMに回答させる。

回答の質を大きく左右するのは、LLMの性能よりも検索の精度です。チャンクの切り方、キーワード検索との併用(ハイブリッド検索)、検索結果の並べ替え(リランキング)を調整するのが実務上の中心になります。

最近は、扱える対象がテキスト以外にも広がっています。当サイトで報じた「EmbeddingGemma 2」は、写真・動画・音声をまとめて検索できる0.74B(7億4,000万パラメータ)の埋め込みモデルで、手元の端末で動かす「ローカルRAG」向けとされています。

RAGの料金:費用は何で決まるか

RAGは手法の名前であり、RAGという製品に決まった料金はありません。費用は主に次の3つの合計です。

- 埋め込みの費用:文書と質問をベクトルに変換する処理(API課金、または自前のサーバ) - ベクトルデータベースの費用:保存するデータ量と検索回数に応じた費用 - LLMの費用:検索した文書をプロンプトに入れるため、入力トークンが増える

具体的な単価はサービスごとに異なり、改定もあるため、ここでは書きません。企画・DX担当の方は、文書の量と月あたりの質問数を見積もったうえで各社の料金表に当てはめるのが確実です。社外にデータを出せない場合は、先ほどのような小型モデルを使ったローカル構成も選べます。

RAGを提供する企業と競合

投資家の視点で見ると、RAGの周辺は複数の層に分かれています。

- ベクトルデータベース:Pinecone、Weaviate、Qdrant、Milvus、PostgreSQLの拡張機能pgvectorなど - 開発フレームワーク:LangChain、LlamaIndexなど - クラウドのマネージドサービス:Azure AI Search、Amazon Bedrock Knowledge Bases、Google CloudのVertex AIなど

競合する手法としては、モデル自体に知識を学習させるファインチューニングがあります。また、LLMが一度に読める文章量(コンテキスト長)が増えたことで、「検索せずに資料を丸ごと渡す」方法と比べられる場面も増えています。ただし、どちらが主流になるかは、現時点では筆者の推測の域を出ません。

用途の例としては、社内ヘルプデスク、規程やマニュアルの検索、専門文書をもとにした下書きの作成などがあります。当サイトで報じたFOXONのBCP策定支援AIは、自社サイトのURLや会社情報を読み込ませて下書きを作る仕組みで、「手元の情報を参照させる」という点でRAGと同じ発想です。ただし、内部でRAGを使っているかどうかは、記事からは確認できていません。

RAGに関する記事

3 件