Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ベクターデータベース

共同作成者

このセクションでは、NetApp AIソリューションにおけるベクターデータベースの定義と使用について説明します。

ベクターデータベース

ベクターデータベースは、機械学習モデルの埋め込みを使用して非構造化データを処理、索引付け、検索するように設計された特殊なタイプのデータベースです。従来の表形式でデータを整理する代わりに、ベクトル埋め込みとも呼ばれる高次元ベクトルとしてデータを配置します。このユニークな構造により、データベースは複雑な多次元データをより効率的かつ正確に処理することができます。

ベクターデータベースの重要な機能の1つは、生成AIを使用して分析を実行することです。これには、指定された入力のようなデータポイントをデータベースが識別する類似性検索と、ノルムから大幅に逸脱したデータポイントを検出できる異常検出が含まれます。

さらに、ベクターデータベースは時間データ、つまりタイムスタンプされたデータを処理するのに適しています。このタイプのデータは、特定のITシステム内の他のすべてのイベントに関連して、「何」が発生したのか、いつ発生したのかについての情報を順番に提供します。時間データを処理および分析するこの機能により、ベクターデータベースは、時間の経過に伴うイベントの理解を必要とするアプリケーションに特に役立ちます。

MLおよびAI向けベクターデータベースの利点:

  • 高次元検索:ベクトルデータベースは、AIやMLアプリケーションでよく生成される高次元データの管理と取得に優れています。

  • 拡張性:AIプロジェクトやMLプロジェクトの成長と拡張をサポートして、大量のデータを処理できるように効率的に拡張できます。

  • 柔軟性:ベクターデータベースは高度な柔軟性を提供し、多様なデータ型や構造に対応できます。

  • パフォーマンス:AIとMLの処理速度と効率に欠かせない、ハイパフォーマンスなデータの管理と読み出しを提供します。

  • カスタマイズ可能なインデックス作成:ベクターデータベースは、カスタマイズ可能なインデックス作成オプションを提供し、特定のニーズに基づいてデータの整理と取得を最適化します。

ベクターデータベースとユースケース。

このセクションでは、さまざまなベクターデータベースとそのユースケースの詳細について説明します。

FaissとScaNN

これらはベクトル探索の領域で重要なツールとして機能するライブラリです。これらのライブラリは、ベクトルデータの管理と検索に役立つ機能を提供し、データ管理のこの専門分野で非常に貴重なリソースを提供します。

Elasticsearch を指定します

これは広く使用されている検索および分析エンジンであり、最近ベクトル検索機能が組み込まれています。この新機能は、その機能を強化し、ベクターデータをより効率的に処理および検索できるようにします。

パインコーン

これは、独自の機能セットを備えた堅牢なベクターデータベースです。インデックス作成機能で高密度ベクトルとスパースベクトルの両方をサポートしており、柔軟性と適応性が向上しています。その主な強みの1つは、従来の検索手法とAIベースの高密度ベクトル検索を組み合わせることで、両者の長所を活用したハイブリッド検索アプローチを構築できることにあります。

主にクラウドベースのPineconeは、機械学習アプリケーション向けに設計されており、GCP、AWS、Open AI、GPT-3、 GPT-3.5、GPT-4、Catgut Plus、Elasticsearch、Haystack、 その他多数。Pineconeはクローズドソースプラットフォームであり、Software as a Service(SaaS)として提供されていることに注意してください。

高度な機能を備えたPineconeは、その高度な検索機能とハイブリッド検索機能を効果的に活用して脅威を検出して対応できるサイバーセキュリティ業界に特に適しています。

クロマ

これは、4つの主要な関数を持つCore-APIを持つベクターデータベースです。そのうちの1つには、メモリ内のドキュメントベクトルストアが含まれています。また、Face Transformersライブラリを使用してドキュメントをベクトル化し、機能と汎用性を強化します。
Chromaはクラウドとオンプレミスの両方で動作するように設計されており、ユーザーのニーズに応じた柔軟性を提供します。特に、オーディオ関連のアプリケーションに優れており、オーディオベースの検索エンジン、音楽レコメンドシステム、その他のオーディオ関連のユースケースに最適です。

ウィアヴィアート

これは、組み込みモジュールまたはカスタムモジュールのいずれかを使用してコンテンツをベクトル化できる汎用性の高いベクターデータベースであり、特定のニーズに基づいた柔軟性を提供します。フルマネージド型とセルフホスティング型の両方のソリューションを提供し、さまざまな導入設定に対応します。

Weaviateの主な機能の1つは、ベクトルとオブジェクトの両方を格納できることで、データ処理機能が強化されていることです。ERPシステムのセマンティック検索やデータ分類など、さまざまなアプリケーションに広く使用されています。電子商取引分野では、検索および推薦エンジンを強化しています。Weaviateは、画像検索、異常検出、自動データ調和、サイバーセキュリティの脅威分析にも使用され、複数のドメインにわたるその汎用性を示しています。

Redis

Redisは、高速なインメモリストレージで知られている高性能ベクトルデータベースで、読み取り/書き込み処理のレイテンシが低くなります。そのため、迅速なデータアクセスが必要なレコメンドシステム、検索エンジン、データ分析アプリケーションに最適です。

Redisは、リスト、セット、ソートされたセットなど、ベクトルのさまざまなデータ構造をサポートしています。また、ベクトル間の距離の計算や交差と結合の検索などのベクトル操作も提供します。これらの機能は、類似性検索、クラスタリング、およびコンテンツベースのレコメンドシステムで特に役立ちます。

スケーラビリティと可用性の面では、Redisは高スループットワークロードの処理に優れ、データレプリケーションを提供します。また、従来のリレーショナルデータベース(RDBMS)を含む他のデータタイプともうまく統合できます。
Redisには、リアルタイム更新のためのパブリッシュ/サブスクライブ(Pub/Sub)機能が含まれています。これは、リアルタイムベクトルを管理するのに役立ちます。さらに、Redisは軽量で使いやすく、ベクトルデータを管理するためのユーザーフレンドリーな解決策になっています。

ミルバス

MongoDBと同様に、ドキュメントストアのようなAPIを提供する汎用性の高いベクターデータベースです。多種多様なデータ型をサポートしているため、データサイエンスや機械学習の分野で人気があります。

Milvusのユニークな機能の1つは、検索に使用するベクトルの種類を実行時に指定できるマルチベクトル化機能です。さらに、Faissのような他のライブラリの上にあるライブラリKnowwhereを利用して、クエリとベクトル検索アルゴリズム間の通信を管理します。

Milvusは、PyTorchおよびTensorFlowとの互換性により、機械学習ワークフローとのシームレスな統合も提供します。これにより、eコマース、画像およびビデオ分析、オブジェクト認識、画像類似性検索、コンテンツベースの画像検索など、さまざまなアプリケーションに適した優れたツールになります。自然言語処理の分野では、ミルヴァスは文書のクラスタリング、意味検索、質問応答システムに使われている。

この解決策では、解決策検証用にmilvusを選択しました。パフォーマンスについては、milvusとpostgres(pgvecto.rs)の両方を使用しました。

この解決策にミルバスを選んだ理由は何ですか?

  • オープンソース: Milvusはオープンソースのベクトルデータベースで、コミュニティ主導の開発と改善を奨励しています。

  • AI統合:類似性検索とAIアプリケーションの埋め込みを活用して、ベクターデータベースの機能を強化します。

  • 大量処理:Milvusには、ディープニューラルネットワーク(DNN)モデルと機械学習(ML)モデルによって生成された10億個以上の埋め込みベクトルを保存、インデックス化、管理する能力があります。

  • ユーザーフレンドリー:使いやすく、セットアップは1分未満で完了します。Milvusは、さまざまなプログラミング言語用のSDKも提供しています。

  • スピード:一部の代替製品に比べて最大10倍の高速な読み出し速度を提供します。

  • スケーラビリティと可用性: Milvusは拡張性に優れており、必要に応じてスケールアップとスケールアウトのオプションがあります。

  • 豊富な機能:さまざまなデータ型、属性フィルタリング、ユーザー定義関数(UDF)のサポート、設定可能な整合性レベル、移動時間をサポートし、さまざまなアプリケーションに対応する汎用性の高いツールです。

Milvusアーキテクチャの概要

エラー:グラフィックイメージがありません

このセクションでは、Milvusアーキテクチャで使用されるより高いレバーコンポーネントとサービスを提供します。
*アクセス層–ステートレスプロキシのグループで構成され、システムおよびエンドポイントの最前面層として機能します。
*コーディネータサービス–作業者ノードにタスクを割り当て、システムの頭脳として機能します。ルートコード、データコード、クエリコードの3つのコーディネータタイプがあります。
*ワーカーノード:コーディネータサービスの指示に従い、ユーザートリガー型DML/DDLを実行commands.itには、クエリノード、データノード、インデックスノードの3種類のワーカーノードがあります。
*ストレージ:データの永続性を管理します。メタストレージ、ログブローカー、オブジェクトストレージで構成されます。ONTAPやStorageGRIDなどのNetAppストレージは、顧客データとベクターデータベースデータの両方について、オブジェクトストレージとファイルベースストレージをMilvusに提供します。