AI VIDEO BRIEFING

RAG 검색 정확도를 끌어올리는 리랭킹 입문: 크로스 인코더와 2단계 검색 활용법 정리

RAG의 검색 단계에 리랭킹을 더해 정확도를 높이는 방법을 30문항 실측과 함께 정리했다. 벡터 검색의 한계, 크로스 인코더 원리, 2단계 검색, 그리고 지연·비용 트레이드오프까지 쉽고 자세히 설명한다.

RAG 검색 정확도를 끌어올리는 리랭킹: 크로스 인코더와 2단계 검색 영상 대표 이미지

핵심 메시지

  • 리랭킹은 적은 노력으로 RAG 검색 품질을 높이는 단계로, 사실상 API 호출 한 번이면 추가할 수 있다.
  • 일반 벡터 검색은 질문을 모른 채 만든 임베딩을 비교하므로, 단어만 겹치는 엉뚱한 문서를 높게 매길 수 있다.
  • 크로스 인코더는 질문과 문서 텍스트를 함께 보고 관련성을 판단해 더 똑똑한 정렬을 만든다.
  • 벡터 검색으로 후보를 넓게 추린 뒤 리랭커로 상위만 고르는 2단계 검색이 속도와 정확도를 절충한다.

쉽게 이해하기

영상은 기본 RAG(검색 증강 생성) 파이프라인이 자주 겪는 문제에서 출발한다. 분명히 정답 문서가 있는데도 검색이 올바른 출처를 못 가져오는 경우다. 발표자는 여기에 리랭킹 단계를 더해 결과 품질을 높인다. 연구 논문들이 검색 정확도를 10~30% 올린다고 주장하는 기법인데, 직접 파이프라인에 붙여 효과를 확인한다.

문제의 핵심은 검색 단계에 있다. 일반 벡터 검색은 문서를 청크로 쪼개 미리 임베딩으로 바꿔 두고, 질문도 임베딩으로 바꿔 거리만 비교한다. 그런데 문서 임베딩은 사용자가 무엇을 물을지 모른 채 만들어져 다소 일반적이다. 예컨대 '파이썬을 어떻게 설치하나요?'라는 질문에, 파이썬 코딩 문서와 비단뱀(파이썬) 서식지 문서가 단어 겹침 때문에 둘 다 높게 매겨질 수 있다.

리랭킹은 크로스 인코딩이라는 방식을 쓴다. 미리 계산한 임베딩에 의존하는 대신, 질문 텍스트와 문서 텍스트를 먼저 합친 뒤 트랜스포머로 처리한다. 질문과 텍스트를 따로 처리해 거리 함수로 비교하는 전통 방식과 다르다. 덕분에 기술적 과정인지 일반 정보인지, 최신 자료를 원하는지 같은 미묘한 단서를 잡아낸다. 다만 질문·문서 쌍을 실행 시점에 하나씩 처리하므로 훨씬 느리다.

이 한계를 푸는 것이 2단계 검색이다. 예를 들어 문서가 1만 개라면, 먼저 빠른 벡터 검색으로 상위 100개 후보를 추리고, 느리지만 정확한 리랭커로 그중 상위 10개를 골라 LLM에 보낸다. 실습에서는 Cohere의 리랭킹 API를 썼고, 반환할 문서가 5개라면 일단 그 3배인 15개를 가져와 리랭커에 더 많은 후보를 준 뒤 상위 5개를 선택하도록 검색기 컴포넌트만 수정했다.

효과는 내장 평가 도구로 측정했다. 30개의 질문·답변 쌍에서 리랭킹 없이는 24점, 리랭킹을 켜면 27점으로 소폭 올랐다. 발표자는 트레이드오프도 솔직히 짚는다. 호출마다 API 요청이 추가돼 응답이 수백 밀리초에서 1~2초로 늘 수 있고, 요청당 비용이 들며, 외부 서비스 의존이 생긴다. 또한 요즘 컨텍스트 창이 10만~100만 토큰으로 커져, 문서를 통째로 넣어도 되는 경우엔 리랭킹이 굳이 필요 없을 수 있다.

주요 인사이트

  • 리랭킹은 검색 과정 안에 끼워 넣는 또 하나의 단계로 생각하면 된다. 구조를 갈아엎지 않고 검색기만 손보면 된다.
  • 벡터 검색의 약점은 '질문을 모른 채 만든 일반적 임베딩'이다. 단어 겹침이 곧 관련성은 아니다.
  • 리랭킹은 비싸므로 전체 데이터셋에 돌리지 않는다. 후보를 좁힌 다음에만 적용하는 것이 핵심 설계다.
  • 토큰을 아끼거나 다른 컨텍스트가 많아 제약이 있을 때 리랭킹의 가치가 커진다. 무조건 쓰는 기법은 아니다.
  • 프로덕션에서는 외부 리랭킹 API 장애에 대비한 우아한 폴백을 마련하는 편이 좋다.

자주 묻는 질문

리랭킹은 일반 벡터 검색과 무엇이 다른가요?

벡터 검색은 미리 만든 질문·문서 임베딩의 거리를 따로 비교하지만, 리랭킹은 크로스 인코딩으로 질문과 문서 텍스트를 함께 본 뒤 관련성을 판단합니다. 그래서 단어만 겹치는 문서를 걸러내고 더 정확한 순서를 만들 수 있습니다.

2단계 검색은 왜 필요한가요?

리랭킹은 질문·문서 쌍을 실행 시점에 하나씩 처리해 느리고 비쌉니다. 그래서 빠른 벡터 검색으로 후보를 넓게(예: 상위 100개) 추린 뒤, 느리지만 정확한 리랭커로 그중 상위 몇 개만 고르는 방식으로 속도와 정확도를 절충합니다.

리랭킹의 효과와 비용은 어느 정도였나요?

영상의 30개 질문·답변 평가에서 점수가 24점에서 27점으로 올랐습니다. 대신 응답 시간이 수백 밀리초에서 1~2초로 늘고 요청당 비용이 들며 외부 서비스 의존이 생깁니다. 컨텍스트 창이 충분히 크면 문서를 통째로 넣어 리랭킹을 생략할 수도 있습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#RAG#리랭킹#크로스인코더#벡터검색#LLM