스터디/AI

벡터 DB(1) 튜토리얼

민서타 2024. 7. 4. 16:49

벡터DB

더보기

텍스트, 이미지, 오디오 등 임베딩 방식으로 나타낸 데이터를 저장, 관리, 검색하는

기능을 제공하는 임베딩 벡터 전용 DB

 -고차원의 공간에 임베디드 벡터를 인덱싱하여 저장

 -입력 쿼리와 가장 가까운 이웃을 찾아주는 검색방식, ANN 검색 알고리즘에 기반한 검색 효율성 도모

 -(1) Indexing (2) Querying, (그 외) Loading, Transforming, Post-Processing 등 추가 지원패키지 다수 존재

https://python.langchain.com/v0.1/docs/modules/data_connection/vectorstores/


1. 동작원리:

 1) 임베딩 모델에 값 Input [Source Data(이미지, 텍스트 등) -> 임베딩 모델 <- App(동작 요청)]

 2) 임베딩 벡터 표현 -> 사전 벡터DB의 데이터 확보를 위한 인덱싱 및 쿼리(검색)작업 수행 -> 결과 전달


2. 검색방법:

1) 유사도 기반 검색

2) 최대 한계 관련성(MMR): 유사성 + 다양성, 각 문서의 유사성 점수와 선택된 문서들과의 다양성 점수 조합

Sim(d, Q): 문서, 쿼리 사이의 유사성, max Sim: 가장 유사한 문서 유사성


3. 관계형 DB와 벡터 DB의 차이

관계형 DB 표현방식 벡터 DB 표현방식
주로 정형 데이터에 사용 주로 비정형 데이터에 사용
벡터
차원
테이블 인덱스

4. 벡터 인덱스와 벡터 DB의 차이

(1) 스토리지 제공여부(벡터 인덱스: X ->피클 형태 등 저장 /  벡터DB: O)

(2) 메타데이터 기반의 하이브리드 서치 기능여부(벡터 인덱스: 선택적 / 벡터DB: O)

(3) 사용 여부(벡터 인덱스: X 프로토타입 / 벡터DB: 보안 액세스 관리 등 용이한 차이)


5. 주요 솔루션

(1) Chroma: 오픈 소스 기반, Apache 2.0 라이선스, 사용자 쿼리 기준 검색, 전반적으로 평균적 성능

(2) Faiss: 오픈 소스 기반, 페이스북 개발, 유사도 기반 검색, 벡터 검색 및 인덱싱에 집중

(3) Pinecone: 유료 기반, 실시간 인덱싱 등 고성능

(4) Milvus: 유료 기반, 고성능, 객체 감지 등 추가 기능 제공

오픈소스 기준: 대용량 데이터 -> Faiss, 저용량 데이터: Chorma

유료 기준: 파이썬 기준 Pinecone 우세

반응형