벡터DB
텍스트, 이미지, 오디오 등 임베딩 방식으로 나타낸 데이터를 저장, 관리, 검색하는
기능을 제공하는 임베딩 벡터 전용 DB
-고차원의 공간에 임베디드 벡터를 인덱싱하여 저장
-입력 쿼리와 가장 가까운 이웃을 찾아주는 검색방식, ANN 검색 알고리즘에 기반한 검색 효율성 도모
-(1) Indexing (2) Querying, (그 외) Loading, Transforming, Post-Processing 등 추가 지원패키지 다수 존재
1. 동작원리:
1) 임베딩 모델에 값 Input [Source Data(이미지, 텍스트 등) -> 임베딩 모델 <- App(동작 요청)]
2) 임베딩 벡터 표현 -> 사전 벡터DB의 데이터 확보를 위한 인덱싱 및 쿼리(검색)작업 수행 -> 결과 전달
2. 검색방법:
1) 유사도 기반 검색
2) 최대 한계 관련성(MMR): 유사성 + 다양성, 각 문서의 유사성 점수와 선택된 문서들과의 다양성 점수 조합
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 우세
'스터디 > AI' 카테고리의 다른 글
LLM component(1): Residual Connection(작성중) (0) | 2025.03.05 |
---|---|
파이토치(2): 로지스틱 회귀와 클래스를 통한 구현 (0) | 2023.11.05 |
파이토치(1): Date Set & Tensor (0) | 2023.09.27 |
생성형 인공지능(1): Auto-GPT 소개 및 사용 (1) | 2023.09.17 |