ベクターデータベース
このセクションでは、 NetApp AI ソリューションにおけるベクター データベースの定義と使用について説明します。
ベクターデータベース
ベクター データベースは、機械学習モデルからの埋め込みを使用して非構造化データを処理、インデックス作成、検索するように設計された特殊なタイプのデータベースです。従来の表形式でデータを整理する代わりに、ベクトル埋め込みとも呼ばれる高次元ベクトルとしてデータを配置します。この独自の構造により、データベースは複雑な多次元データをより効率的かつ正確に処理できるようになります。
ベクター データベースの主な機能の 1 つは、生成 AI を使用して分析を実行することです。これには、データベースが特定の入力に類似するデータ ポイントを識別する類似性検索や、標準から大きく逸脱するデータ ポイントを見つける異常検出が含まれます。
さらに、ベクター データベースは、時間データ、つまりタイムスタンプ付きデータの処理に適しています。このタイプのデータは、特定の IT システム内で何がいつ起こったか、その順序や他のすべてのイベントとの関係についての情報を提供します。この時間的データの処理と分析の機能により、ベクター データベースは、時間の経過に伴うイベントの理解を必要とするアプリケーションに特に役立ちます。
ML および AI 向けベクトル データベースの利点:
-
高次元検索: ベクター データベースは、AI および ML アプリケーションで生成されることが多い高次元データの管理と取得に優れています。
-
スケーラビリティ: 大量のデータを効率的に処理して処理できるため、AI および ML プロジェクトの成長と拡大をサポートします。
-
柔軟性: ベクター データベースは高度な柔軟性を備えており、さまざまなデータ タイプと構造に対応できます。
-
パフォーマンス: AI および ML 操作の速度と効率に不可欠な、高パフォーマンスのデータ管理と取得を提供します。
-
カスタマイズ可能なインデックス作成: Vector データベースはカスタマイズ可能なインデックス作成オプションを提供し、特定のニーズに基づいて最適化されたデータの編成と取得を可能にします。
ベクター データベースと使用例。
このセクションでは、さまざまなベクター データベースとその使用例の詳細について説明します。
ファイスと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 は高スループットのワークロードの処理に優れており、データレプリケーションを提供します。また、従来のリレーショナル データベース (RDBMS) を含む他のデータ タイプとも適切に統合されます。 Redis には、リアルタイム更新のための Publish/Subscribe (Pub/Sub) 機能が含まれており、リアルタイム ベクトルの管理に役立ちます。さらに、Redis は軽量で使い方が簡単なため、ベクター データを管理するためのユーザーフレンドリーなソリューションになります。
ミルバス
これは、MongoDB と同様に、ドキュメント ストアのような API を提供する多目的ベクター データベースです。幅広いデータ タイプをサポートしていることが特徴で、データ サイエンスや機械学習の分野で人気のある選択肢となっています。
Milvus のユニークな機能の 1 つは、マルチベクトル化機能です。この機能により、ユーザーは実行時に検索に使用するベクトルの種類を指定できます。さらに、Faiss などの他のライブラリの上位にあるライブラリである Knowwhere を使用して、クエリとベクトル検索アルゴリズム間の通信を管理します。
Milvus は、PyTorch および TensorFlow との互換性により、機械学習ワークフローとのシームレスな統合も提供します。これにより、電子商取引、画像およびビデオ分析、オブジェクト認識、画像類似性検索、コンテンツベースの画像検索など、さまざまなアプリケーションに最適なツールになります。自然言語処理の分野では、Milvus はドキュメントのクラスタリング、セマンティック検索、質問応答システムに使用されます。
このソリューションでは、ソリューション検証に milvus を選択しました。パフォーマンスのために、milvus と postgres(pgvecto.rs) の両方を使用しました。
このソリューションに Milvus を選んだ理由は何ですか?
-
オープンソース: Milvus はオープンソースのベクター データベースであり、コミュニティ主導の開発と改善を促進します。
-
AI 統合: 埋め込み類似性検索と AI アプリケーションを活用して、ベクター データベースの機能を強化します。
-
大容量処理: Milvus には、ディープ ニューラル ネットワーク (DNN) および機械学習 (ML) モデルによって生成された 10 億を超える埋め込みベクトルを保存、インデックス作成、管理する機能があります。
-
ユーザーフレンドリー: セットアップは 1 分もかからず簡単に使用できます。 Milvus は、さまざまなプログラミング言語用の SDK も提供しています。
-
速度: 他のいくつかの代替品よりも最大 10 倍高速な、非常に高速な取得速度を提供します。
-
スケーラビリティと可用性: Milvus は非常にスケーラブルで、必要に応じてスケールアップおよびスケールアウトするオプションがあります。
-
機能が豊富: さまざまなデータ タイプ、属性フィルタリング、ユーザー定義関数 (UDF) のサポート、構成可能な一貫性レベル、移動時間をサポートしており、さまざまなアプリケーションに使用できる多用途のツールです。
Milvusアーキテクチャの概要
このセクションでは、Milvus アーキテクチャで使用されるより高レベルのコンポーネントとサービスについて説明します。 * アクセス層 – ステートレス プロキシのグループで構成され、システムのフロント層およびユーザーへのエンドポイントとして機能します。 * コーディネーター サービス - タスクをワーカー ノードに割り当て、システムの頭脳として機能します。コーディネーターの種類には、ルート コーディネーター、データ コーディネーター、クエリ コーディネーターの 3 つがあります。 * ワーカー ノード: コーディネーター サービスからの指示に従い、ユーザーがトリガーした DML/DDL コマンドを実行します。クエリ ノード、データ ノード、インデックス ノードなど、3 種類のワーカー ノードがあります。 * ストレージ: データの永続性を維持します。メタストレージ、ログブローカー、オブジェクトストレージで構成されます。 ONTAPやStorageGRIDなどのNetAppストレージは、顧客データとベクター データベース データの両方に対して、Milvus にオブジェクト ストレージとファイル ベースのストレージを提供します。