본문 바로가기

RAG 연습

Vectorstores

정의 : 

임베딩 된 벡터 데이터를 저장하고 벡터 간 유사도 계산과 빠른 검색을 효율적으로 지원  

 

목적 : 

사용자 요청에 따라 벡터간 유사도를 계산 지

 

유형: 

  • 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'  선택 중요