はじめに

皆さんは「RAG」という言葉はご存知でしょうか。「RAG」とは「Retrieval-Augmented Generation」の略で、AI がデータベースから関連情報を検索し、その情報を用いて、回答の生成を行う技術のことです。
例えば、自社内の FAQ などを読み込ませたお問い合わせチャットボットを作成し、業務の効率化を図ることが可能です。
この RAG の使用にあたり、検索方法を選択することができます。どの検索方法を用いるかは、RAG の精度向上を求めるうえで大切なポイントになります。
そこで本記事では Azure AI Search の「検索方法」について比較をしてみようと思います。

「検索方法」の種類について

Azure AI Search には大きく分けて以下4種類の検索方法があり、返答にそれぞれ違いがあります。

  1. キーワード
  2. セマンティック
  3. ベクトル
  4. ハイブリッド+セマンティック

1.キーワード

キーワード検索では、データベースの情報と文字列が一致している場合に回答が生成されます。
検索しているキーワードと文字列が一致しない場合、検索の精度は低下していきます。

2.セマンティック

セマンティック検索とは、検索キーワードの意味や意図を理解し、それらに基づき、最も関連性の高い検索結果を探す方法です。
そのため、AI側が意味や意図を理解するため、曖昧な表現や語句でも回答が返って来やすいメリットがあります。

3.ベクトル

ベクトル検索のポイントは「数値化」です。
テキストや画像などのデータを数値化し、その数値と類似しているものや関連する情報を見つけ出す検索方法です。語句の意味を数値化するため、完全一致しない語句でも近しい意味合いのものを抽出、検索結果に反映してくれます。

4.ハイブリッド+セマンティック

まず、ハイブリッド検索とは、キーワード検索とベクトル検索を合わせた検索方法を指します。ハイブリッド検索では、両者のメリット・デメリットを互いに補い合うことで、検索精度が向上します。
「ハイブリット+セマンティック検索」では、セマンティック検索も一緒に行われるため、検索キーワードとの関連性も高くなり、検索精度も非常に高くなります。

それぞれの検索結果

実際にサンプルの就業規則を学習させたチャットボットを作成し、「検索方法」の種類ごとに検索をしてみました。
ここでは、全ての検索方法で「産休について」という同じ文章を質問し、返答によってどう違いがあるのかをご紹介します。

1.キーワード

「産休」というキーワードを見つけることができていますが、回答では具体的なことはあまり載っておらず、どこに問い合わせれば良いかについて詳しく書かれています。

2.セマンティック

「産休」という略語でも、しっかり質問の意図を把握し、回答が返ってきていることがわかります。
「キーワード検索」より端的かつ要点を抑えており、わかりやすい回答です。

3.ベクトル

参照元を見つけ出しており、回答の根拠がしっかりしているように見えます。
就業規則の本文も併せて確認できる点が良いですね。

4.ハイブリット+セマンティック

参照元は他の検索方法よりも多く提示されており、より多くの場所から参照していることがわかります。就業規則のどの部分を参照しているのかわかりやすいです。
やはり「ハイブリット+セマンティック」を使用したものが一番精度が良く、理想に近い回答が返ってくることがわかります。

「RAG」のメリット

「RAG」は、企業独自のデータ(就業規則等)をデータベースに読み込ませることで、そのデータを基に回答を生成することが可能です。企業独自のデータを外部のモデルが学習することはないため、データ流出の心配はなく、セキュリティ面でも安心です。
チャットボットの導入や AI 活用に興味がある方がいらっしゃいましたら、お気軽にお問い合わせください。