このページでは、AlloyDB AI ベクトル検索戦略と、各戦略を使用するタイミングについて説明します。デフォルトでは、AlloyDB は k 最近傍探索(KNN)を使用して、クエリに類似したベクトルを検索します。ベクトル インデックスは、近似最近傍(ANN)と呼ばれる検索戦略を実装します。ベクトル インデックスを作成するときに、AlloyDB AI は ANN を使用します。これにより、KNN よりも優れたパフォーマンスが得られます。ベクトル インデックスを選択する場合は、クエリ レイテンシと再現率のバランスを取る必要があります。
再現率は、特定のクエリに関連するすべてのアイテムを検索がどれだけ効果的に取得できるかを測定します。たとえば、100 個のエンベディングがあり、それぞれがデータベース内のエンティティを表しているとします。ターゲット ベクトルを使用してエンベディングをクエリし、結果を 10 件に制限します。KNN ベクトル検索は、ブルート フォース計算方法を使用して正確に最も近い 10 個のベクトルを検索し、100% の再現率を実現します。ベクトル検索インデックスが作成または選択されていない場合、AlloyDB AI はデフォルトでこの方法を使用します。AlloyDB for PostgreSQL でベクトル インデックスを作成する場合は、通常 ANN が使用されます。ANN は、高速な取得を容易にするために類似性に基づいてベクトルをパーティショニングする場合があります。その結果、ANN を使用すると、前述の例で返された 10 個のベクトルが、距離が最も近い 10 個のベクトルと完全に一致しない場合があります。取得された 10 個のベクトルのうち、クエリベクトルに空間的に最も近いベクトルが 8 個のみの場合、再現率は 80% です。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-06 UTC。"],[[["AlloyDB AI uses k-nearest neighbors (KNN) search by default to find vectors similar to a query, but using a vector index will use Approximate Nearest Neighbor (ANN) for better performance."],["Recall measures how effectively a search retrieves all relevant items, with KNN providing 100% recall by using a brute-force method, whereas ANN may have a slightly lower recall but faster retrieval."],["Query latency is the time it takes for a search to return results after a query is submitted."],["KNN search is recommended when accuracy is crucial and the number of vectors is under 100,000, while ANN is preferred for low latency and databases with more than 100,000 vectors."],["Creating a vector index, which utilizes ANN, is recommended by Google to optimize performance on vector search queries."]]],[]]