11차시. Retriever 기초 실습
2. 검색 방식 세 가지
출처: 원본 PDF 11차시_Retriever기초실습.pdf 5~6쪽 · 쪽 그림 5쪽 6쪽
Retriever는 search_type으로 방식을 고릅니다. 세 가지가 있습니다.
2-1) similarity — 기본형
retriever = store.as_retriever(
search_kwargs={"k": 3}
)가장 가까운 K개를 그대로 가져옵니다.
빠르고 단순합니다. 대부분의 경우 이것으로 충분합니다.
단점 — 비슷한 내용이 중복으로 올 수 있습니다.
예: 같은 조항이 여러 페이지에 반복되면 3개가 다 그 조항입니다.
2-2) mmr — 다양성 확보형
retriever = store.as_retriever(
search_type="mmr",
search_kwargs={
"k": 3, # 최종적으로 가져올 개수
"fetch_k": 10, # 후보로 먼저 뽑을 개수
"lambda_mult": 0.5, # 관련성(1) ↔ 다양성(0) 조절
}
)🍱 도시락 반찬 고르기 비유
"맛있는 반찬 3개 골라줘"
similarity 방식
→ 김치, 배추김치, 총각김치
→ 다 맛있긴 한데... 전부 김치입니다
MMR 방식
→ 김치, 계란말이, 불고기
→ 맛있으면서도 서로 다른 것을 고릅니다
질문이 여러 측면을 물을 때 MMR이 유리합니다.
예: "환불과 교환의 차이는?" → 두 조항을 각각 가져와야 함
2-3) similarity_score_threshold — 기준 미달 차단형
출처: 원본 PDF 6쪽
retriever = store.as_retriever(
search_type="similarity_score_threshold",
search_kwargs={"k": 5, "score_threshold": 0.47}
)10차시에서 손으로 걸러냈던 작업을 Retriever가 대신해줍니다.
기준 미달이면 결과가 아예 비어서 돌아옵니다.
👉
실무에서 가장 안전한 설정입니다.