次の方法で共有


オープンソース ベクトル データベース

適用対象: MongoDB 仮想コア

開発者がベクトル データベースを選択する場合、オープンソースのオプションには多くの利点があります。 "オープンソース" とは、ソフトウェアのソース コードを自由に利用できることを意味し、ユーザーは特定のニーズに応じてデータベースをカスタマイズできます。 この柔軟性は、金融サービス業界に属する企業など、データに関する独自の規制要件に従う組織にとって有益です。

オープンソース ベクトル データベースのもう 1 つの利点は、コミュニティによる強力なサポートです。 アクティブなユーザー コミュニティは、しばしばこれらのデータベースの開発に寄与し、サポートを提供し、ベスト プラクティスを共有し、イノベーションを促進します。

オープン ソース ベクトル データベースは "無料" で、ソフトウェアの入手や使用に費用がかからないという理由で選ぶ人もいます。 別の方法として、マネージド ベクトル データベース サービスで提供される無料レベルを使用することもできます。 これらのマネージド サービスは、一定の利用限度額まで無料でアクセスできるだけでなく、メンテナンス、更新、スケーラビリティに対応することで、運用の負担が軽減されます。 そのため、マネージド ベクトル データベース サービスの無料レベルを使用することで、ユーザーは管理オーバーヘッドを削減しながらコスト削減を実現できます。 このアプローチにより、ユーザーはデータベースの管理よりもコア アクティビティに焦点を置くことができます。

ベクトル データベースのしくみ

ベクトル データベースは、高ディメンション空間におけるデータの数学的表現であるベクトル埋め込みを保存および管理するように設計されています。 この空間では、各ディメンションがデータの特徴に対応しており、高度なデータを表現するために数万ディメンションが使われる場合があります。 この空間内のベクトルの位置は、その特性を表します。 単語、フレーズ、ドキュメント全体、画像、オーディオ、その他の種類のデータはすべてベクトル化できます。 これらのベクトル埋め込みは、類似性検索、マルチモーダル検索、レコメンデーション エンジン、大規模言語モデル (LLM) などで使われます。

これらのデータベースのアーキテクチャには、通常、ストレージ エンジンとインデックス作成メカニズムが含まれます。 ストレージ エンジンは、効率的な取得と操作のためにベクトル データのストレージを最適化し、インデックス メカニズムは、高速検索と取得操作のためにデータを整理します。

ベクトル データベースでは、埋め込みがインデックス化され、ベクトルの距離や類似性に基づいてベクトル検索アルゴリズムを通じてクエリが実行されます。 最も関連性の高いデータを識別するには、堅牢なメカニズムが必要です。 既知のベクトル検索アルゴリズムには、階層ナビゲーション可能な小さい世界 (HNSW)、反転ファイル (IVF) などがあります。

ベクトル データベースは、自然言語処理、動画と画像の認識、レコメンデーション システム、検索など、分析および生成 AI のさまざまな領域や状況で使用されています。たとえば、ベクトル データベースを使用して次のことを行うことができます。

  • コンテンツ、テーマ、センチメント、スタイルに基づく類似の画像、ドキュメント、楽曲の特定
  • 特徴、機能、ユーザー グループに基づく類似製品の特定
  • 個人の好みに基づいたコンテンツ、製品、サービスの推奨
  • ユーザー グループの類似性に基づいたコンテンツ、製品、サービスの推奨
  • 複雑な要件を満たすための多くの選択肢の中からの最適な潜在オプションの特定
  • 一般的なパターンや通常のパターンとは異なるデータの異常や不正なアクティビティの特定
  • AI エージェント向けの永続メモリの実装
  • 取得拡張生成 (RAG) を有効にする

統合ベクトル データベースと純粋なベクトル データベース

ベクトル データベースの実装には、純粋なベクトル データベースと、NoSQL またはリレーショナル データベースの統合ベクトル データベースという 2 つの一般的な種類があります。

純粋なベクトル データベースは、ベクトル埋め込みを少量のメタデータと共に効率的に格納して管理できるように設計されています。これは、埋め込みの派生元であるデータ ソースからは切り離されています。

高パフォーマンスの NoSQL またはリレーショナル データベースに統合されたベクトル データベースは、追加の機能を備えています。 NoSQL またはリレーショナル データベースの統合ベクトル データベースでは、対応する元のデータと共に埋め込みを保存し、インデックスを付けて、クエリを実行できます。 この方法により、データを別の純粋なベクトル データベースに複製する余分なコストがかかりません。 さらに、ベクトル埋め込みと元のデータが一緒に保持されるため、マルチモーダル データの操作が簡略化され、データの整合性、スケール、パフォーマンスを向上させることができます。

最適なオープンソース ベクトル データベースの選択

最適なオープンソース ベクトル データベースを選択するには、いくつかの要素を考慮する必要があります。 データベースのパフォーマンスとスケーラビリティは、データベースが特定のワークロード要件を処理できるかどうかに影響するため、非常に重要です。 効率的なインデックス作成とクエリ機能を使用するデータベースでは、通常、最適なパフォーマンスが提供されます。 もう 1 つの要因は、データベースに関するコミュニティのサポートと利用可能なドキュメントです。 堅牢なコミュニティと十分なドキュメントにより、価値のあるサポートが提供されます。 よく使用されるオープン ソース ベクトル データベースを次に示します。

  • Chroma
  • Milvus
  • Qdrant
  • Weaviate

ただし、最も人気のあるオプションが自分にとって最適のオプションではない場合があります。 そのため、機能、サポートされるデータ型、使用する既存のツールやフレームワークとの互換性に基づいて、さまざまなオプションを比較する必要があります。 また、オープンソース ベクトル データベースの課題 (以下) にも留意する必要があります。

オープンソース ベクトル データベースの課題

上記のものを含むほとんどのオープンソース ベクトル データベースは、純粋なベクトル データベースです。 つまり、少量のメタデータと共に、ベクトル埋め込みのみを保存および管理するように設計されています。 埋め込みの派生元のデータ ソースから独立しているため、使用するには、サービス統合間でデータを送信する必要があり、運用ワークロードのコスト、複雑さ、ボトルネックが増えます。

また、オープンソース データベースに典型的な課題もあります。

  • 設定: ユーザーは、インストール、構成、操作、特に複雑なデプロイには深い知識が必要です。 運用をスケールアップしながらリソースと構成を最適化するには、綿密な監視と調整が必要です。
  • メンテナンス: 更新プログラム、修正プログラム、メンテナンスはユーザー自身で管理する必要があります。 したがって、ML の専門知識だけでは不十分で、データベース管理に関する豊富な経験が必要です。
  • サポート: 公式サポートはマネージド サービスに比べると限定的で、コミュニティの支援に依存することが多くなります。

そのため、オープンソース ベクトル データベースは、最初は無料ですが、スケールアップする場合は大きなコストがかかります。 事業の展開にはより多くのハードウェア、熟練した IT スタッフ、高度なインフラストラクチャの管理が必要になり、ハードウェア、人件費、運用コストの増加につながります。 オープンソース ベクトル データベースのスケーリングは、ライセンス料がないにもかかわらず、財政的に厳しい場合があります。

オープンソース ベクトル データベースの課題に対処する

パフォーマンスの高い NoSQL またはリレーショナル データベースに統合されたフル マネージド ベクトル データベースでは、オープンソース ベクトル データベースの追加コストと複雑さが回避されます。 このようなデータベースでは、対応する元のデータと共に、埋め込みを保存し、インデックスを付け、クエリを実行します。 この方法により、データを別の純粋なベクトル データベースに複製する余分なコストがかかりません。 さらに、ベクトル埋め込みと元のデータが一緒に保持されるため、マルチモーダル データの操作が簡略化され、データの整合性、スケール、パフォーマンスを向上させることができます。 それと同時に、フル マネージド サービスは、開発者がオープンソース ベクトル データベースの設定、メンテナンス、コミュニティの支援に依存する負担を回避するのに役立ちます。 さらに、一部のマネージド ベクトル データベース サービスでは、無期限の Free レベルが提供されています。

一例として、Azure Cosmos DB for MongoDB の統合ベクトル データベースがあります。 これにより、開発者はオープンソース ベクトル データベースと同じ財務上の利点を得られ、サービス プロバイダーはメンテナンス、更新、スケーラビリティを処理します。 運用規模をスケールアップする場合は、総保有コスト (TCO) を抑えながら、迅速かつ簡単にアップグレードできます。 このサービスを使用して、既に運用環境にある MongoDB アプリケーションを簡単にスケーリングすることもできます。

次のステップ