OpenSearch Serverless でのニューラル検索とハイブリッド検索の設定 - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenSearch Serverless でのニューラル検索とハイブリッド検索の設定

Neural Search

Amazon OpenSearch Serverless は、データに対するセマンティック検索オペレーションのニューラル検索機能をサポートしています。ニューラル検索は、機械学習モデルを使用してクエリの意味論的意味とコンテキストを理解し、従来のキーワードベースの検索よりも関連性の高い検索結果を提供します。このセクションでは、必要なアクセス許可、サポートされているプロセッサ、標準の OpenSearch 実装との主な違いなど、OpenSearch Serverless でニューラル検索を設定する方法について説明します。

ニューラル検索では、データに対してセマンティック検索を実行できます。セマンティック検索では、検索クエリの意図を理解する意味を考慮します。この機能は、次のコンポーネントを利用しています。

  • テキスト埋め込み取り込みパイプラインプロセッサ

  • ニューラルクエリ

  • ニューラルスパースクエリ

ハイブリッド検索を使用すると、キーワード検索機能とセマンティック検索機能を組み合わせることで、検索の関連性を向上させることができます。ハイブリッド検索を使用するには、検索結果を処理し、ドキュメントスコアを組み合わせた検索パイプラインを作成します。詳細については、OpenSearch Documentation ウェブサイトの「Search pipelines」を参照してください。ハイブリッド検索を実装するには、次のコンポーネントを使用します。

  • 正規化検索パイプラインプロセッサ

    サポートされている正規化手法
    • min_max

    • l2

    サポートされている組み合わせ手法
    • arithmetic_mean

    • geometric_mean

    • harmonic_mean

    正規化と組み合わせの手法の詳細については、OpenSearch ドキュメントウェブサイトの「リクエスト本文フィールド」を参照してください。

  • ハイブリッドクエリ

ニューラルクエリとハイブリッドクエリ

デフォルトでは、OpenSearch はキーワードベースの Okapi BM25 アルゴリズムを使用してドキュメントスコアを計算します。これは、キーワードを含む検索クエリに適しています。ニューラル検索は、自然言語クエリの新しいクエリタイプと、セマンティック検索とキーワード検索の両方を組み合わせる機能を提供します。

例 : neural
"neural": { "vector_field": { "query_text": "query_text", "query_image": "image_binary", "model_id": "model_id", "k": 100 } }

詳細については、OpenSearch Documentation ウェブサイトの「ニューラルクエリ」を参照してください。

例 : hybrid
"hybrid": { "queries": [ array of lexical, neural, or combined queries ] }

詳細については、OpenSearch Documentation ウェブサイトの「ハイブリッドクエリ」を参照してください。

Amazon OpenSearch Serverless でセマンティック検索コンポーネントを設定するには、OpenSearch ドキュメントウェブサイトのニューラル検索チュートリアルのステップに従います。これらの重要な違いに注意してください。

  • OpenSearch Serverless はリモートモデルのみをサポートします。リモートホストモデルにコネクタを設定する必要があります。リモートモデルをデプロイまたは削除する必要はありません。詳細については、OpenSearch Documentation ウェブサイトの「Getting started with semantic and hybrid search」を参照してください。

  • ベクトルインデックスに対して検索する場合、または最近作成した検索および取り込みパイプラインを検索する場合、最大 15 秒のレイテンシーが予想されます。

アクセス許可の設定

OpenSearch Serverless でのニューラル検索には、次のアクセス許可が必要です。詳細については、「サポートされているポリシーのアクセス許可」を参照してください。

例 : ニューラル検索ポリシー
JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "NeuralSearch", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:CreateCollectionItems", "aoss:CreateMLResource", "aoss:DescribeCollectionItems", "aoss:UpdateCollectionItems", "aoss:DeleteIndex", "aoss:DeleteCollectionItems", "aoss:DeleteMLResource", "aoss:APIAccessAll", ], "Resource": "*" } ] }
  • aoss:*Index – テキスト埋め込みが保存されるベクトルインデックスを作成します。

  • aoss:*CollectionItems – 取り込みパイプラインと検索パイプラインを作成します。

  • aoss:*MLResource – テキスト埋め込みモデルを作成して登録します。

  • aoss:APIAccessAll – 検索および取り込みオペレーションのための OpenSearch APIs へのアクセスを提供します。

以下に、ニューラル検索に必要なコレクションデータアクセスポリシーについて説明します。プレースホルダー値を特定の情報に置き換えます。

例 : データアクセスポリシー
[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems", "aoss:UpdateCollectionItems", "aoss:DeleteCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResources"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] } ]