Azure AI Searchの便利機能!クエリリライティングを試してみる

こんにちは、MS開発部の渋谷です。
本記事をご覧いただいた皆さんはAzureを使ってRAGの構築を進めている方が多いのではないでしょうか? OpenAI社のGPTモデルをはじめとして多種多様なモデルが登場してくる中で、自社が持つデータ資産をうまくRAGに活用していきたいという需要はますます拡がってきています。
Azureには組織がRAGを構築するために活用できる様々なサービスが提供されており、Azure AI Searchはその中でも代表的な製品です。元々Azure Searchというサービス名で提供されており、全文検索を活用したチャットボットの開発などで広く使われてきた実績のある製品です。
本記事ではMicrosoft Ignite 2024で発表されたAzure AI Searchの便利機能であるクエリリライティングを紹介します。
セマンティックランカーとは
クエリリライティングの機能の有効化にはセマンティックランカーという機能が必要なため、まずはセマンティックランカーについて簡単に説明をします。
セマンティックランカーは、検索クエリとドキュメントの意味的な関連性を理解し、より自然な検索体験を提供するための機能です。従来のキーワードベースの検索とは異なり、意味ベース(セマンティック)で結果をランク付けします。
主な特徴を以下にまとめます。
●自然言語理解:
クエリの意図を理解し、単語の一致だけでなく意味の近さで検索結果を評価
●AIモデルによるランク付け:
Microsoftの大規模言語モデル(LLM)を活用して、関連性の高いドキュメントを上位に表示
●検索精度の向上:
ユーザーが求める情報により近い結果を返すため、FAQやナレッジベースなどに特に有効
セマンティックランカーは生成AIが登場する以前から、FAQ検索や社内ドキュメント検索などで使用されてきた技術です。単純な全文検索ではなくより精度の高い回答を得るのに有効な手法です。
クエリリライティングとは
クエリリライティングは、ユーザーが入力した検索クエリをより適切で検索エンジンにとって理解しやすい形に書き換えることで、より関連性の高い検索結果を返す技術です。日本語だと「クエリ書き換え」と表現されているようです。
主な機能を以下にまとめます。
●同義語展開:
例:「PC」→「パソコン」「コンピューター」など、意味が近い語を追加
●スペル修正:
タイプミスや誤字を自動で修正
●自然言語の正規化:
口語的な表現を検索に適した形式に変換
●意図推定:
クエリの背後にあるユーザーの意図を推測し、より適切な検索を実行
クエリリライティングは製品名や略語が多い業界や多言語対応が必要とされる現場における活用が期待されています。ユーザーによる曖昧な表現もくみ取って変換をしてくれるため、セマンティックランカーと掛け合わせて活用することでより精度の高い回答を得ることができます。
実際に試してみた
それでは早速試してみましょう。Azureポータルにサインインをし、Azure AI SearchをBasicプラン以上でデプロイします。本記事投稿時点では米国東部・北ヨーロッパ・東南アジアリージョンのみで利用可能な機能になっていますので、最新情報は公式ドキュメントの情報を確認しながら進めてください。

「セマンティックランカー」メニューを開き「選択されたプラン」と表示されていれば有効化されています。デフォルトでは無料プランが有効化されているので、有償プランを使用したい方は「プランの選択」をクリックしてください。

本記事ではサンプルデータを利用します。「概要」メニューに戻り「データのインポート」を選択します。

データソースで「サンプル」を選択し、「hotels-sample」をクリックします。

コグニティブスキルの作成はスキップします。

システムによって表示されたデフォルトの設定のまま次に進みます。

システムによって表示されたデフォルトの設定のまま「送信」します。

「インデックス」メニューから先ほど作成したインデックスを選択します。

「セマンティック構成」から「+セマンティック構成の追加」をクリックし、以下のように入力をして「保存」します。

画面が切り替わったら「保存」します。以上でAzure AI Search側の準備は完了です。

結果の確認
こちらに記載されているサンプルのJSONを使って挙動を確認してみます。「インデックス」メニューから先ほど作成したインデックスを選択するとクエリを試すことができます。

サンプルが英語になっているので日本語に翻訳すると以下のようになっています。
●クエリの日本語訳:
水辺近くの新しいホテルで、素晴らしいレストランがあるところ
●書き換えられたクエリ:
高評価の飲食店がある新しいウォーターフロントのホテル
高評価のレストランがある新しいウォーターフロントのホテル
優れた食事が楽しめる新しいウォーターフロントのホテル
高評価の食事が楽しめる新しいウォーターフロントのホテル
高評価のレストランがある新しい水辺のホテル
抽象的な文章の意図を推測して分かりやすい文章に変換するという処理がかかっていることが分かります。本来であれば自前でこのような仕組みを作る必要がありますが、Azure AI Searchを使うことでフルマネージドに処理をしてくれるので便利ですね。
さいごに
本記事ではAzure AI Searchの便利機能であるクエリリライティングを紹介しました。サンプルの関係で英語での検証となりましたが、日本語でも動作することを確認しています。
本記事作成時点ではプレビュー製品となっておりますので、本番運用におけるご利用にはお気を付けください。また、最新情報は公式ドキュメントをご参照ください。
皆様の業務に少しでもお役に立つ情報をお届けできていれば幸いです。
以上、最後までご愛読いただき
ありがとうございました。
お問い合わせは、
以下のフォームへご連絡ください。