inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

vectordb기반 retriever vs embedding model retriever

해결된 질문

851

성윤재

작성한 질문수 1

0

RAG시스템 구축 시 pdf파일을 불러와 청크단위로 나누고 embedding 모델을 이용해 embedding한 후 chromadb에 저장했습니다. 그후 ensemble retriever을 쓰려고 하는데 대부분 vectorstore에서 제공하는 retriever을 사용을 하던데 왜 embedding 모델의 retriever을 사용하지않는지 궁금합니다

from langchain.retrievers import BM25Retriever, EnsembleRetriever
from langchain_community.vectorstores import FAISS
from langchain.embeddings import HuggingFaceEmbeddings
bm25_retriever = BM25Retriever.from_documents(texts)
bm25_retriever.k = 2

embedding = ko_embedding
faiss_vectorstore = FAISS.from_documents(texts, ko_embedding)
faiss_retriever = faiss_vectorstore.as_retriever(search_kwargs={"k": 2})

 

<vectorstore의 리트리버를 쓰는 랭체인>

https://python.langchain.com/docs/modules/data_connection/retrievers/vectorstore

<ensemble 리트리버>

https://python.langchain.com/docs/modules/data_connection/retrievers/ensemble

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

성윤재님, 벡터DB 기반 리트리버와 임베딩 모델 리트리버에 대해 궁금해하시는군요.

벡터DB 기반 리트리버는 주로 FAISS와 같은 효율적인 인덱싱 메커니즘을 사용하여 대량의 데이터로부터 빠르게 유사한 항목을 검색할 수 있습니다. 이는 대규모 데이터를 다룰 때 검색 속도와 메모리 사용의 효율을 위해 사용됩니다.

임베딩 모델 기반 리트리버는 데이터의 임베딩을 직접 계산하여 유사도를 평가합니다. 이는 좀 더 정확한 결과를 얻을 수 있지만, 대량의 데이터에서 모든 임베딩을 실시간으로 계산하는 것은 비효율적일 수 있습니다.

파이썬의 langchain 라이브러리에서는 BM25 같은 통계 기반의 리트리버와 임베딩 기반의 리트리버를 통합한 앙상블 리트리버를 제공하고 있습니다. 이는 임베딩 기반의 정확성과 벡터DB 기반의 효율성을 모두 이용하고자 할 때 유용합니다. 하지만, 프로젝트의 요구 사항이나 데이터의 특성에 따라 최적의 리트리버 선택은 달라질 수 있습니다.

벡터스토어 리트리버와 앙상블 리트리버에 대한 더 자세한 정보는 제공해주신 링크를 참조하시기 바랍니다.

벡터스토어 리트리버 관련 문서:
https://python.langchain.com/docs/modules/data_connection/retrievers/vectorstore

앙상블 리트리버 관련 문서:
https://python.langchain.com/docs/modules/data_connection/retrievers/ensemble

도움이 되었기를 바랍니다.

강의 추천해주세요

2

29

1

케이테스트 서버 운영 방법

2

51

1

Image Only Query

1

32

2

강사님 Sprint6 은 언제쯤 나오나요?

1

19

1