注意:
私たちはオープンソースプロジェクト vector-db-benchmark (opens new window) で、MyScaleおよび他のベクトルデータベース製品のベンチマーク結果を継続的に更新しています。
従来、リレーショナルデータベースは専門のベクトルデータベースと比較してパフォーマンスが劣ると考えられてきました。たとえば、PostgreSQLにベクトル拡張を追加した場合、Pineconeなどの専門のベクトルデータベースと比較して著しいパフォーマンスの劣化が見られます。そのため、現在は多くの専門のベクトルデータベースが利用可能です。しかし、実稼働準備が整っていること、堅牢な機能セットがあること、サポートとコミュニティがあること、統合性があること、セキュリティがあること、そしてもちろんデータとのやり取りにおいて使い慣れた強力な言語であるSQLがあることなど、さまざまな理由から、人々はリレーショナルデータベースを好む傾向があります。専門のベクトルデータベースでは、これらの機能のいくつかが犠牲になることがあります。
では、もしリレーショナルデータベースが専門のベクトルデータベースと競争できる、あるいはそれを凌駕できるようになったらどうでしょうか?
私たちは、MyScaleの大幅なアップグレードを発表できることを大変嬉しく思います。これにより、リレーショナルデータベースがベクトルのパフォーマンスにおいて最も高度な専門のベクトルデータベースを凌駕することが初めて可能になりました。Pineconeなどの主要な専門のベクトルデータベースとの直接比較では、MyScaleはPineconeのs1ポッドに対してクエリの速度で10倍、データ密度で5倍のパフォーマンスを発揮します。**コスト効率を考慮すると、MyScaleはさまざまな精度レベルで他のトップパフォーマンスの専門のベクトルデータベースよりも3.6倍もコスト効果が高いです。**これは以下の図で示されています。Pineconeは主要なデータベースですが、この文脈でのコスト効果の比較は、Pineconeだけでなく、最も優れたパフォーマンスを発揮するさまざまな専門のベクトルデータベースの範囲との比較です。
これは、アルゴリズムとシステムエンジニアリングの両方に関わる一連の革新によって、構造化データとベクトルをシームレスに統合して実現されています。
- アルゴリズムの革新:ベクトルデータベースの中核には最近傍探索アルゴリズムがあります。ほとんどのベクトルデータベースは、IVFやHNSWなどの同じ一連のアルゴリズムに依存しており、そのためパフォーマンスの制限が似ています。MyScaleは、IVFやHNSWよりも優れたパフォーマンスを発揮するMSTG(Multi-Scale Tree Graph)という独自のアルゴリズムを実装しています。
- システムエンジニアリング:MyScaleはClickHouseをベースにしています。私たちはClickHouseの高いパフォーマンスと豊富な機能セットが好きです。ただし、いくつかの既知の問題とシステムのオーバーヘッドがあります。ベクトルをClickHouseと連携させるために、私たちは数多くのシステムの改善とバグ修正を行いました(一部はClickHouseコミュニティにも貢献しています)。
MyScaleを通じて利用可能なパフォーマンスのアップグレードにより、ユーザーはさらに強力なAIアプリケーションを作成することができます。MyScaleには以下の主な機能が含まれています。
- 高いデータ容量とパフォーマンス:MyScaleでは、1つの標準ポッドで高い精度で5百万の768次元データポイントをサポートし、150クエリ/秒以上のパフォーマンスを実現しています。
- 高速なデータインジェクション:30分以内に5百万のデータポイントをインジェクションし、待ち時間を最小限に抑え、ベクトルデータをより迅速に提供することができます。
- 複数のインデックスのサポート:各MyScaleポッドには、ユニークなベクトルインデックスを持つ複数のテーブルを作成することができます(ベクトルリファレンス (opens new window)を参照)。この機能を高いデータ容量と組み合わせることで、1つのMyScaleクラスタで異種のベクトルデータを効率的に管理し、システムの複雑さとコストをさらに削減することができます。
- 簡単なデータのインポートとバックアップ:Parquetや圧縮されたtarファイルなどの標準的な形式をサポートしているため、単一のSQLコマンドを使用してS3などの互換性のあるオブジェクトストレージシステムからデータを簡単にインポート/エクスポートすることができます(こちら (opens new window)を参照)。
MyScaleは現在ベータ版であり、無料の開発者向けティアと商用プランが準備中です。私たちの知る限りでは、MyScaleは高パフォーマンスな検索を備えた5百万の768次元ベクトルデータポイントをサポートする最初の無料プランを提供しています。
# 主要なベクトルデータベースサービスとのベンチマーク比較
この記事では、MyScaleを他の広く利用されているベクトルデータベースサービスと徹底的にベンチマーク比較しています。ベンチマークのコードと結果はこちら (opens new window)で公開されており、定期的に更新されます。この記事では、主な結果の簡潔な要約を提供します。
このベンチマーク調査で選ばれたサービスには、Pinecone、Qdrant、Weaviate、Zilliz Cloudなどの業界のリーダーが含まれています。これらのサービスは、データインジェクション時間、検索QPS(クエリ数/秒)、平均レイテンシの3つの主要なパラメータで評価しました。テストに使用されたデータセットは、LAION 2B images (opens new window)から生成された5百万の768次元ベクトルで構成されています。このデータセットは公開でアクセス可能 (opens new window)です。
このベンチマーク調査では、高容量のサービスに重点を置いています。そのため、サービスが複数のポッド構成を提供している場合、データ密度が最も高いものを選択しました。例として、Pineconeのs1ポッドやZilliz Cloudの容量最適化1CUなどがあります。また、MyScale、Weaviate、Zilliz Cloudなどのサービスは、検索速度と精度のバランスを取るためのさまざまなチューニングオプションを提供しています。MyScaleの場合、alpha=3
の設定でトップ10の再現率が98.5%になるような構成を選択し、他のサービスと同様の精度レベルで比較しました。すべてのテストは4つの並列クライアント接続を使用して実施されました。
# コストパフォーマンス比
このベンチマーク調査の重要な要素の1つは、コストパフォーマンス比の評価です。これは、サービスの月額コストとQPS(クエリ数/秒)の比率を測定します。5百万のベクトルデータポイントで100 QPSを達成するために必要な月額コストを定量化します。私たちの分析は、MyScaleの優れたコストパフォーマンス比を示しており、他のベクトルデータベースよりも3.6倍以上安価です。データ密度が高いにもかかわらず、Pineconeのs1はQPSが低いため、コストパフォーマンス比があまり有利ではありません。Weaviateのコスト効率は、クエリ数に応じてスケールする価格体系に制約されています。最低のクエリレートが1回/月の場合でも、基本コストは月額192ドルであり、平均QPSが5の場合はコストが690ドルに上昇します。これは、コスト効率を計算するために前の図で使用されました。Zilliz Cloudはデータストレージ容量が大きいにもかかわらず、QPSが低く、コストパフォーマンス比が悪化しています。Qdrantクラウドは、5百万のデータポイントを効率的に管理するために32GBのメモリが必要であり、コストが増加します。HNSWのチューニングパラメータを数多く調査し、最適なパフォーマンスのためにm=32
ef_c=256
を選択しましたが、クエリ数/秒(QPS)は満足のいくコストパフォーマンス比には不十分です。
徹底的な比較のために、Pineconeのp2ポッドも調査しました。各p2ポッドは1Mの768Dデータをサポートし、データを収容するために5つのp2.x1スケーリングアウト構成を選択しました。Pineconeのp2は約93%のトップ10再現率を持ち、他のベクトルデータベースサービスとのパフォーマンスは劣りますが、MyScaleのalpha=1
の設定と同等です。したがって、Pinecone p2との別個の比較も右のグラフに示されています。この場合、MyScaleは5つのp2.x1よりも3.7倍もコスト効果が高いことがわかります。記事の残りの部分では、主に高精度設定に焦点を当て、ベクトルデータベースサービスの一般的な標準に合致しています。
以下は、この記事でテストされたサービスの要約です。各サービスのコストパフォーマンス比については、前の図を参照してください。
Accuracy | Service | QPS | Monthly Cost ($) | Comment |
---|---|---|---|---|
98.5% | MyScale's standard pod (alpha=3) | 150 | 120 | Beta with free trial, standard tier coming soon |
Pinecone s1 | 9 | 69 | GCP Base Price | |
Weaviate | 66 | 690 | Total monthly queries calculated as 5 * 3600 * 24 * 30 | |
Zilliz Cloud 1CU Capacity Optimized | 63 | 186 | - | |
Qdrant 4c32g | 81 | 273 | HNSW m=32 ef_c=256 | |
93% | MyScale's standard pod (alpha=1) | 288 | 120 | - |
Pinecone 5 p2.x1 | 331 | 518 | Horizontal scaling of 5 p2 pods |
さらに、QPS、平均クエリレイテンシ、データインジェクション時間など、より具体的なパフォーマンスメトリクスを調べてみましょう。
# クエリ数/秒(QPS)
MyScaleは、LAION 5Mデータセットにおいて98.5%の再現率を持つQPSにおいて他のベクトルデータベースを凌駕しており、150 QPS以上を達成しています。比較すると、Pinecone s1のQPSは約10であり、MyScaleよりも著しく低いです。WeaviateとZilliz Cloudはどちらも約65 QPSを達成していますが、Qdrantは81 QPSを達成しています。
# 平均クエリレイテンシ
クエリレイテンシは、クライアントがリクエストを送信してからレスポンスを受け取るまでの時間を測定する重要なパフォーマンスメトリクスです。MyScaleは150 QPSを達成しながら、平均レイテンシを25.8 msまで低下させています。一方、Pinecone s1のレイテンシは400 ms以上と比較的高いです。WeaviateとZilliz Cloudはどちらも約60 msのレイテンシを持ち、Qdrantは約100 msのやや高いレイテンシを持っています。
# データインジェクション時間
データのアップロードからベクトルインデックスの構築が完了し、サービス提供の準備が整うまでの時間をデータインジェクション時間と呼びます。インデックスの作成には時間がかかることがあり、特にHNSWなどのグラフベースのアルゴリズムの場合はさらに時間がかかります。テストされたすべてのサービスの中で、MyScaleは5百万のデータポイントのインジェクション時間が最も速く、約30分で完了します。Pinecone s1は約53分かかりますが、Weaviateは72分かかります。Zilliz Cloudは約113分のより長い時間がかかり、Qdrantは5百万のデータポイントを処理するのに145分かかります。
# 結論
まとめると、ClickHouseをベースにしたMyScaleは、リレーショナルデータベースとSQLの利点をすべて保持しながら、専門のベクトルデータベースを凌駕することが可能であり、コスト効率も3.6倍高いことを示しています。これはまだ始まりに過ぎません。
MyScaleは、無料の開発者向けレベルで正式にローンチされました。商用プランでは、データ容量の増加やマルチレプリケーション、マルチゾーンの可用性など、追加機能を提供します。詳細については、contact@myscale.com までご連絡いただくか、私たちの Discord (opens new window) に参加してください。