벡터DB
이해하기
벡터 DB는 수많은 벡터 데이터를 저장하고
유사한 벡터를 빠르게 검색할 수 있도록 만들어진 특화된 데이터베이스입니다.
예를 들어, - “이 문장과 비슷한 의미의 문서 찾아줘” - “이 이미지를 설명하는 텍스트는 뭐야?” 이런 질문을 처리하려면, 수많은 벡터 중 가장 가까운 벡터를 빠르게 찾아야 합니다.
벡터 DB는 이런 작업을 효율적으로 처리할 수 있도록 최적화되어 있습니다.
1. 의미 기반 검색 (Semantic Search)
- 예: “분위기 좋은 카페”라고 입력하면
비슷한 문장을 임베딩해 벡터로 바꾸고
의미가 유사한 벡터 문서를 찾아줍니다.
2. AI 챗봇의 RAG (Retrieval-Augmented Generation)
- 질문을 벡터로 변환해 관련 문서를 벡터 DB에서 검색한 뒤
그 정보를 바탕으로 AI가 답변을 생성합니다.
3. 이미지 검색
- 이미지 자체를 임베딩해 저장하고
비슷한 이미지나 설명을 가진 벡터를 검색합니다.
🔍 벡터 DB는 어떻게 동작할까?
벡터 DB는 벡터 간의 거리(유사도)를 기준으로 검색합니다.
자주 쓰이는 거리 계산 방식은 다음과 같습니다.
- 코사인 유사도 (Cosine Similarity)
- 유클리드 거리 (Euclidean Distance)
- 점곱 (Dot Product)
🚀 대표적인 벡터 DB
Azure AI Search : 벡터 검색도 가능한 문서 검색기반 서비스
Pinecone: 클라우드 기반, 매우 빠른 검색 속도
Weaviate: 오픈소스, 다양한 확장 기능 제공
FAISS (Facebook AI Similarity Search): 페이스북에서 개발한 라이브러리, GPU 지원
Milvus: 대규모 벡터 처리에 적합한 분산형 DB