ChromaとAerospike:ニーズに合ったベクターデータベースの選択
AIやデータ駆動型テクノロジーの進歩に伴い、アプリケーションに適したベクターデータベースを選択することがますます重要になってきている。ChromaとAerospikeは、この分野における2つの選択肢です。本記事では、これらのテクノロジーを比較し、プロジェクトのために十分な情報に基づいた決断をするのに役立ちます。
ベクターデータベースとは?
ChromaとAerospikeを比較する前に、まずベクターデータベースの概念について説明します;
ベクトルデータベース](https://zilliz.com/learn/what-is-vector-database)は、特に高次元のベクトルを格納し、クエリするように設計されています。ベクトルは非構造化データの数値表現です。これらのベクトルは、テキストの意味、画像の視覚的特徴、または製品の属性などの複雑な情報をエンコードします。効率的な類似検索を可能にすることで、ベクトルデータベースはAIアプリケーションの役割を果たし、より高度なデータ分析と検索を可能にする。
ベクトルデータベースの一般的なユースケースには、電子商取引の商品推奨、コンテンツ発見プラットフォーム、サイバーセキュリティにおける異常検知、医療画像分析、自然言語処理(NLP)タスクなどがある。また、AI幻覚のような問題を軽減するために、外部知識を提供することによって大規模言語モデル(LLM)の性能を向上させる技術であるRAG(Retrieval Augmented Generation)でも役割を果たしている。
市場には、以下のような多くの種類のベクトル・データベースがある:
- Milvus](https://zilliz.com/what-is-milvus)、Zilliz Cloud(フルマネージドMilvus)など。
- Faiss](https://zilliz.com/learn/faiss)やAnnoyのようなベクトル検索ライブラリ。
- Chroma](https://zilliz.com/blog/milvus-vs-chroma)やMilvus Liteのような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
メタ説明: Chromaはベクトルデータベースであり、Aerospikeは分散型のスケーラブルなNoSQLデータベースである。どちらもアドオンとしてベクトル検索機能を備えている。この投稿では、両者のベクトル検索機能を比較する。 ;
Chroma**とは?概要
Chromaは、AIアプリケーションの構築プロセスを簡素化する、オープンソースのAIネイティブベクターデータベースです。大規模な言語モデル(LLM)と、それらが効果的に機能するために必要なデータとの橋渡しをする。Chromaの主な目的は、知識、事実、スキルにLLMが簡単にアクセスできるようにすることで、AI搭載アプリケーションの開発を効率化することだ。Chromaの中核は、ベクターデータを管理するためのツールを提供することで、開発者はエンベッディング(データのベクター表現)を関連するメタデータとともに保存することができる。この機能は、多くのAIアプリケーションにとって非常に重要であり、ベクトル関係に基づく効率的な類似検索やデータ検索を可能にします。
Chromaの主な強みのひとつは、シンプルさと開発者の生産性を重視していることだ。Chromaの開発チームは、開発者がベクトル検索機能をアプリケーションに素早く統合できるよう、直感的なインターフェイスを作ることを優先した。使いやすさを重視するあまり、パフォーマンスが犠牲になることはありません。Chromaは高速かつ効率的に設計されているため、さまざまなアプリケーションに適している。Chromaはサーバーとして動作し、PythonとJavaScript/TypeScriptの両方に対応したクライアントSDKを提供します。
Chromaの機能は、関連するエンベッディングのグループであるコレクションの概念を中心に展開されます。Chromaのコレクションにドキュメントを追加すると、システムは自動的にトークン化し、指定されたエンベッディング関数(指定されていない場合はデフォルトの関数)を使ってエンベッディングを行います。この処理により、生データは効率的に検索できるベクトル表現に変換される。エンベッディングとともに、Chromaでは各文書のメタデータを保存することができ、これにはデータのフィルタリングや整理に役立つ追加情報を含めることができます。Chromaは柔軟なクエリーオプションを提供しており、ベクトル埋め込みまたはテキストクエリーのいずれかを使用して類似文書を検索し、ベクトルの類似性に基づいて最も近い一致を返します。
Chromaはいくつかの点で際立っている。ChromaのAPIは直感的で使いやすいように設計されており、ベクターデータベースを初めて使う開発者でも学習曲線が少なくなっている。Chromaは様々なタイプのデータをサポートし、様々なエンベッディングモデルに対応しているため、ユーザーは特定のユースケースに最適なアプローチを選択することができる。Chromaは、他のAIツールやフレームワークとシームレスに統合できるように構築されており、複雑なAIパイプラインに適している。さらに、Chromaはオープンソース(ライセンスはApache 2.0)であるため、透明性が高く、コミュニティ主導の改善やカスタマイズが可能です。Chromaチームは、マネージドサービス(Hosted Chroma)の計画や様々なツールの改善など、積極的に機能強化に取り組んでおり、継続的な開発とサポートへのコミットメントを示している。
Aerospikeとは?概要
Aerospikeは、高性能なリアルタイムアプリケーション向けのNoSQLデータベースである。ベクトルインデックスの作成と検索をサポートしており、ベクトルデータベースのユースケースに適している。ベクトル機能はAerospike Vector Search (AVS)と呼ばれ、現在プレビュー中です。Aerospikeから早期アクセスをリクエストできます。
AVSは、ベクター検索用にHNSW(Hierarchical Navigable Small World)インデックスのみをサポートしています。AVSで更新や挿入が行われると、ベクトルを含むレコードデータがAerospikeデータベース(ASDB)に書き込まれ、すぐに表示されます。インデックスを作成するためには、各レコードは、インデックスの指定されたベクトルフィールドに少なくとも1つのベクトルを持つ必要があります。1つのレコードに対して複数のベクトルとインデックスを持つことができるので、同じデータをさまざまな方法で検索することができます。Aerospike では、アップサートされたレコードを特定のセットに割り当てて、監視および操作できるようにすることを推奨しています。
AVSにはインデックスを構築する独自の方法があり、それはすべてのAVSノードで同時並行的に行われます。ベクトルレコードの更新はASDBに直接書き込まれますが、インデックスレコードはインデックスキューから非同期に処理されます。これはバッチで行われ、すべてのAVSノードに分散されるため、AVSクラスタのすべてのCPUコアを使用し、スケーラブルです。Ingestionのパフォーマンスはホストのメモリとストレージレイヤーの構成に大きく依存します。
インデキシングキュー内の各アイテムについて、AVSはインデキシング用のベクトルを処理し、各ベクトルのクラスタを構築し、それらをASDBにコミットします。インデックスレコードには、ベクター自体のコピーと、HNSWグラフの指定されたレイヤーにおけるそのベクターのクラスタが含まれます。インデックス作成には、単一命令、複数データ並列処理のためのベクトル拡張(AVX)を使用する。
クラスタ内のレコードは相互に接続されているため、AVSはインジェスト時にクエリーを行い、インデックスキャッシュに「事前水分補給」を行う。これらのクエリーはクエリーリクエストとしてカウントされず、ストレージレイヤーに対するリードとして表示される。こうすることで、キャッシュに関連データが蓄積され、クエリ性能を向上させることができる。これはAVSがどのようにベクトルデータを扱い、類似検索のためのインデックスを構築し、高次元のベクトル検索に対応できるかを示している。
主な相違点
ベクトル検索機能を必要とするAIアプリケーションを構築する場合、ChromaとAerospikeを候補として検討することになるでしょう。この比較は、両者の主な違いを理解し、ニーズに合ったツールを選択するのに役立ちます。
検索方法
Chromaは、複数の埋め込みモデルや検索方法をサポートし、柔軟な検索オプションを提供します。ベクトル埋め込みやテキストクエリを使った検索が可能で、さまざまなユースケースに対応できます。
Aerospike Vector Search (AVS) は、Hierarchical Navigable Small World (HNSW) インデックスのみを使用します。HNSWはベクトル検索で実績のあるアプローチですが、インデックスオプションが1つしかないため、特殊な使用例が制限される可能性があります。
データ処理
Chromaはデータをコレクションに整理し、埋め込みと関連するメタデータの両方を扱う。ドキュメントを自動的に処理し、埋め込むことができるため、生データの取り扱いが簡単になります。各ドキュメントには、フィルタリングや整理のための追加メタデータを含めることができます。
Aerospikeでは、インデックスの指定されたベクトルフィールドに、レコードごとに少なくとも1つのベクトルが必要です。レコードごとに複数のベクターとインデックスをサポートしているため、データの検索方法に柔軟性があります。レコードはAerospikeデータベース(ASDB)に直接書き込まれ、すぐに見ることができます。
スケーラビリティとパフォーマンス
Chromaは開発者の生産性を優先し、多くのユースケースで優れたパフォーマンスを発揮します。しかし、ドキュメントには具体的なスケーラビリティの詳細が記載されていません。
Aerospikeは分散インデックスシステムにより、スケーラビリティの点で優れています。インデックス作成プロセスは、クラスタ内で利用可能なすべてのCPUコアを使用して、すべてのAVSノードで同時に実行される。並列処理にはベクトル拡張(AVX)を使用し、インデックスキャッシュの "プリハイドレーション "によるスマートキャッシングを含む。
柔軟性とカスタマイズ
Chromaは、オープンソースのコードベース(Apache 2.0ライセンス)を提供しており、開発者が変更・拡張することができます。様々なエンベッディングモデルやデータタイプに対応し、柔軟な実装が可能です。
Aerospikeのベクトル検索機能は、より構造化されていますが、レコードごとに複数のベクトルやインデックスによるカスタマイズが可能です。このシステムは、Aerospikeが提供する広範なNoSQLデータベースの一部である。
統合とエコシステム
Chromaは、PythonおよびJavaScript/TypeScript用のファーストパーティクライアントSDKを提供しており、ほとんどの最新の開発スタックにアクセス可能です。Chromaは、他のAIツールやフレームワークとも連携できるように設計されています。
Aerospikeは、既存のNoSQLデータベースエコシステムと統合されており、他のデータストレージのニーズでAerospikeを既に使用している場合、これは貴重かもしれない。
使いやすさ
Chromaは、直感的なAPIデザインでシンプルさを強調している。開発者の生産性を重視しているため、設定や構成に費やす時間が短くて済みます。ドキュメントのトークン化や埋め込みなど、多くの複雑な処理を自動的に行います。
Aerospikeのベクトル検索は、特にインデックスの設定や最適化など、より技術的な理解を必要とする。しかし、インデックス作成プロセスを詳細に制御することができます。
コストに関する考察
Chromaはオープンソースであり、無料で利用できる。将来的にはマネージドサービス(Hosted Chroma)を提供する予定ですが、価格は未定です。
Aerospike Vector Searchはプレビュー版で、早期アクセス承認が必要。コストはおそらくAerospikeの企業向け価格モデルと同じだろう。
各テクノロジーを選択するタイミング
Chromaを選ぶとき
Chromaは、新しいAIアプリケーションを開発するチームが、言語モデルやドキュメントのエンベッディングを扱う際に、わかりやすいベクトル検索ソリューションを必要とする場合に最適です。Chromaは、セットアップにかかる時間を最小限に抑えたい場合や、エンベッディング生成の自動処理が必要な場合、そしてインフラ管理よりも機能構築に集中できるシンプルなAPIを好む場合に適しています。小規模から中規模のチーム、スタートアップ、迅速な反復が必要なプロジェクトでは、Chromaの開発者に優しいアプローチは、特に貴重なものとなるでしょう。
Aerospikeを選択するとき
Aerospike Vector Searchは、ハイパフォーマンスなベクトル検索を既存のNoSQLインフラと統合する必要があるエンタープライズ環境に最適です。保証されたスケーラビリティが必要な場合、厳しいパフォーマンス要件がある場合、大規模な分散データセットを管理する場合、インデックス作成プロセスを正確に制御したい場合に最適です。すでにAerospikeのNoSQLデータベースを使用している組織や、即時の一貫性とエンタープライズグレードの機能を必要とする組織は、AVSの恩恵を最も受けることができます。
結論
ChromaとAerospikeのどちらを選択するかは、最終的には個々のニーズによる:Chromaはシンプルで迅速なセットアップと強力なAI統合機能を提供し、Aerospikeはエンタープライズグレードのスケーラビリティとインデックス作成の正確なコントロールを提供します。Chromaはシンプルで迅速なセットアップと強力なAI統合機能を提供し、Aerospikeはエンタープライズグレードのスケーラビリティとインデックスの正確なコントロールを提供します。開発スピードを優先する新しいAIプロジェクトには、Chromaを選択するのがよいでしょう。スケーラビリティと正確な制御を必要とするエンタープライズアプリケーション、特にすでにAerospikeを使用している場合は、AVSの方が適している可能性が高い。
本記事ではChromaとAerospikeの概要を説明したが、これらのデータベースを評価する際には、それぞれのユースケースを考慮することが重要である。このプロセスを支援するツールの1つが、ベクターデータベースのパフォーマンスを比較するために設計されたオープンソースのベンチマークツールであるVectorDBBenchです。最終的には、特定のデータセットとクエリーパターンを使った徹底的なベンチマークが、分散データベースシステムにおけるベクトル検索に対する、強力でありながら異なるこの2つのアプローチのどちらを選ぶか、十分な情報に基づいた決断を下すために不可欠となるでしょう。
オープンソースのVectorDBBenchを使って、ベクターデータベースを自分で評価・比較する
VectorDBBenchは、高性能なデータ保存・検索システム、特にベクトルデータベースを必要とするユーザーのために設計されたオープンソースのベンチマークツールです。このツールにより、ユーザは独自のデータセットを用いてMilvusやZilliz Cloud(マネージドMilvus)などの異なるベクトルデータベースシステムの性能をテスト・比較し、ユースケースに最も適したものを決定することができます。VectorDBBenchを使用することで、ユーザーはマーケティング上の主張や逸話的証拠に頼るのではなく、実際のベクトルデータベースのパフォーマンスに基づいて情報に基づいた決定を下すことができます。
VectorDBBenchはPythonで書かれており、MITオープンソースライセンスの下でライセンスされています。VectorDBBenchは、その機能と性能の改善に取り組む開発者のコミュニティによって活発にメンテナンスされています。
VectorDBBenchをGitHubリポジトリ**からダウンロードして、我々のベンチマーク結果を再現したり、あなた自身のデータセットでパフォーマンス結果を得てください。
VectorDBBench Leaderboard](https://zilliz.com/vector-database-benchmark-tool?database=ZillizCloud%2CMilvus%2CElasticCloud%2CPgVector%2CPinecone%2CQdrantCloud%2CWeaviateCloud&dataset=medium&filter=none%2Clow%2Chigh&tab=1)で、主流のベクトルデータベースのパフォーマンスを簡単に見てみましょう。
ベクターデータベースの評価については、以下のブログをお読みください。
- ベンチマーク・ベクター・データベースのパフォーマンス:テクニックと洞察](https://zilliz.com/learn/benchmark-vector-database-performance-techniques-and-insights)
- VectorDBBench: オープンソースベクターデータベースベンチマークツール](https://zilliz.com/learn/open-source-vector-database-benchmarking-your-way)
- ベクターデータベースを他のデータベースと比較する](https://zilliz.com/comparison)
VectorDB、GenAI、MLに関するその他のリソース
- ジェネレーティブAIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
- あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
- RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
- 大規模言語モデル(LLM)を学ぶ](https://zilliz.com/learn/ChatGPT-Vector-Database-Prompt-as-code)
- ベクトルデータベース101](https://zilliz.com/learn/what-is-vector-database)
- 自然言語処理(NLP)](https://zilliz.com/learn/introduction-to-natural-language-processing-tokens-ngrams-bag-of-words-models)
読み続けて

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
Discover VDBBench 1.0, an open-source tool for benchmarking vector databases with real-world production data, streaming ingestion, and concurrent workloads.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


