개발일반/도대체

도대체 FAISS 그리고 Vector Store는 뭘까?

문괜 2024. 9. 20. 12:00
반응형

FAISS는 Facebook에서 만든 Facebook AI Similarity Search로 검색에 있어 단순히 Vector 기반 검색이 가능하게 데이터를 전환해 주는 라이브러리라고 생각하면 된다.

 

그리고 Vector Store의 경우 LangChain의 설명에 따르면 정규화되지 않는 데이터를 저장하고 저장된 데이터 안에서 검색을 돕도록 만들어진 Inteface다 그래서 간단한 Interface의 사용법은 아래와 같다. 

 

vectorstore = MyVectorStore()
retriever = vectorstore.as_retriever()

 

물론 사용하는 Vector Store에 따라 사용방식과 데이터 저장 방식이 다르다.

 

사용 방식보다 Vector Store에 대하 설명만 진행하겠다. 자세한 사용방식은 아래의 링크를 통해 확인해 보는 게 빠르다.

  1. RAG 구현 Step-by-Step Vector DB구현 - 2: Faiss with LangChain
  2. LangChain Vector Store: FAISS
 

RAG 구현 Step-by-Step Vector DB 구현 - 2: Faiss with LangChain

RAG 구현 Step-by-Step: Intro 가상환경 설정 및 MVP 구현Dataset과 Vector DB 구현Dataset 확보Vector DB 구현Embedding & Searching 구현Generation 구현이전의 포스트에 이어 이제는 Faiss를 활용해 Vector Store를 구현했다.

youcanbeable.tistory.com

 

 

Faiss | 🦜️🔗 LangChain

Facebook AI Similarity Search (FAISS) is a library for efficient similarity search and clustering of dense vectors. It contains algorithms that search in sets of vectors of any size, up to ones that possibly do not fit in RAM. It also includes supporting c

python.langchain.com

 

Vector Store의 핵심은 아래와 같다. 

  1. 일반 데이터를 Embedding Model을 통해서 Vector로 전환한다.
    • Embedding 
    • Tokenizations
  2. 전환된 Vector를 저장한다.
  3. 검색 시 검색 쿼리를 Vector로 전화하고 저장된 Vector들과 유사도 검색 하여 가장 유사한 Vector들을 가져온다. 

그리고 위의 핵심 기능들을 LangChain을 통한 Vector Store에서 쉽게 진행할 수 있다. 그리고 여기서 추가로 유사도를 검색하는 방식을 추가 혹은 수정할 수 있다. 

 

정리하자면 Vector Store은 LLM Application 특히, RAG Application을 위한 DB와 같은 역할을 한다. 그리고 해방 부분을 도식화하자면 아래와 같다.

 

LangChain RAG

 

그렇다면 Vector Store에  Vector를 만드는 과정에서의 Embedding과 Tokens는 뭘까?

 

출처

  1. Build a Retrieval Augmented Generation (RAG) App
  2. Vector stores
  3. FAISS
 

Build a Retrieval Augmented Generation (RAG) App | 🦜️🔗 LangChain

One of the most powerful applications enabled by LLMs is sophisticated question-answering (Q&A) chatbots. These are applications that can answer questions about specific source information. These applications use a technique known as Retrieval Augmented Ge

python.langchain.com

 

 

Conceptual guide | 🦜️🔗 LangChain

This section contains introductions to key parts of LangChain.

python.langchain.com

 

 

StarSpace

Review documentation to familiarize yourself with the StarSpace file format, example use cases, parameters, and functions.

ai.meta.com

 

반응형