chroma

Vector DatabasesCLIRust

★ 29,289주당 +59조회 4

무엇인가

Chroma는 AI 애플리케이션의 검색 계층을 담당하는 오픈소스 데이터 인프라다. 임베딩 벡터, 원문 문서, 메타데이터를 컬렉션 단위로 묶어 보관하고 유사도 기준으로 조회한다. RAG 파이프라인에서 검색 백엔드 자리에 놓인다.

어떻게 동작하나

코어는 Rust로 구현되어 있고 클라이언트-서버 구조로 동작한다. Python·JavaScript 클라이언트가 HTTP로 서버에 접속하며, 임베디드 모드에서는 별도 서버 없이 클라이언트 프로세스가 로컬 파일에 직접 저장한다. 컬렉션마다 벡터 인덱스와 문서, 메타데이터가 함께 보관되고, 벡터 유사도 검색에 메타데이터 필터와 전문 검색을 결합한 하이브리드 질의를 지원한다. 기본 임베딩 함수가 내장되어 있어 텍스트를 그대로 넣으면 임베딩 벡터를 대신 계산한다.

무엇과 다른가

FAISS 같은 라이브러리는 인덱스만 제공하므로 영속 저장, 메타데이터 필터, 서빙을 직접 붙여야 한다. pgvector는 기존 관계형 DB에 확장으로 얹힌다. Chroma는 임베딩 계산, 저장, 필터링, 질의를 하나의 API로 묶고 임베디드 모드와 서버 모드에 같은 인터페이스를 적용한다.

어떻게 쓰나

사용은 클라이언트 패키지로 컬렉션을 만들고 문서를 추가한 뒤 질의하는 순서로 이루어진다. 핵심 API는 컬렉션 생성과 문서 추가, 질의를 포함한 네 개의 함수로 축소되어 있다. 서버 모드에서는 Chroma 서버를 띄우고 HTTP 클라이언트로 접속하며, 호스팅 서비스인 Chroma Cloud는 서버리스로 같은 API를 노출한다.

전제와 한계

라이선스는 Apache 2.0이고 pypi와 npm 패키지가 매주 월요일 태깅 릴리스된다. 클라우드는 유료이며 가입 시 5달러 크레딧이 제공된다. 자체 호스팅 시 서버 운영과 저장소 관리는 사용자 몫이다. 기본 임베딩 함수는 로컬에서 실행되는 모델을 사용하므로 실행 환경에 해당 모델이 준비되어야 한다.

관련 논문 5

유사 도구