리랭킹을 넣으면 문서 QA 정답이 정말 위로 올라올까?

결론부터 말하면, 리랭킹은 검색이 넓게 잘 가져온 후보군의 순서를 다시 매기는 마지막 단계일 뿐이다. 검색 단계의 recall이 낮으면 리랭킹으로 복구되지 않는다. 2025~2026년 공개 벤치마크들은 대체로 리트리버로 넓게 가져오고 리랭커로 좁히는 2단계 구조를 전제로 평가를 설계한다.

  • 리랭킹은 벡터 검색을 대체하는 게 아니라 후보군 정렬 품질을 끌어올리는 마지막 관문이다.
  • recall@50/100이 낮으면 리랭커를 아무리 잘 골라도 효과가 제한적이다.
  • 평가는 Top-1/Hit@1, NDCG@5·10, recall@k를 함께 봐야 한다.
  • 의학·과학·법률처럼 신뢰성이 중요한 도메인은 노이즈·유사오답 컨텍스트를 따로 테스트하는 벤치마크가 맞다.
  • 서비스 지연을 따질 때는 벡터 검색 시간과 리랭커 자체 연산 시간을 분리해서 측정해야 한다.

실무에서 가장 흔한 함정은 검색 단계의 recall을 확인하지 않고 리랭커부터 얹는 것이다. 어차피 뒤에서 순서를 다시 매길 거라는 생각으로 벡터 검색 top-k를 좁게 잡아두면, 애초에 정답 문서가 후보군에 들어오지 못해 리랭커가 볼 재료 자체가 없다. 2026년 기준으로 공개된 실무 벤치마크 글은 recall@50을 먼저 재고, 검색 단계에서 top-50~top-100 후보를 확보한 뒤 리랭커로 top-5~top-10까지 줄이는 흐름을 권한다. 이 순서를 거꾸로 하면, 즉 검색을 좁게 하고 리랭커에 기대를 거는 순서로 파이프라인을 짜면 리랭커 도입 비용만 늘고 체감 개선은 거의 없는 경우를 반복적으로 만나게 된다.

BM25에 ColBERT를 얹는 2단계 구성, 실제로 뭘 검증한 걸까?

이 구성은 계산 비용을 줄이는 대신 검색 단계가 정답 문서를 상위권에 넣어줘야 한다는 전제를 깐다. TREC BioGen 2025의 런 설명에는 BM25로 후보를 가져온 뒤 상위 25개만 ColBERT로 재정렬했다고 적혀 있다. 여기서 눈여겨볼 지점은 재정렬 대상이 '상위 25개'로 꽤 좁다는 것이다. 후보군을 100개, 50개로 넓게 잡는 다른 벤치마크와 비교하면, 이 구성은 애초에 BM25가 상위 25위 안에 정답 문서를 넣어줘야 리랭커가 제 역할을 할 수 있다는 뜻이다. 즉 리랭커 성능이 아무리 좋아도 BM25 단계에서 정답이 26위 밖으로 밀리면 ColBERT는 그 문서를 볼 기회조차 없다. 이 구조를 그대로 가져다 쓰기 전에, 자기 문서 QA 데이터에서 BM25만으로 top-25 recall이 얼마나 나오는지부터 확인하는 게 순서다. 후보군 크기(25 vs 50 vs 100)는 곧 리랭커 연산 비용과 직결되므로, '몇 개까지 넓힐 것인가'는 품질과 비용을 동시에 결정하는 값이다.

리랭커 하나 바꾸면 정답 순위가 정말 크게 움직일까?

모델 선택에 따라 Top-1 정확도가 꽤 벌어진다. arXiv 공개 논문 계열 자료는 Natural Questions에서 DEAR-P가 Top-1 48.92를 기록했고, 같은 비교군에서 RankGPT는 41.55, Twolar는 46.84를 냈다고 보고한다. WebQuestions에서도 DEAR-P 41.93, RankGPT 38.77, Twolar 41.68로 순서가 비슷하게 갈렸다. 숫자만 보면 상위 모델과 하위 모델 사이에 Top-1 기준 7~10포인트 차이가 나는 셈이라, '리랭커는 다 거기서 거기'라고 뭉뚱그리기는 어렵다. 다만 같은 계열 연구가 도입한 FutureQueryEval은 2025년 4월 이후 수집된 쿼리·문서로만 평가했는데, 여기서는 RankT5-3B, Lit5-Distill-XL-v2, Twolar-XL 같은 모델이 NQ·WebQuestions 기준으로는 강했던 것과 별개로, '최신 시점 쿼리'라는 조건이 붙으면 순위가 흔들릴 여지가 있다는 점을 시사한다. 벤치마크 표의 숫자를 그대로 자기 서비스에 옮기기보다, 자기 문서가 최신성이 강한 도메인인지부터 따져야 하는 이유다.

과학·의학 QA에서는 리랭킹을 왜 더 신경 써야 할까?

과학·의학 도메인은 '의미는 비슷한데 사실은 다른' 문장이 흔해서 일반 QA 리랭킹 벤치마크로는 위험을 다 못 잡아낸다. SciRerankBench는 이 문제를 정면으로 다뤄, Noisy Contexts(NC), Semantically Similar but Logically Irrelevant Contexts(SSLI), Counterfactual Contexts(CC) 세 유형으로 13개 리랭커와 5개 LLM 계열을 시험했다. 공개된 초록 기준으로는 외부 컨텍스트를 넣었을 때 zero-context 대비 token-level recall이 20~30포인트 개선됐다고 보고한다. 다만 이 개선폭은 '컨텍스트가 있다/없다'의 차이이지, 리랭커 종류에 따른 차이를 그대로 말해주는 숫자는 아니라는 점은 구분해서 읽어야 한다. BioASQ 2025 계열 자료는 supervised reranking으로 entailment score를 예측해 문서를 정련하는 방식을 쓰는데, 이는 '검색된 문서가 질문과 의미적으로 가깝다'가 아니라 '검색된 문서가 질문에 실제로 함의하는 답을 담고 있다'를 따로 점수화한다는 뜻이다. 의학·법률 문서 QA를 리랭킹으로 다듬을 계획이라면, 유사-오답 케이스를 별도 테스트셋으로 만들어 두는 작업이 리랭커 선택보다 먼저다.

리랭킹을 넣으면 검색이 놓친 문서도 살아날까?

아니다. 리랭커는 이미 후보군 안에 들어와 있는 문서의 순서만 바꿀 수 있고, 애초에 후보군 밖에 있던 문서는 볼 수조차 없다. 2026년 공개된 벤치마크 글은 top-100 후보를 가져온 뒤 재정렬했을 때 가장 높은 점수를 낸 모델이 Hit@1을 62.67%에서 83.00%로 끌어올렸다고 보고하는데, 이 수치를 '리랭킹이 검색 실패를 20포인트 복구했다'로 읽으면 오독이다. 실제로는 top-100 안에 이미 정답 문서가 들어 있었고, 리랭커가 그 정답을 1위로 끌어올린 것뿐이다. 만약 애초에 top-100 후보 자체에 정답이 없었다면, 즉 recall@100이 낮았다면 같은 리랭커를 붙여도 Hit@1은 그대로 바닥이다. 그래서 리랭킹 도입 효과를 논할 때는 항상 '후보군에 정답이 있었는가'를 먼저 확인한 다음에 리랭커의 기여를 따져야 순서가 맞다.

리랭킹을 붙이기 전에 뭘 먼저 재야 할까?

가장 먼저 잴 것은 리랭커 성능이 아니라 검색 단계의 recall@50, recall@100이다. 이 숫자가 낮다면 리랭커 비교는 뒤로 미루고 임베딩·청킹·쿼리 확장 같은 검색 쪽부터 손보는 게 순서다. recall이 어느 정도 확보됐다면, 그다음은 후보 수를 25/50/100 중 어디까지 넓힐지 정하는 문제인데, 이는 곧 리랭커 연산 비용과 직결된다. 후보가 많을수록 cross-encoder가 점수를 매겨야 할 문서-쿼리 쌍이 늘어나 지연이 커지기 때문이다. 공개 벤치마크 글은 벡터 검색 시간(약 20ms)은 별도로 빼고, 100개 후보를 cross-encoder로 채점하는 시간만 리랭킹 지연으로 따로 측정했다고 밝힌다. 이렇게 두 구간을 분리해서 재야 '느려진 게 검색 때문인지 리랭커 때문인지'를 구분할 수 있고, 서비스에 리랭커를 넣을지 말지 판단할 때 실제 비용 항목을 정확히 짚을 수 있다. 후보 수를 늘릴 때마다 latency가 얼마나 늘어나는지를 기록해두는 정도의 작업이 이후 튜닝에 두고두고 도움이 된다.

핵심 정리

  • 리랭킹은 벡터 검색을 대체하지 않고, 이미 모은 후보군의 순서를 다듬는 마지막 단계다.
  • recall@50/100이 낮으면 리랭커 성능과 무관하게 효과가 제한된다.
  • Top-1/Hit@1, NDCG@5·10, recall@k를 함께 보는 평가가 실무에 맞다.
  • 의학·과학처럼 유사-오답이 흔한 도메인은 노이즈·반사실 컨텍스트를 별도로 테스트해야 한다.
  • 도입 전에 검색 latency와 리랭커 연산 latency를 분리해서 측정해야 실제 비용을 알 수 있다.