ベクトル検索の概要
TiDB Vector Search は、ドキュメント、画像、音声、ビデオなど、さまざまなデータ タイプにわたってセマンティック類似性検索を実行するための高度な検索ソリューションを提供します。この機能により、開発者は使い慣れた MySQL スキルを使用して、生成型人工知能 (AI) 機能を備えたスケーラブルなアプリケーションを簡単に構築できます。
注記:
ベクトル検索機能は、TiDB セルフマネージド クラスターとTiDB Cloudサーバーレスクラスターでのみ使用できます。
コンセプト
ベクトル検索は、データの意味を優先して関連性の高い結果を提供する検索方法です。
正確なキーワード一致と単語の頻度に依存する従来の全文検索とは異なり、ベクトル検索はさまざまなデータ タイプ (テキスト、画像、音声など) を高次元ベクトルに変換し、これらのベクトル間の類似性に基づいてクエリを実行します。この検索方法は、データの意味とコンテキスト情報をキャプチャし、ユーザーの意図をより正確に理解することにつながります。
検索用語がデータベースの内容と完全に一致しない場合でも、ベクター検索ではデータのセマンティクスを分析することで、ユーザーの意図に一致する結果を提供できます。
たとえば、「泳ぐ動物」の全文検索では、これらのキーワードを正確に含む結果のみが返されます。対照的に、ベクター検索では、魚やアヒルなど、他の泳ぐ動物の結果が、これらの結果に正確なキーワードが含まれていなくても返されます。
ベクトル埋め込み
ベクトル埋め込みは、埋め込みとも呼ばれ、高次元空間内の現実世界のオブジェクトを表す数値のシーケンスです。ドキュメント、画像、音声、ビデオなどの非構造化データの意味とコンテキストをキャプチャします。
ベクトル埋め込みは機械学習に不可欠であり、意味的類似性検索の基盤として機能します。
TiDB では、ベクトル埋め込みのstorageと取得を最適化し、AI アプリケーションでの使用を強化するように設計されたベクトルデータ型とベクトル検索インデックス導入されています。ベクトル埋め込みを TiDB に保存し、ベクトル検索クエリを実行して、これらのデータ タイプを使用して最も関連性の高いデータを見つけることができます。
埋め込みモデル
埋め込みモデルは、データをベクトル埋め込みに変換するアルゴリズムです。
適切な埋め込みモデルを選択することは、セマンティック検索結果の正確性と関連性を保証するために重要です。非構造化テキスト データの場合、 大規模テキスト埋め込みベンチマーク (MTEB) リーダーボードで最高のパフォーマンスを発揮するテキスト埋め込みモデルを見つけることができます。
特定のデータ タイプのベクトル埋め込みを生成する方法については、統合チュートリアルまたは埋め込みモデルの例を参照してください。
ベクトル検索の仕組み
生データをベクトル埋め込みに変換して TiDB に保存した後、アプリケーションはベクトル検索クエリを実行して、ユーザーのクエリに意味的または文脈的に最も関連性の高いデータを見つけることができます。
TiDB ベクトル検索は、 距離関数を使用して指定されたベクトルとデータベースに保存されているベクトル間の距離を計算し、上位 k 近傍 (KNN) ベクトルを識別します。クエリ内の指定されたベクトルに最も近いベクトルは、意味の最も類似したデータを表します。
統合ベクトル検索機能を備えたリレーショナル データベースである TiDB を使用すると、データとそれに対応するベクトル表現 (つまり、ベクトル埋め込み) を 1 つのデータベースにまとめて保存できます。storageには、次のいずれかの方法を選択できます。
- データとそれに対応するベクトル表現を同じテーブルの異なる列に格納します。
- データとそれに対応するベクトル表現を別のテーブルに保存します。この方法では、データを取得するときに
JOIN
クエリを使用してテーブルを結合する必要があります。
ユースケース
検索拡張生成 (RAG)
検索拡張生成 (RAG) は、大規模言語モデル (LLM) の出力を最適化するために設計されたアーキテクチャです。ベクトル検索を使用することで、RAG アプリケーションはベクトル埋め込みをデータベースに保存し、LLM が応答を生成するときに関連ドキュメントを追加のコンテキストとして取得できるため、回答の品質と関連性が向上します。
セマンティック検索
セマンティック検索は、単にキーワードを一致させるのではなく、クエリの意味に基づいて結果を返す検索テクノロジーです。埋め込みを使用して、さまざまな言語やさまざまな種類のデータ (テキスト、画像、音声など) の意味を解釈します。次に、ベクター検索アルゴリズムがこれらの埋め込みを使用して、ユーザーのクエリを満たす最も関連性の高いデータを検索します。
推奨エンジン
推奨エンジンは、ユーザーにとって関連性がありパーソナライズされたコンテンツ、製品、またはサービスを積極的に提案するシステムです。これは、ユーザーの行動と好みを表す埋め込みを作成することで実現されます。これらの埋め込みは、他のユーザーが操作した、または興味を示した類似のアイテムをシステムが識別するのに役立ちます。これにより、推奨事項がユーザーにとって関連性があり魅力的になる可能性が高まります。
参照
TiDB Vector Search を使い始めるには、次のドキュメントを参照してください。