Milvus vector database documentation Milvus v2.3.x documentation
milvus.io
(아재 개그스러운 제목에 대해 먼저 사죄드립니다. 🙇🏻♂️)
Vector DB 란 scalar 데이터가 아닌 vector embedding 을 저장/인덱스/쿼리를 하는 DB 를 말합니다.
embedding model 를 통해 특정 dimension 으로 벡터화 된 값을 관련 메타데이터와 함께 하나의 엔티티로 저장하게 되는데요,
속도와 정확성간의 trade-off 를 위해 인덱스 생성 후 Approximate Nearest Neighbor (ANN) 검색을 하는 형태로 동작합니다.
최근 RAG 와 관련된 프로젝트를 진행하면서 Milvus 라는 Vector DB 를 사용하게 되었는데요,
저희가 Milvus 를 사용하게 된 이유는 다음과 같습니다.
ANN benchmark(https://ann-benchmarks.com/index.html) 에서 milvus 는 성능상 상위 랭커이다.
커뮤니티가 활성화되어 있다.
sdk 가 잘 되어 있다. (python, Go, Java, etc)
langchain-community 패키지에 통합이 잘되어 있다.(langchain 은 LLM 기반 어플리케이션 구현을 지원해주는 Framework 입니다.)
k8s 환경에서 scale out, scale up, fail over 이 가능하다.
on-disk index 를 포함해서 다양한 index 를 지원한다. (DiskANN 을 최초로 지원)
지속적으로 release 되면서 유지 보수되고 있다.
오픈소스이다. 공짜다.
admin tool 인 attu 가 공식적으로 오픈소스로 제공되고 있어 milvus manage 가 쉽다.
현재까지 프로젝트 진행하면서 특별한 말썽(?)을 일으키지 않고 준수한 성능을 보여주어 매우 만족하고 있습니다.
혹시나 Vector DB 를 고민하고 계신 분들이 있다면 Milvus 도 한번 검토해보시면 좋을것 같습니다.
📚 함께 보면 좋은 글
Milvus Document: https://milvus.io/docs/v2.3.x
Devocean Milvus Quick Start: https://devocean.sk.com/blog/techBoardDetail.do?ID=165368
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 6월 28일 오전 6:46