によって Databricks Staff による投稿
ベクトルデータベースは、高次元ベクトルとしてデータを格納および管理するために設計された特殊なデータベースです。この用 語は、データに含まれる特徴や属性の数学的表現であるベクトルに由来します。行と列に整理された構造化データを処理するのに適した従来のデータベースとは対照的に、ベクトルデータベース構造は、類似性に基づいてグループ化された固定数の次元を持つベクトル表現として情報を配置します。
ベクトルデータベース内の各ベクトルは特定の次元数で構成され、その数は数十から数千まで様々です。次元数は、データの複雑さと粒度によって異なります。この構造により、ベクトルデータベースは複雑で多面的な情報を効率的に処理し、高速な類似性ベースの検索と分析を実行できます。
International Data Corporation(IDC)によると、作成される新しいデータの90%は、テキスト、画像、ビデオなどの非構造化データです。ディープニューラルネットワークなどの学習ベースのモデルは、eコマースからヘルスケアまで、さまざまな業界のアプリケーションでこの非構造化データを管理するためにますます使用されています。これらのアプリケーションは、非構造化データを埋め込みベクトルに変換することによって機能します。データが「ベクトル化」されると、検索、推奨、分析などのタスクは、類似性ベースのAI検索を介して実装できます。ベクトルデータの管理は、ベクトルデータベースで行われます。
ベクトルデータベースを使用するタイミングを知ることは、使用している他のプロセスやテクノロジーによって異なります。これらは多くのAIシステムの基盤となるコンポーネントであり、一部(すべてではない)の大規模言語モデル(LLM)アプリケーションは、高速な類似性検索のため、またはコンテキストやドメイン知識を提供するためにベクトルデータベースを使用します。たとえば、これらは検索拡張生成(RAG)において重要な役割を果たします。RAGは、ベクトルデータベースを使用して、クエリにコンテキストを追加することでLLMに渡されるプロンプトを強化するアプローチです。
ベクトルデータベースはハイブリッド検索も可能にします。このアプローチは、従来のキーワードベースの検索とセマンティック類似性検索を組み合わせて、キーワードが完全に一致しない場合でも関連情報を検索します。ベクトルデータベースは、セマンティック分析や感情分析を含む多くの自然言語処理(NLP)タスク、または機械学習(ML)モデルのトレーニングにも使用できます。
ベクトルは、複数の次元にわたる特定の点の位置を表現する高次元数値配列です。単語ベクトル空間を3次元のクラウドとして想像してみてください。このクラウドでは、単語は点として表されます。この空間では、意味的に関連する単語は互いにクラスタリングされます。たとえば、「apple」を表す点は、「car」よりも「pear」に近い位置に配置されます。この空間配置は、単語間の意味的関係を反映しており、近接性は意味の類似性を示します。
ベク トルは、埋め込み関数を生のデータに適用して、それを表現に変換することによって生成されます。MLモデルが代表的なグループを取得してベクトル空間に埋め込むため、これらの表現は「埋め込み」と呼ばれます。ベクトルは数値のリストとして埋め込まれるため、MLモデルはデータを使用した操作をより簡単に行えます。実際、ML手法のパフォーマンスは、ベクトル表現の品質に大きく依存します。テキストの段落全体や数値のグループはベクトルに削減できるため、モデルは効率的に操作を実行できます。
ベクトルデータベースは、高次元ベクトル埋め込みを介してデータを効率的に格納、インデックス化、およびクエリするように設計されています。ユーザーがベクトルデータベースにクエリまたはリクエストを入力すると、次のプロセスシーケンスが開始されます。
これらのプロセスにより、ベクトルデータベースはセマンティック検索と類似性ベースの検索を実行でき、レコメンデーションシステム、画像およびビデオ認識、テキスト分析、異常検出などのアプリケーションに最適です。
ベクトルデータベースは、さまざまなメリットを提供します。
ベクトルデータベースは、さまざまな業界で多様なアプリケーションやユースケースに使用されています。以下に、最も一般的なベクトルデータベースの例をいくつか示します。
情報検索などのタスクにおけるLLMの台頭と、eコマースおよびレコメンデーションプラットフォームの人気向上により、非構造化データに対するクエリ最適化機能を提供するベクトルデータベース管理システムが必要となっています。
マルチモーダルアプリケーションでは、データはベクトルデータベースに埋め込まれて保存され、ベクトル表現の効率的な取得が容易になります。ユーザーがテキストクエリを送信すると、システムはLLMとベクトルデータベースの両方を使用します。LLMはNLP機能を提供し、ベクトルデータベースのアルゴリズムはANN検索を実行します。このアプローチは、いずれかのコンポーネントを単独で使用する場合よりも優れた結果をもたらす可能性があります。
ベクトルデータベースは、RAGを通じてLLMにますます適用されており、コンテキストをLLMの出力に適用することで説明可能性を高めることができます。ユーザープロンプトは、ハルシネーションやバイアスなどのコアLLMの課題を軽減するために、コンテキストを含めることで拡張できます。
ベクトルデータベースは、MLモデルによって生成された画像の高次元埋め込みを保存することにより、画像認識において重要な役割を果たすことができます。ベクトルデータベースは類似性検索タスクに最適化されているため、オブジェクト検出 、顔認識、画像検索などのアプリケーションに最適です。
ベクトルデータベースは、類似性によるコンテキストの高速取得のためにファインチューニングされています。eコマースプラットフォームはベクトルデータベースを使用して類似した視覚的属性を持つ製品を見つけることができ、ソーシャルメディアサイトはユーザーに関連画像をお勧めできます。具体的な例としてPinterestがあり、ベクトルデータベースは各画像を多次元ベクトルとして表現することでコンテンツ検出を強化しています。ユーザーが海岸の夕日の画像をピンすると、システムはベクトルデータベースを迅速に検索して、他のビーチの風景や夕日のような視覚的に類似した画像を提案できます。
ベクトルデータベースは、分散単語表現の効率的な保存と取得を可能にすることで、NLPに革命をもたらしました。Word2Vec、GloVe、BERTなどのモデルは、大規模なテキストデータセットでトレーニングされ、意味的関係を捉える高次元単語埋め込みを生成し、これらはベクトルデータベースに保存されて高速アクセスされます。
類似性検索を高速化できるため、ベクトルデータベースはモデルが文脈的に関連性の高い単語またはフレーズを見つけることを可能にします。この機能は、セマンティック検索、質問応答、テキスト分類、固有表現抽出などのタスクに特に価値があります。さらに、ベクトルデータベースは文レベルの埋め込みを保存でき、単語のコンテキストを捉え、より微妙な言語理解を可能にします。
ベクトルデータベースが埋め 込みモデルを使用してトレーニングされると、パーソナライズされたレコメンデーションを生成するために利用できます。ユーザーがシステムと対話すると、その行動と好みがユーザーの埋め込みを生成するために使用されます。たとえば、ユーザーはLLMにテレビシリーズのレコメンデーションを依頼でき、ベクトルデータベースはユーザーの好みに類似したプロットまたは評価を持つテレビシリーズを提案できます。ユーザーのエンコーディングに最も近い埋め込みを持つテレビシリーズが推奨されます。
金融機関は、ベクトルデータベースを使用して不正なトランザクションを検出します。ベクトルデータベースにより、企業はトランザクションベクトルを既知の不正パターンと比較できます。ベクトルデータベースのスケーラビリティにより、リスクを管理し、消費者行動に関する新しい洞察を得ることができます。これらのデータベースは、トランザクションデータをベクトルとしてエンコードすることにより、アクティビティを示すパターンを特定できます。さらに、意思決定プロセスを改善するためにデータを分析することにより、信用力の評価と消費者セグメンテーションを容易にします。
多くの利点とユースケースにもかかわらず、ベクトルデータベースの完全な理解には、その課題も含まれる必要があります。
ベクトルデータベースには、さまざまなソースからの生データがクリーニング、処理され、MLモデルで埋め込まれてからデータベースにベクトルとして保存される、効率的なデータ取り込みパイプラインが必要です。
Databricks AI Searchは、この課題に対する包括的なソリューションを提供します。ベクトル生成、管理、最適化を自動化し、ソースデータと対応するベクトルインデックスのリアルタイム同期を処理します。ソフトウェアは、障害を管理し、スループットを最適化し、手動介入なしで自動バッチサイズ調整と自動スケーリングを実行します。
このアプローチにより、個別のデータ取り込みパイプラインの必要性が減り、「開発者の負担」が最小限に抑えられ、チームは複雑なデータ準備プロセスの構築と維持に時間を費やすのではなく、ビジネス価値に直接貢献するより高度なタスクに集中できます。
ベクトルデータベースには、追加のセキュリティ、アクセス制御、データガバナンス、および必要なメンテナンスと管理が必要です。エンタープライズ組織は、ユーザーが機密データにリンクするGenAIモデルにアクセスできないように、データに対する厳格なセキュリティとアクセス制御を必要とします。
多くの現在のベクトルデータベースには、堅牢なセキュリティおよびアクセス制御が実装されていないか、組織が個別のセキュリティポリシーセットを構築および維持する必要があります。Databricks AI Searchは、追加ツールなしでデータリネージを自動的に追跡するデータポリシーを定義する統合インターフェイスを提供します。これにより、LLMがアクセス権を持たないユーザーに機密データを公開しないことが保証されます。
ベクトルデータベースは、類似性検索や高次元データの処理のための強力な機能を提供するため、AIおよびMLモデルを扱うデータサイエンティストにとって不可欠なツールです。Databricks AI Searchは、手動構成の必要性を排除するサーバーレスベクトルデータベースとして際立っており、データサイエンティストはインフラストラクチャ管理ではなくコアワークに集中できます。
Databricks AI Searchの主な利点には、レイクハウスアーキテクチャとのシームレスな統合、自動データ取り込み、および他の一般的なベクトルデータベースと比較して最大5倍高速な結果が含まれます。また、Unity Catalogを介して既存のデータガバナンスおよびセキュリティツールと互換性があり、データの保護とコンプライアンスを保証します。
Databricks AI Searchは、データ取り込みとクエリのための自動スケーリング、およびパイプラインをより細かく制御したいユーザー向けのプラグアンドプレイスAPIを備えており、初心者と上級者の両方に柔軟性を提供します。この使いやすさと強力なパフォーマンスの組み合わせにより、あらゆるレベルの専門知識を持つデータサイエンティストにとって、ベクトルデータベースの構築が簡素化されます。
ベクトルデータベースは、データを多次元ベ クトル空間内の点として整理します。各点はデータの断片を表し、その位置は他のデータ断片に対する特性を反映します。このベクトルデータベース構造は、LLMによってベクトル埋め込みが生成され、データが簡単に検索および取得できるため、多くのGenAIアプリケーションに適しています。
対照的に、グラフデータベースは、データをグラフ構造に保存することによってデータを整理します。エンティティはグラフ上のノードとして表され、これらのデータポイント間の接続はエッジとして表されます。グラフ構造により、ストア内のデータ項目はノードとエッジのコレクションになり、エッジはノード間の関係を表します。グラフデータベースの相互接続された構造は、データポイント間の接続がデータ自体と同じくらい重要なシナリオに適しています。
このテーブルを使用して、各データベースタイプがどのようにデータを格納し、クエリを処理し、さまざまなワークロードに適しているかを簡単に比較できます。
| ベクトルデータベース | ベクトルインデックス | 従来のRDBMS | グラフDB | |
|---|---|---|---|---|
| データモデル | ストリーミング/継続的(数秒〜数分) | プロアクティブ、AI主導の分析 | プロアクティブ、AI主導の分析 | プロアクティブ、AI主導の分析 |
| クエリタイプ | アナリスト、エグゼクティブ | 運用チーム、アプ リケーション、自動化システム | 運用チーム、アプリケーション、自動化システム | 運用チーム、アプリケーション、自動化システム |
| 典型的なレイテンシ | アドホック探索、スケジュールされたレポート | 定義済みのメトリクス、アラート、自動トリガー | 定義済みのメトリクス、アラート、自動トリガー | 定義済みのメトリクス、アラート、自動トリガー |
| スケール | 人間の解釈 → 決定 | 自動トリガー、組み込みレコメンデーション | 自動トリガー、組み込みレコメンデーション | 自動トリガー、組み込みレコメンデーション |
| フィルタリング | データウェアハウス、ETLパイプライン | ストリーミングプラットフォーム、イベント処理 | ストリーミングプラットフォーム、イベント処理 | ストリーミングプラットフォーム、イベント処理 |
| トランザクション保証 | 結果整合性が一般的 | なし、読み取り専用検索レイヤー | 完全なACID | ACID(ツールによる) |
| ガバナンス/セキュリティ | 改善中、ベンダーによる | 最小限、ホストシステムに依存 | 成熟したRBAC、監査ログ、暗号化 | 中程度、ベンダーによる |
| 一般的なツール | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
ベクトルインデックスとベクトルデータベースは、高次元データを扱う上で、それぞれ異なるが補完的な役割を果たします。
ベクトルインデックス:ベクトルインデックスは、ベクトル埋め込み間の高速な類似性検索を容易にするために設計された特殊なデータ構造です。ベクトルを効率的な検索を可能にする方法で整理することにより、検索速度を大幅に向上させます。ベクトルインデックスの例としては、Facebook AI Similarity Search (FAISS)、HNSW、LSHなどがあります。これらのインデックスは、スタンドアロンのアルゴリズムプロセスとして使用することも、検索操作を最適化するために大規模なシステムに統合することもできます。
ベクトルデータベース:ベクトルデータベースは、ベクトルインデックスを組み込むだけでなく、データストレージ、作成、読み取り、更新、削除(CRUD)操作、メタデータフィルタリング、水平スケーリングなどの追加機能を提供する包括的なデータ管理ソリューションです。ベクトル埋め込みを効率的に管理およびクエリするように設計されており、複雑な操作をサポートし、データの整合性とセキュリティを確保します。
適切なベクトルデータベースの選択は、特定のワークロードの需要、データの増加予測規模、およびデータベースが既存のテクノロジースタックにどの程度適合するかによって異なります。小規模なプロトタイプには完璧に機能するソリューションでも、エンタープライズ規模のトラフィックでは苦労する可能性があります。一方、機能豊富なプラットフォームは、より単純なユースケースには過度に複雑すぎるかもしれません。これらの基準を念頭に 置いて、ニーズに合わせてスケーリングし、既存のシステムと連携できるベクトルデータベースを選択してください。
これら2つの用語はしばしば互換的に使用されますが、システムの異なるレイヤーを指します。
スコープ:ベクトルインデックスは、最近傍探索を高速化するように最適化された単一のデータ構造(HNSWやIVFなど)です。対照的に、ベクトルデータベースは、これらのインデックスの1つ以上を中心に構築された完全なシステムであり、ストレージとクエリ機能も備えています。
CRUDサポート:ベクトルインデックスは、更新や削除のサポートが限定的または非効率的な場合が多いです。ベクトルデータベースは、インデックスレイヤーの上に堅牢な作成、読み取り、更新、削除操作を提供します。
スケーリング:スタンドアロンインデックスはメモリ内に存在し、分散やレプリケーションを管理しません。一方、ベクトルデータベースは、水平スケーリング、シャーディング、およびインフラストラクチャ全体での永続化を処理します。
スタンドアロン対統合:ベクトルインデックスは、アプリケーションコードに直接埋め込むことができます(例:FAISS)。ベクトルデータベースは、API、アクセス制御、および管理ツールが組み込まれたサービスです。
ベクトルデータベースは、本番RAGパイプラインで一般的に選択されますが、常に必要というわけではありません。適切な答えは、規模と複雑さによって異なります。
大規模な本番RAGの場合、永続ストレージ、メタデータフィルタリング、アクセス制御、および時間の経過とともにデータセットを更新する機能が必要な場合に、ベクトルデータベースが価値を発揮します。
マルチテナント環境または規制された環境では、スタンドアロンインデックスでは提供されないテナント分離、監査ログ、およびきめ細かなアクセス制御が必要なため、ほぼ常にベクトルデータベースが必要となります。
データセットが静的で小さい場合、ベクトルデータベースのオーバーヘッドがメリットを上回る可能性があります。起動時にロードされる軽量インデックスでも、取得は同様にうまく処理できます。
プロトタイピングの場合、FAISSのようなインメモリインデックスや単純な ファイルベースのストアで十分であり、フルベクトルデータベースよりもセットアップがはるかに簡単であることがよくあります。
ハイブリッド検索は、キーワードマッチングとセマンティック類似性という、根本的に異なる2つの取得シグナルを単一のクエリ結果に組み合わせます。
ベクトルデ ータベースは運用上のオーバーヘッドを追加しますが、その複雑さが正当化されないシナリオがいくつかあります。
最近のLLMおよびGenAIアプリケーションの台頭は、ベクトルデータベースの採用の増加に寄っています。AIアプリケーションが成熟し続けるにつれて、新製品の開発とユーザーのニーズの変化が、ベクトルデータベースの将来のトレンドの方向性を決定するでしょう。しかし、このテクノロジーにはいくつかの一般的に期待される方向性があります。
MLモデルとの統合の増加:ベクトルデータベースとMLモデルの関係は、研究の対象となっています。これらの取り組みは、ベクトルのサイズと次元数を削減し、大規模データセットのストレージ要件を最小限に抑え、計算効率を高めることを目的としています。
RAGのカスタマイズ:RAGは、チャットボットや一般的な質問応答アプリケーションを含むGenAIユースケースで、LLMに提供されるコンテキストを改善するために使用されるアプローチです。ベクトルデータベースは、クエリに加えて追加のコンテキストをLLMに渡すプロンプトを強化するために使用されます。
マルチベクトル検索:顔認識などのアプリケーションで重要な、マルチベクトル検索機能のさらなる研究が期待されています。現在の技術は個々のスコアを組み合わせることに依存することがよくありますが、このアプローチは、必要な距離計算の数が増加するため、計算コストが高くなる可能性があります。
ハイブリッド検索:検索システムの進化により、従来のキーワードベースの方法と最新のベクトル検索技術を組み合わせたハイブリッドアプローチの採用が増加しています。
Databricks AI Searchは、Data Intelligence Platform向けのDatabricksの統合ベクトルデータベースソリューションです。この完全に統合されたシステムは、個別のデータ取り込みパイプラインの必要性をなくし、セキュリティ制御とデータガバナンスメカニズムを適用して、すべてのデータ資産にわたる一貫した保護を保証します。
Databricks AI Searchは、高性能なすぐに使えるエクスペリエンスを提供し、LLMが最小限の遅延で関連性の高い結果を迅速に取得できるようにします。ユーザーは、手動でのデータベースチューニングを必要としない、自動スケーリングと最適化の恩恵を受けます。この統合により、ベクトル埋め込みの保存、管理、クエリのプロセスが合理化され、組織は、データセキュリティとガバナンス基準を維持しながら、レコメンダーシステムや意味検索などのAIアプリケーションを実装しやすくなります。
ベクトルデータベースとベクトル検索に関する詳細情報はどこで入手できますか?
ベクトルデータベースとベクトル検索に関する詳細情報を入手できるリソースは多数あります。以下に例を挙げます。
Databricksに連絡してデモをスケジュールし、LLMとベクトルデータベースについて担当者と話してください。
(このブログ記事はAI翻訳ツールを使用して翻訳されています) 原文記事
ブログを購読して、最新の投稿を受信トレイにお届けします。