AI

Chroma:開源的 AI 原生向量資料庫

Chroma 是一個開源的 AI 原生向量資料庫,專為 LLM 應用設計,具備簡單 API、自動嵌入和可擴展檢索功能。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
Chroma:開源的 AI 原生向量資料庫

向量資料庫已成為現代 AI 應用的支柱,為從語意搜尋到檢索增強生成的各種應用提供動力。Chroma 以獨特的理念進入這個領域:優先考慮開發者體驗和 AI 原生設計,而非原始企業功能。由前 Apple 和 Google 工程師創建,Chroma 已迅速成為 LLM 應用開發者中最受歡迎的選擇之一,這些開發者希望能在幾分鐘內而非幾天內從零開始建立可運作的 RAG 系統。

Chroma 的與眾不同之處在於其獨特的 API 設計。與需要分別執行嵌入生成、索引建立和查詢執行的傳統向量資料庫不同,Chroma 透過可配置的嵌入函數自動處理嵌入。只需幾行 Python 程式碼即可建立集合、新增文件及其嵌入,並執行相似度搜尋——無需單獨的管道編排。

該專案獲得了大量的社群採用,擁有數萬個 GitHub 星星,並獲得主要 AI 框架的整合支援。Chroma 從設計之初就是作為 AI 的資料庫,而非對現有資料庫技術進行向量工作負載的改造。


Chroma 的架構如何運作?

Chroma 的架構圍繞集合(collection)的概念建立,集合是向量資料的主要組織單元。

graph TD
    A[Python / JS 用戶端] --> B[Chroma API 層]
    B --> C[集合管理器]
    C --> D[(集合 1)]
    C --> E[(集合 2)]
    C --> F[(集合 N)]
    D --> G[嵌入函數]
    D --> H[元資料索引]
    D --> I[(向量索引\nHNSW / IVF)]
    G --> J[OpenAI / Cohere / HF / 自訂]
    K[文件 + 元資料] --> D
    L[查詢] --> B
    B --> M[最近鄰搜尋]
    M --> N[排序結果]

每個集合將向量嵌入與其關聯的元資料以及定義文字如何轉換為向量的嵌入函數捆綁在一起。這種整體設計消除了其他設定中應用程式碼與資料庫模式之間的失配問題。


有哪些部署選項?

Chroma 可適應開發生命週期的不同階段。

模式設定時間持久化最佳適用
記憶體內數秒原型開發、測試
持久化(本地)數分鐘本地磁碟單一使用者應用
用戶端-伺服器數分鐘伺服器端多使用者、小型團隊
Chroma Cloud即時(SaaS)託管大規模生產

記憶體內模式對於開發工作流程尤其值得注意。你可以在沒有任何資料庫伺服器程序運行的情況下建立 Chroma 集合、新增資料並執行查詢。準備好部署時,只需對程式碼進行最小的更改即可切換到持久化或客戶端-伺服器模式。


Chroma 與其他向量資料庫相比如何?

向量資料庫領域包含幾個成熟的參與者,各自具有不同的優勢。

功能ChromaPineconeWeaviateQdrant
開源是(Apache 2.0)是(BSD)是(Apache 2.0)
嵌入函數內建外部內建外部
API 風格PythonicREST/gRPCGraphQL/RESTREST/gRPC
元資料過濾
分散式模式即將推出
本地開發簡單(程序內)需要雲端需要 Docker需要 Docker

Chroma 的主要優勢在於其無摩擦的本地開發體驗。雖然其他資料庫需要 Docker 容器或雲端帳戶才能開始使用,但 Chroma 只需 pip install chromadb 和幾行 Python 程式碼即可直接運作。


常見問題

什麼是 Chroma? Chroma 是一個開源的 AI 原生向量資料庫,專為 LLM 應用設計。它提供簡單的 API 用於儲存和檢索向量嵌入,具備內建嵌入函數,並能與主流 AI 框架無縫整合。

Chroma 與其他向量資料庫有何不同? Chroma 以「AI 原生」理念設計,優先考慮簡潔性和開發者體驗而非原始效能。它提供自動嵌入、元資料儲存和對 AI/ML 開發者來說自然順手的 Pythonic API。它可以作為程序內或獨立伺服器運行。

Chroma 支援哪些嵌入函數? Chroma 支援多種嵌入提供者,包括 OpenAI、Cohere、Google、Hugging Face、Sentence Transformers 以及自訂嵌入函數。這種靈活性讓開發者可以選擇最符合其準確度和成本需求的嵌入模型。

Chroma 可以擴展到生產工作負載嗎? 可以,Chroma 支援客戶端-伺服器模式、分散式索引和可配置持久化的生產部署。Chroma Cloud 為大規模部署提供託管服務,而開源版本適用於從開發到中等規模生產的各種場景。

哪些框架可以與 Chroma 整合? Chroma 與 LangChain、LlamaIndex、Hugging Face 和 OpenAI 具有一級整合。它還提供原生 Python 和 JavaScript 用戶端,讓後端和前端 AI 應用開發都能使用。


延伸閱讀

TAG