본문 바로가기

카테고리 없음

[LangChain] 랭체인의 Components(구성요소) - Vector Store

 

 

벡터 저장소(Vector Store)

벡터 형태로 표현된 데이터인 임베딩 벡터들을 효율적으로 저장하고 검색할 수 있는 시스템이나 데이터베이스

자연어 처리(NLP), 이미지 처리, 머신러닝 응용 분야에서 생상된 고차원 벡터 데이터 관리를 위해 설계되었음

벡터 저장소의 핵심 기능은 대규모 벡터 데이터 셋에서 빠른 속도로 가장 유사한 항목을 찾아내는 것

 

벡터 저장

임베딩 벡터는 텍스트, 이미지, 소리 등 다양한 형태의 데이터를 벡터 공간에 매핑한 것

데이터의 의미적, 시각적, 오디오적 특성을 수치적으로. 표현함

이러한 벡터를 효율적으로 저장하기 위해서는 고차원 벡터를 처리할 수 있도록 최적화된 데이터 저장 구조가 필요함

 

 

벡터 검색

저장된 벡터들 중에서 사용자의 쿼리에 가장 유사한 벡터를 빠르게 찾아내는 과정

이를 위해 코사인 유사도, 유클리드 거리, 맨해튼 거리 등 다양한 유사도 측정 방법을 사용할 수 있음

코사인 유사도는 방향성을 기반으로 유사도를 측정하기 때문에 텍스트 임베딩 검색에 특히 자주 사용됨

 

결과 반환

사용자의 쿼리에 대해 계산된 유사도 점수를 기반으로 가장 유사한 항목들을 순서대로 사용자에게 반환

이 과정에서는 유사도 점수뿐만 아니라 검색 결과의 관련성, 다양성, 신뢰도 등 다른 요소들을 고려할 수도 있음

 

벡터 저장소는 Faiss(Facebook AI Similarity Search), Chroma, Elasticsearch, Pinecone 등 다양한 오픈 소스 및 상용 솔루션이 있으며 각각의 특성과 성능이 다르기 때문에 사용 목적에 따라 적합한 도구를 선택해야함

 

 

Chroma