ベクトル エンベディングは、意味的類似性が n 次元のベクトル空間内の距離で表されるようにコンテンツをマッピングするため、非構造化データの便利な表現です。これにより、類似性の検索、ナレッジベース内の関連コンテンツの検索、ユーザーが生成した複雑なクエリに最も一致するアイテムの取得が簡単になります。
特殊なデータベースの中には、ベクトル エンベディングのみをサポートしているものもありますが、ベクトル エンベディングに加えて、他の多くのデータやクエリタイプをサポートしているものもあります。豊富な実世界のデータに基づいて生成 AI アプリケーションを構築するには、幅広いデータ型とクエリタイプをサポートすることが不可欠です。ベクトル エンベディングを使用するセマンティック クエリの利点が明らかになると、ほとんどのデータベースでベクトル サポートが追加されます。将来的には、すべてのデータベースがベクトル データベースになると考えています。
Vertex AI のベクトル検索が高パフォーマンスの生成 AI アプリケーションの構築にどのように役立つかを確認する。Vertex AI のベクトル検索は、Google Research が開発したスケーラブルで効率的なベクトル検索テクノロジーであるスケーラブルな最近傍探索(ScaNN)をベースとしており、大規模なデータセットの処理やリアルタイムの検索要件に最適です。ベクトル検索とエンベディングについて詳しくは、こちらの動画をご覧ください。ご利用を開始するには、こちらのクイックスタート ガイドをご覧ください。
他のデータ型と同様に、大規模なベクトルのセットを効率的にクエリするにはインデックスが必要です。ベクトル データベースは、ベクトルに特化したインデックスをサポートしています。1 つの論理的な順序しか持たない他の多くのデータ型(テキストや数値など)とは異なり、ベクトルには実際のユースケースに対応する自然な順序はありません。その代わり、ドット積、コサイン類似度、ユークリッド距離などの距離指標の観点から他のベクトルに最も近い k 個のベクトルをクエリすることが最も一般的なユースケースです。この種類のクエリは「k 最近傍」(KNN)クエリと呼ばれます。
残念ながら、効率的な KNN クエリのための一般的なアルゴリズムはありません。特定のベクトル q に k の最近傍を見つけるには、q と他のすべてのベクトルの間の距離を計算する必要があります。しかし、k の近似最近傍探索(「ANN」)を効率的に見つけるアルゴリズムもあります。これらの ANN アルゴリズムは、ある程度の精度(具体的には、再現率であり、アルゴリズムは実際の最近傍の一部を省略する可能性があります)と引き換えに、速度を大幅に向上させます。多くのユースケースでは、すでにベクトル エンベディングの計算プロセスがやや不正確であるものとして扱われているため、パフォーマンスの大幅な改善と引き換えに再現率の低下を許容できることがよくあります。
他のベクトルからの距離に基づくベクトルの ANN クエリを可能にするために、ベクトル インデックスは、一般に近接するベクトルのクラスタがグループ化されるような構造になっています。一般的なベクトル インデックス タイプは、各リストが特定のクラスタ内のベクトルを表すリストの集合、各ベクトルがいくつかの最近傍に接続されたグラフ、枝が親ノードのクラスタのサブセットに対応するツリー、およびその他のものとして構造化することができます。各インデックス タイプには、ルックアップ速度、再現率、メモリ消費、インデックス作成時間などの要因のトレードオフがあります。
しかし、ほとんどのデータベース クエリは、意味的類似性だけに基づいているわけではありません。たとえば、ユーザーが探している書籍の内容が「子どもと犬についての心温まる物語」に似ているが、ペーパーバック形式で入手できる 20 ドル未満の書籍に限定したい場合。特殊目的のベクトル データベースでは、限定された追加のフィルタ機能(「制限」とも呼ばれます)が提供される場合があります。一方、汎用データベースでは、SQL などの標準言語を使用して豊富な述語を作成できます。これをベクトル類似性順序付けと組み合わせることで、非常に強力で表現力の高いクエリを実現できます。
ベクトル エンベディングは非構造化データの意味を表現する機能と、ベクトル データベースの近くのベクトルを効率的に検索する機能を組み合わせることで、多くの重要なユースケースを実現します。
ベクトル データベースは、リレーショナル述語やテキスト検索技術だけでは解決するのが難しい、あるいは不可能なさまざまな問題を解決できるという点で重要です。
ベクトル データベースは、関連するチャット履歴やビジネス固有の非構造化コンテンツなど、重要なビジネスやアプリケーションのコンテキストを簡単に取得でき、LLM が複雑なユーザークエリに応答できるため、生成 AI アプリケーションに適しています。
また、自然言語を使用したコンテンツの検索や、例によるクエリも容易になります。