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는 임베딩, 벡터 검색, 문서 저장, 전체 텍스트 검색, 메타데이터 필터링 및 다중 모드 검색을 포함한 다양한 기능을 하나의 플랫폼에 통합합니다.

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, 강력한 기능 및 우수한 생태계 통합으로 인해 개발자가 선호하는 벡터 데이터베이스 솔루션입니다.