260922

u·2026년 9월 22일

TIL

목록 보기
24/30

1. 하이브리드 검색

Hybrid Search (하이브리드 검색)
같은 질문 → BM25 ⇒ 어휘 검색 순위 ⇒ 가중 RRF ⇒ 최종 상위 K개
→ Dense ⇒ 의미 검색 순위 ⇒ 가중 RRF ⇒ 최종 상위 K개
가중 RRF : 등수의 기여를 합침

BM25

  • IDF : 등장 문서 수, 희귀도 가중치
  • TF : 문서 안의 등장 횟수,
  • 문서 길이 보정 : 같은 횟수로 등장 → 긴 문서 점수가 작음
  • 문서 점수 = 질문 토큰별 [희귀도 × 반복 횟수·길이 보정값]의 합
# 질문 : [프로그래밍, 파이썬]
# 청크A, B, C, D 4개의 청크가 있음
# 4개의 청크에 모두 프로그래밍, A청크에만 파이썬 단어가 있음
 
# 프로그래밍 토큰의 점수는 낮게 측정 IDF
# A청크 파이썬 단어, 다른 청크에는 파이썬 단어가 없으니 높게 점수를 책정

# A라는 청크에 파이썬 총 3번이 나왔다 (TF)
# A청크 : 파이썬 점수(IDF점수로 높게 + 3회에 대한 TF점수를 높게) + 프로그래밍 점수(낮게) 
# B청크 : 프로그래밍 점수
# C청크 : 프로그래밍 점수
# D청크 : 파이썬 점수 (1회에 대한 점수)

# 문서 길이 보정 : 문서 길면 점수를 낮춤! 

Dense

  • 질문, 문서 → 임베딩 벡터로 변환
  • 벡터 간 유사도 ⇒ 단어가 정확히 일치하지 않아도 의미가 비슷한 문서 검색

RRF

  • 검색 결과의 등수로 새 점수를 계산
  • 한 검색기가 문서에 주는 점수 = 검색기 가중치 ÷ (상수 + 그 문서의 등수)
  • BM25와 Dense는 점수의 범위와 의미가 다르기 때문에 원래 점수를 직접 합치기 어려움 ⇒ RRF는 각 검색기의 순위를 공통 기준으로 사용해 결과를 결합

EnsembleRetriever → 하이브리드 검색기

  • 각 검색기에 가중치를 주어 계산

Recall@3

  • Recall@3 = 상위 3개에서 찾은 정답 문서 수 ÷ 전체 정답 문서 수
  • 검색 결과와 가중치 비교

2. 질의 변환과 근거 검색

질의변환

  1. Self-Query : 검색어 + 메타데이터 분리 ⇒ 검색
    1. 같은 조건 안에서 하이브리드 검색
  2. HyDE : 가상의 답 생성 → 임베딩 ⇒ 검색
    • 가상문단 생성 체인 → 가상문단 생성 → BM25, dense 원문 검색, dense 가상문단 검색 ⇒ RRF ⇒ 결과 비교
  3. Multi-Query : 같은 뜻의 질문을 여러 표현으로
    • 같은 뜻의 다른 질문, 기대값 설정 → 검색기 생성 → 질문 출력, 중복 제거 ⇒ 결과 비교
  4. Step-back : 더 일반적인 질문 → 배경 지식 별도 검색
  5. Decomposition : 복합 질문 → 각각의 하위 질문으로 분리

3. Jev

0개의 댓글