AI/LLM
Reranker
아나엘
2025. 2. 24. 15:54
from langchain.retrievers.document_compressors import CrossEncoderReranker
from langchain_community.cross_encoders import HuggingFaceCrossEncoder
top_n_reranked_docs = 3
# 모델 초기화
cross_encoder = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-v2-m3")
# 상위 3개의 문서를 선택하는 Reranker
reranker = CrossEncoderReranker(model=cross_encoder, top_n=top_n_reranked_docs)
%%time
# 저장된 VectorStore를 불러올 때는 아래 주석을 해제하여 사용합니다.
# vectorstore = Chroma(
# embedding_function=embeddings,
# persist_directory="./vectorstore/chroma"
# )
vectorstore = Chroma.from_documents(
docs,
embedding=embeddings,
persist_directory="./vectorstore/chroma"
)
# Reranker를 통해 한번 더 정렬할 예정이므로, 탐색할 k값을 top_n의 5배로 설정합니다.
db_retriever = vectorstore.as_retriever(
search_kwargs={"k": top_n_reranked_docs * 5}
)
BGE모델은 원래 다국어 임베딩모델
반응형