Chromaとは?オープンソース組み込み型データベース

Aaron Ricadela | シニアライター | 2024年4月15日

大規模言語モデルや非構造化データセットを活用して類似性検索アプリケーションを構築するAI開発チームは、数百万から数十億のデータポイントの特徴を高速に比較できるように設計されたベクトルデータベースを活用し始めています。

ChromaやPinecone、Qdrant、Weaviate、Zillizといった企業が提供する新世代の専用ベクトルデータベースは、テキストや画像などの非構造化データをベクトルとして高次元空間に表現し、その関係性を比較することで、データ同士の意味的なつながりを可視化します。ベクトルデータベースは、画像や動画コンテンツ検索、商品や動画のレコメンデーション、ユーザーの意図に基づいたより関連性の高い情報の検索、また、検索拡張生成(RAG)による企業独自データを活用したAIチャットボットの強化など、さまざまなAIアプリケーションの基盤となっています。ベクトルデータベースは、データセット内で近似最近傍探索(ANN)を行う能力に優れている点が特徴です。

ChromaDBとは

Chromaは、サンフランシスコに拠点を置く同名のスタートアップが開発したオープンソースのデータベースです。開発者はChromaを利用して、ANN、検索、画像検索、RAG、EC向けレコメンド機能などを備えたアプリケーションを構築できます。Chromaは、開発者がノートPC上で素早くプロトタイプを開発したり、パブリッククラウドやプライベートクラウド上で利用したりできる、軽量なベクトルデータベースとして知られています。Chromaは、高速なデータアクセスのためにApache Arrowデータフォーマットを採用しています。

開発チームは、Chromaをクライアント/サーバーモードで単一ノード上に構成し、Dockerコンテナやパブリック・クラウドサービスのホストマシンを使ってデプロイできます。また、同社のマネージドサービスであるChroma Cloud上で運用することも可能で、Amazon Web Services、Google Cloud Platform、Microsoft Azureにデプロイできます。Chromaは商用利用が可能なApache 2.0ライセンスで提供されています。

開発者にとって使いやすい設計となっており、OpenAI、Google、Cohere、Hugging Faceなどの埋め込みモデルを利用できます。また、LangChain、LlamaIndex、BraintrustとのPython/JavaScript統合や、Streamlitを含むAIツールとのPython統合も可能です。さらに、Python、JavaScript、Ruby、Java、Go、C#、Elixir、Rustなど、さまざまな言語向けのクライアントも提供されています。

オラクルがベクトル・データベース分野でChromaより優れている理由

Oracle Database 23aiのAIベクトル検索、Chromaや他の単体ベクトルデータベースと比べて、はるかに幅広い高可用性・セキュリティ機能を提供します。Oracle Virtual Private DatabaseやOracle Label Securityといった機能により、組織はユーザーの役割や権限レベルに応じて社内データへのアクセスを制御できます。Oracle Real Application Clusters(RAC)を使うことで、複数のサーバー上でデータベースインスタンスを稼働させ、耐障害性や負荷分散を実現します。Oracle Active Data Guardは、スタンバイデータベースへの即時レプリケーションによって、予期しない障害発生時のデータ損失を防ぎます。

さらに、Oracle Database 23aiは、リレーショナル列に保存された条件(追加フィルター)をベクトル検索の前・最中・後のいずれに適用すべきかを判別し、ベクトル検索を最適化できます。つまり、類似性検索アプリケーションで上位K件のリストを返す際、Oracle Databaseはデータのリレーショナル属性にもとづき、ベクトル検索実行の前後や実行中に、結果の絞り込みタイミングを柔軟に選択できます。

AIがより多くのデータにアクセスし、成果を向上させ、使用を簡素化する仕組みをご紹介します。

ChromaDBに関するよくある質問

Chromaとは何で、どのように機能しますか?

Chromaは、ベクトル埋め込み空間での類似性検索を活用したアプリケーション開発向けの軽量なベクトルデータベースです。類似性検索向けのベクトル索引を低コストで提供できるよう、オブジェクト・ストレージ層を備えています。

Chromaが他のベクトルデータベースと違う点は何ですか?

Chromaは、小規模プロジェクトの開発者向けに設計されており、大規模なハードウェア投資なしでノートPCにもインストールでき、迅速なプロトタイピングが可能です。また、幅広い開発言語やAIツールに対応しています。

Chromaは構造化データと非構造化データの両方を扱えますか?

Chromaは、ベクトル埋め込みの保存や検索に特化しており、構造化されたリレーショナルデータの処理には対応していません。

Chromaはオープンソースですか?

はい、ChromaはオープンソースのApache 2.0ライセンスで提供されており、利用者は自社の製品にコードを組み込んで再配布することができます。