検索拡張生成(RAG)の定義

定義

検索拡張生成(RAG)とは、システムがまず文書の集まりから関連する箇所を検索し、それを質問とともにLLMに渡すことで、回答がそのテキストに基づくようにする手法です。

検索拡張生成の仕組み

この用語は、2020年のLewisらの論文に由来します。事前学習済みの系列変換モデルと、Wikipediaの文章を検索できる索引を組み合わせたものでした。ニューラルの検索器が入力に関連する箇所を取り出し、生成器がそれを使って出力を作りました。この考え方は、その特定の設計よりも古く、広く、現在この名前は多くのシステムを指しています。

典型的な形には4つの段階があります。

  1. 索引化。 文書を断片に分割し、検索できる索引に保存します。多くは数値の埋め込みで、言葉だけでなく意味でも検索できるようにします。
  2. 検索。 ユーザーの質問を問い合わせに変え、最も近い断片を返します。
  3. 拡張。 それらの断片を、質問と指示の隣に、LLMの入力として置きます。
  4. 生成。 モデルが、できれば断片の内容だけを使って、回答を書きます。

利点は、モデルを再学習せずに、文書を変えるだけでシステムの知識を変えられることです。ナレッジベースは、そうしたシステムが検索する文書の集まりです。

検索は、正しい回答を保証しません。検索が誤った断片を返したり、何も返さなかったりすることがあり、断片どうしが矛盾することもあり、モデルが断片にないことを付け加えることもあります。検索はハルシネーションを減らしますが、なくすことはできません。

音声エージェントにとって重要な理由

通話では、検索は発信者が待っている間に行われます。検索と、長くなった入力は、音声の遅延に加算されます。そのためチームは、断片を短く保ち、取得する数を制限し、質問が必要とするときだけ検索することもあります。

また、問い合わせの元は音声の文字起こしです。聞き間違えた製品名や、途中で終わった文によって、検索が見当違いの場所へ向かうことがあります。検索の前に質問を書き換えることと、認識エンジンに想定される用語のリストを渡すことは、どちらも役立ちます。

出力は、読まれるのではなく聞かれます。発信者は、出典のリストや長い抜粋を見られないため、エージェントは、取得したテキストを1、2文の話し言葉に変え、関連するものが見つからなかったときははっきりそう伝える必要があります。

例

クリニックの回線の、説明用の検索例です。

  • 発信者:「土曜は予約なしで診てもらえますか。」
  • 取得した断片:「土曜の診療時間は9時から13時まで、予約制のみです。」
  • エージェント:「土曜は予約制のみで、9時から午後1時までです。ご予約なさいますか。」

出典

今すぐ始める

専門家に相談する。

音声体験の開発にCartesiaをどう活用できるか、私たちのチームにご相談ください。

営業に問い合わせる

開発を始める。

APIでモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

Cartesiaを試す