ハイブリッド検索の威力を検証!Knowledge Bases for Amazon Bedrock

記事タイトルとURLをコピーする

サーバーワークスの村上です。

2024年3月1日のアップデートでKnowledge Bases for Amazon Bedrockがハイブリッド検索に対応しました。

以前にも「RAGの主役は生成AIではなく検索システムだ」というブログで検索の重要性を書いていますが、今回ハイブリッド検索が追加されたことで、あらためて検索の違いによるLLMの回答差異を検証してみたいと思います。

blog.serverworks.co.jp

そもそもKnowledge Bases for Amazon Bedrockって何?という方は以下のブログもご参照ください。

blog.serverworks.co.jp

やったこと

  • 徳川15代将軍それぞれのWikipediaの記事を15個のtxtファイルにしてAmazon S3に保存、これをデータソースにしました
  • ベクターデータベースに以下を設定しました
    • Amazon OpenSearch Serverless
    • Aurora Serverless v2 for PostgreSQL
  • 「生類憐れみの令を発布したのは誰」という質問をしてみました。検索は以下4パターンです
    • Amazon OpenSearch Serverless(Default search)
    • Amazon OpenSearch Serverless(Hybrid search)
    • Amazon OpenSearch Serverless(Semantic search)
    • Aurora Serverless v2 for PostgreSQL

※埋め込みモデルはいずれもTitan Embeddings G1 - Text v1.2を使用

まずは結論

「生類憐れみの令を発布したのは誰」という質問に、「徳川綱吉」と正しく回答できたのはハイブリッド検索のみでした。

アップデートの概要:ハイブリッド検索とは?

もともと密ベクトル検索を使う仕組みでしたが、キーワード検索も組み合わせたハイブリッドな検索ができるようになったという内容です。

aws.amazon.com

ハイブリッド検索自体はAmazon OpenSearch Serviceの2.11からサポートしていましたが、今回はKnowledge Bases for Amazon Bedrockでもハイブリッド検索を選択できるようになったというアップデートです。

aws.amazon.com

注意事項:ハイブリッド検索が使えるのはデータベースにAmazon OpenSearch Serverlessを選択した場合のみ

上記のとおりハイブリッド検索はAmazon OpenSearch Serviceの機能に依るものですので、Knowledge Bases for Amazon BedrockのベクターデータベースにAmazon OpenSearch Serverless以外を選択した場合は使用できません。

検証結果

動画

youtu.be

※回答生成のための待ち時間をカットしています。

Default searchの場合。不正解です

Default searchとは?

Amazon Bedrock decides the search strategy for you.

とあるように、Amazon Bedrockが検索手法を良しなに決めてくれるようです。

Hybrid searchの場合。正解できています

Semantic searchの場合。不正解です

Aurora Serverless v2 for PostgreSQL

Aurora Serverless v2 for PostgreSQLの場合。検索手法の選択肢はありません

考察

まず前提としてキーワード検索とベクトル検索とで優劣はありません。キーワード検索の方が適切に検索できる場合もあるし、その逆もあると理解しています。

そのうえで、今回私が検証したのは「徳川家綱」とか「徳川綱吉」とか「徳川吉宗」とか、かなり近いワードを扱う内容で、かつそれぞれが違う人物を意味しています。

正答するためにはこれらを区別する必要があるわけですが、このようなケースはキーワード検索が得意とする範疇なのだと考えます。

検索手法 特性
キーワード検索 表現の揺れに弱い。少しでも語句が異なると別の言葉と認識する
ベクトル検索 表現の揺れに強い。PCパソコンなど意味的に近いものを判断できる

※あくまでこれは私の考えです。

番外編:Amazon Q

Amazon Qは現在プレビュー中の機能で、基本は英語での利用が主ですが、直接ファイルをアップロードする場合は日本語も対応しています。

ただし、アップロードできるファイル数は最大5つまでとなっており、フェアな比較になっていないため番外編としました。

結果は正しく回答できています。

以上、とても面白い結果になり楽しかったです。

村上博哉 (執筆記事の一覧)

2020年4月入社。機械学習が好きです。記事へのご意見など:hiroya.murakami@serverworks.co.jp