프로젝트 소개
Milvus는 Go와 C++로 작성된 분산 벡터 데이터베이스로, 텍스트, 이미지 및 멀티모달 정보를 포함한 방대한 양의 비정형 데이터를 효율적으로 구성하고 검색할 수 있게 합니다. 높은 확장성과 가용성을 위해 설계되었으며, 컴퓨팅과 스토리지를 분리하여 독립적인 수평 확장이 가능한 K8s 네이티브 아키텍처를 활용합니다.
주요 기능은 다음과 같습니다:
- 벡터 검색 및 인덱싱: HNSW, IVF, FLAT, SCANN, DiskANN과 같은 다양한 인덱스 유형을 지원하며, CPU 및 GPU(NVIDIA CAGRA 포함) 하드웨어 가속을 지원합니다.
- 하이브리드 검색: 시맨틱 검색을 위한 밀집 벡터(dense vectors)와 전체 텍스트 검색(BM25, SPLADE, BGE-M3)을 위한 희소 벡터(sparse vectors)를 모두 네이티브로 지원하여, 재순위화된 하이브리드 결과를 제공합니다.
- 데이터 관리: 멀티테넌시 격리, 비용 효율성을 위한 핫/콜드 스토리지 메커니즘, 메타데이터 필터링을 위한 스칼라 데이터 유형(정수, 문자열, JSON) 지원 기능을 갖추고 있습니다.
- 보안: 필수 사용자 인증, TLS 암호화 및 역할 기반 액세스 제어(RBAC)를 구현합니다.
- 배포 옵션: 분산 클러스터, 단독 Docker 배포 또는 경량 Python 버전(Milvus Lite)으로 제공됩니다.
Milvus는 LangChain, LlamaIndex, OpenAI, HuggingFace와 같은 인기 있는 AI 프레임워크와 통합되며, 데이터 수집 및 쿼리를 위한 Python SDK(pymilvus)를 제공합니다.