Vector DB
Vector DB란?
- Vector DB (Vector Database)
- 고차원 벡터(Embedding)를 저장하고, 빠르게 검색할 수 있도록 최적화된 데이터베이스
- 벡터 검색은
벡터 간 유사도 계산
(코사인 유사도, 유클리디안 거리..)을 기반으로 수행 - 벡터 DB 는 이러한 유사도 계산을 아주 빠르게 할 수 있도록 설계된 특화된 데이터베이스
Vector DB 의 필요성
- 벡터 DB 가 갖춰야 하는 조건은 아래와 같음.
(1) 크기가 굉장히 큰 고차원의 벡터 데이터를 효율적으로 저장하고 검색할 수 있어야 함
(2) 정확한 값의 일치보다 “가장 유사한” 값을 찾는(ANN) 게 검색의 목적
(3) 수많은 벡터 사이에서 빠른 검색을 위해 특화된 인덱싱이 필요
- 하지만 전통적인 RDB 나 Key-Value DB 는 스칼라 검색 기반의 정확 일치 검색에 강하고
- 고차원의 벡터는 RDB 등에 저장하기에 크기가 너무 크다는 구조적 문제가 있음
- 따라서 위 조건들을 만족하는 Vector DB 가 등장함
Vector DB 의 사용 사례
- AI 및 자연어처리(NLP): 문서 유사도 검색, 질문-답변 매칭
- RAG (Retrieval-Augmented Generation)
- 추천 시스템: 유저-상품 벡터 기반 추천
- 이미지·영상 검색: 비슷한 시각적 특징을 가진 이미지 찾기
- 보안: 얼굴 인식, 이상 탐지
- 멀티모달 검색: 텍스트+이미지+음성 결합 검색
대표적인 Vector DB
- Milvus (오픈소스, 대규모 클러스터 지원)
- Weaviate (검색·그래프 결합)
- Pinecone (매니지드 서비스, 서버리스)
- FAISS (Facebook, 라이브러리 형태)
Comments