[분석] 리랭커를 넣었더니 Recall은 그대로고 지연만 늘었다
RAG 파이프라인에 크로스인코더 리랭커(bge-reranker-v2-m3 류)를 끼우는 게 기본기처럼 굳어졌지만, 측정해 보면 효과가 갈린다. 1차 검색이 Recall@50에서 이미 정답을 못 물어온 경우 리랭커는 없는 정답을 만들어내지 못한다. 즉 리랭커는 순위 재배열일 뿐 회수율 자체를 못 올린다. 그런데 크로스인코더는 쿼리·문서 쌍을 매번 동시 인코딩해 50개 후보를 리랭킹하면 dense 검색 대비 100~300ms가 더 붙는다. 실무 결론은 단순하다. 1차 검색 Recall@k를 먼저 끌어올린 뒤, 상위 후보가 충분히 정답을 포함할 때만 리랭커로 NDCG를 다듬는다. top-k를 무작정 키워 리랭커에 떠넘기면 비용만 는다.
실무에선 리랭커를 만능으로 보지 말고, 1차 검색 Recall과 리랭킹 후 NDCG를 분리 측정해야 한다. 회수 단계 병목을 리랭커로 가리면 지연 예산만 까먹는다.
원문 출처
BAAI FlagEmbedding