문서를 검색할 때, 🔍 유사도(relatedness) + 🌈 다양성(diversity) 사이의 균형을 맞춰서 결과를 고르는 방식입니다.
as_retriever()
또는 search_type="similarity"
단순히 쿼리와 가장 유사한 순서로 top-k 문서를 반환📉 단점:
retriever = db.as_retriever(
search_type="mmr",
search_kwargs={"k": 5, "lambda_mult": 0.5}
)
k=5
: 총 5개 문서를 반환lambda_mult
: 유사도와 다양성 사이의 비율 조절
0.2 ~ 0.7
사이가 적당쿼리와 얼마나 유사한지
이미 선택된 문서들과 얼마나 겹치지 않는지
→ 이 두 기준을 조합해 점수화해서 다음 문서를 선택
기준 | 기본 검색 | MMR 검색 |
---|---|---|
목적 | 쿼리와 가장 유사한 문서 우선 | 유사성 + 다양성 모두 고려 |
장점 | 빠르고 직관적 | 중복 방지, 더 다양한 문맥 제공 |
사용처 | 단순 Q&A, 빠른 응답 | 문서 요약, 보고서 기반 QA 등 |
조절 파라미터 | k |
k , lambda_mult |