정의 :
임베딩 된 벡터 데이터를 저장하고 벡터 간 유사도 계산과 빠른 검색을 효율적으로 지원
목적 :
사용자 요청에 따라 벡터간 유사도를 계산 지
유형:
- FAISS : 로컬 기반, gpu 지원
- Chroma : 로컬 기반
- Pinecone : 외부 api , 비용 필요
대표 알고리즘
ANN : 고차원 벡터 공간에서 주어진 쿼리 벡터와 가장 가까운 이웃 벡터를 정확히 찾는 것이 아니라, 약간의 정확도 희생을 감수하고 빠르게 "충분히 가까운" 이웃을 찾는 근사 검색 기법
- KD-Trees : 데이터를 계층적으로 분할하는 트리 구조
- Locality-Sensitive Hashing (LSH) : 벡터를 특정 해시값으로 변환
- Annoy : Spotify에서 개발한 ANN 알고리즘
- HNSW: 최상위 레이어에서 -> 하위 레이어로 내려갈수록 노드 수와 연결이 증가하며, 검색 시 상위 레이어부터 탐색해 점차 좁혀
- Product Quantization, PQ : 벡터를 압축해 저장과 거리 계산을 효율화하며, 정보 손실을 감수하는 대신 속도를 획기적으로 개선
핵심 :
'mmr' or 'similarity' or 'similarity_score_threshold' 선택 중요