🚌 Vector DB 버스 타실래요? Milvus!

(아재 개그스러운 제목에 대해 먼저 사죄드립니다. 🙇🏻‍♂️)


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

Milvus vector database documentation Milvus v2.3.x documentation

milvus.io

Milvus vector database documentation Milvus v2.3.x documentation

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 6월 28일 오전 6:46

댓글 0