Vector Store - 벡터 저장소

Vector Store

Vector Store는 전 단계에서 생성된 임베딩 벡터들을 효율적으로 저장하고 검색할 수 있는 데이터베이스/시스템을 의미합니다.

자연어 처리(NLP), 이미지 처리, 그리고 기타 다양한 머신러닝 응용 분야에서 생성된 고차원 벡터 데이터를 관리하기 위해 설계되었습니다.

Vector Store에 저장된 벡터들은 Retriever에 의해 빠르게 조회되고, 관련 문서를 찾아내는 데 사용됩니다.

Vector Store 주요 개념

1. 벡터 임베딩 (Vector Embedding)

  • 텍스트, 이미지, 오디오 등의 데이터를 고차원 벡터로 변환하는 과정

  • 같은 의미의 데이터는 벡터 공간에서 가까운 위치에 존재하도록 학습됨

  • 새로운 쿼리(Query) 입력 시, 가장 유사한 벡터를 찾음

  • 보통 코사인 유사도(Cosine Similarity) 또는 L2 거리(Euclidean Distance) 사용

3. 인덱싱 (Indexing)

  • 대량의 벡터 데이터를 빠르게 검색할 수 있도록 효율적인 구조로 저장

  • 대표적인 인덱싱 방법: FAISS, HNSW, Annoy

Vector Store 실습

1 ) Chroma

  • LangChain과 통합된 오픈소스 Vector Store로 간단하게 벡터를 저장 및 관리할 수 있다.

  • 생성된 저장소는 검색기로 변환하여 사용될 수도 있다.

  • Facebook에서 개발한 오픈소스 Vector Store로 효율적인 유사도 검색과 벡터 클러스터링을 지원한다.

  • FAISS로 생성한 벡터 저장소 끼리는 병합(merge_from)이 가능하며, FAISS의 인덱스와 문서 정보를 로컬상에 저장(save_local),하거나 로컬상의 db를 불러오는 (load_loacal)함수도 지원한다.

3) Pinecone

  • Pinecone은 고성능 벡터 데이터베이스로, AI 및 머신러닝 애플리케이션을 위한 효율적인 벡터 저장 및 검색 솔루션이다.

  • 클라우드 기반 데이터베이스이기 때문에 확장성이 뛰어나기 때문에 대규로 프로덕션 환경에서 유용하다.

  • Chroma/FAISS에 비해 높은 비용이 발생한다.

Last updated