使い方・開発 中級

RAG(検索拡張生成)

Retrieval-Augmented Generation

質問に関係する文書を検索で取り出し、それを LLM に渡してから回答させる仕組みです。モデルが学習していない社内資料や最新情報にもとづいた回答ができます。

別の呼び方RAG、検索拡張生成

例就業規則と社内 FAQ を RAG で検索させ、回答の末尾に参照した規程の条番号を出すようにした。

詳しく

RAG の基本的な流れは次のとおりです。

  1. 文書を適当な長さ(チャンク)に分け、埋め込みに変換して保存する
  2. 質問が来たら、意味の近いチャンクを検索する(キーワード検索と組み合わせることも多い)
  3. 取り出したチャンクを質問と一緒に LLM に渡し、回答させる

ファインチューニングと違い、文書を差し替えるだけで知識を更新できます。回答に出典を付けやすいのも利点です。

精度は「検索で正しい文書を取り出せるか」に大きく左右されます。チャンクの切り方、検索方法、取り出す件数、取り出した結果の並べ替え(リランキング)などを、評価(eval)で確かめながら調整します。文脈長が長くなった現在では、資料が少なければ検索せずに全部渡すほうが簡単で正確な場合もあります。

あわせて知りたい言葉

「使い方・開発」の言葉をすべて見る