Home
Login

オープンソースのAIネイティブなベクトル埋め込みデータベース。大規模言語モデルアプリケーション向けに設計された検索拡張生成(RAG)ソリューション。

Apache-2.0Rust 20.6kchroma-core Last Updated: 2025-06-21

Chroma - オープンソースAIネイティブベクトルデータベース

プロジェクト概要

Chromaは、AIアプリケーション向けに特化して設計されたオープンソースのデータベースであり、ベクトル埋め込み(embeddings)の保存と検索を目的としています。これは埋め込みデータベース(ベクトルデータベースとも呼ばれます)であり、従来のデータベースのサブストリング検索ではなく、最近傍探索によってデータを検索します。

GitHubアドレス: https://github.com/chroma-core/chroma

主要な特徴

1. フル機能ベクトルデータベース

Chromaは、埋め込み、ベクトル検索、ドキュメントストレージ、全文検索、メタデータフィルタリング、マルチモーダル検索など、多様な機能を1つのプラットフォームに統合しています。

2. 多言語サポート

  • Python: 主要な開発言語
  • JavaScript: フロントエンドとNode.jsをサポート
  • Rust: 高性能なコアコンポーネント

3. 柔軟な埋め込みモデルサポート

デフォルトでは、ChromaはSentence Transformersを使用して埋め込みを行いますが、OpenAI embeddings、Cohere(多言語)などの他の埋め込みモデルも使用できます。

4. 多様なデプロイメントモード

メモリモード、ファイルストレージモード、サーバーモードなど、多様なデプロイメントモードをサポートしています。

5. 高い拡張性

ローカル使用向けのDuckDB、大規模アプリケーション向けのClickHouseなど、異なるストレージバックエンドをサポートしています。

主なアプリケーションシナリオ

1. 検索拡張生成 (RAG) システム

RAGシステムでは、まずドキュメントを埋め込み、ChromaDBコレクションに保存します。次に、ChromaDBでクエリを実行して、意味的に関連するコンテンツを見つけます。

2. セマンティック検索

セマンティック検索において、ChromaDBはベクトル埋め込みに基づいて互いに類似したデータポイントを見つけることができます。これは、コンテンツや意味を分析して、比較可能なドキュメント、画像、その他のデータタイプを識別するのに非常に役立ちます。

3. 類似性検索

ベクトル空間における距離計算を通じて、クエリに最も類似したコンテンツを迅速に見つけます。

技術アーキテクチャ

ストレージバックエンド

  • DuckDB: ローカルの軽量なデプロイメント
  • ClickHouse: 大規模な分散デプロイメント
  • メモリストレージ: 迅速なプロトタイプ開発

埋め込み処理

  • 自動埋め込み生成
  • カスタム埋め込み関数をサポート
  • バッチ処理能力

メタデータ管理

  • 豊富なメタデータフィルタリング機能
  • 構造化クエリのサポート
  • ハイブリッド検索能力

インストールと使用

Pythonインストール

pip install chromadb

基本的な使用例

import chromadb


client = chromadb.Client()


collection = client.create_collection("my_collection")

collection.add(
    documents=["This is document 1", "This is document 2"],
    metadatas=[{"source": "doc1"}, {"source": "doc2"}],
    ids=["id1", "id2"]
)

results = collection.query(
    query_texts=["search query"],
    n_results=2
)

エコシステムとの統合

LangChain統合

ChromaはLangChainと深く統合されており、ベクトルストレージコンポーネントとして使用できます。

OpenAI統合

ChromaはOpenAIの埋め込み関数と統合されており、任意のメタデータストレージとフィルタリングをサポートしています。

プロジェクトの利点

  1. すぐに使える: 必要な機能がすべて事前に統合されています
  2. 使いやすい: シンプルなAPI設計で、すぐに使いこなせる
  3. 高性能: 最適化されたベクトル検索アルゴリズム
  4. 拡張可能: プロトタイプから本番環境へのスムーズな拡張
  5. オープンソース: 活発なコミュニティサポートと継続的な開発

まとめ

Chromaは、現代のAIアプリケーション開発において不可欠なインフラストラクチャコンポーネントであり、特にセマンティック検索、RAGシステム、ベクトル類似性マッチングを必要とするアプリケーションシナリオに最適です。そのシンプルなAPI、強力な機能、優れたエコシステム統合により、開発者にとって最適なベクトルデータベースソリューションとなっています。