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모델은 원래 다국어 임베딩모델

반응형