dense, sparse, 필터 검색은 어떻게 조합해야 하나요?
저장소가 제시하는 범위에는 벡터와 문서의 생성, 조회, 수정, 삭제, dense 및 sparse 벡터, 한 문서의 여러 벡터, 스칼라 필터가 포함됩니다. 여러 검색 결과를 가중합하거나 RRF로 합치는 하이브리드 검색도 다룹니다. 메모리 매핑과 자원 제한 기능은 로컬 저장소를 다룰 때 중요한 부분입니다.
이 조합은 다음과 같은 파이프라인에 맞습니다.
- 임베딩 유사도로 후보를 찾는다.
- 키워드 또는 sparse 검색 결과를 함께 얻는다.
- 날짜, 문서 유형 같은 스칼라 조건으로 거른다.
- 두 순위를 결합해 생성 모델에 전달한다.
기능 목록이 있다고 해서 검색 품질이 자동으로 좋아지는 것은 아닙니다. dense와 sparse의 비중, 청크 크기, 필터 선택도는 데이터별로 평가해야 합니다.
dense 검색은 표현이 다른 비슷한 의미를 찾는 데 유리할 수 있고, sparse 검색은 제품 코드나 고유명사처럼 정확한 단어가 중요한 질의에 도움이 될 수 있습니다. RRF나 가중합을 넣으면 두 후보군을 합칠 수 있지만 서로 같은 문서를 중복으로 올리거나 한쪽의 약한 결과를 과하게 끌어올릴 수도 있습니다. 질의를 의미형, 키워드형, 혼합형으로 나누어 방식별 정답 순위를 비교해야 합니다.
스칼라 필터는 검색 뒤 결과를 지우는 부가 기능이 아니라 후보 공간과 지연을 크게 바꿀 수 있습니다. 날짜나 사용자 권한 조건의 선택도가 높을 때 recall과 처리 시간이 어떻게 변하는지, 필터 값이 없는 문서를 포함할지 제외할지 정해야 합니다. 특히 권한 필터는 애플리케이션 화면에서만 적용하지 말고 벡터 후보가 반환되는 단계에서 누락 없이 작동하는지 시험합니다.
하이브리드 가중치는 전체 평균 하나보다 질의 유형별로 정하는 편이 해석하기 쉽습니다. 같은 평가 세트로 가중치를 고르고 성능을 보고하면 과적합될 수 있으므로 조정용 질의와 최종 검증 질의를 나눕니다. 정답 문서의 순위뿐 아니라 생성 모델에 넘긴 상위 문서가 서로 중복되지 않고 필요한 근거를 함께 포함하는지도 봅니다.