Skip to main content
공개 노트

Ettin Reranker Family: RAG에서 '정렬'의 비용을 줄이는 선택지

Views 9약 4분생성형 AI 활용
Summary

Ettin Reranker Family: RAG에서 '정렬'의 비용을 줄이는 선택지AI 생성 이미지

검색과 RAG에서 핵심은 “가장 강한 모델을 어디에나 쓰는 것”이 아닙니다. 더 중요한 질문은 “비싼 판단을 어느 단계에 배치할 것인가”입니다.

Ettin Reranker Family는 이 질문에 맞춰 공개된 Sentence Transformers용 CrossEncoder 리랭커 묶음입니다. 17m부터 1b까지 6개 크기로 제공되며, 검색 파이프라인에서 후보 문서를 다시 정렬하는 단계에 활용할 수 있습니다.1

CrossEncoder는 왜 전체 검색보다 리랭킹에 적합한가

CrossEncoder는 쿼리와 문서를 각각 임베딩한 뒤 비교하지 않습니다. 두 문장을 하나의 쌍으로 Transformer에 함께 입력하고, 그 쌍의 관련성 점수를 출력합니다.2

이 구조는 일반적으로 Bi-Encoder보다 높은 성능을 기대할 수 있습니다. Bi-Encoder는 각 문장을 독립적으로 임베딩한 뒤 코사인 유사도 등으로 비교하지만, CrossEncoder는 두 입력을 동시에 보면서 더 정밀하게 판단하기 때문입니다.2

대신 확장성에는 한계가 있습니다. CrossEncoder에는 개별 문장이 아니라 문장 쌍을 넣어야 하므로, 비교 대상이 많아질수록 계산량이 급격히 커집니다. Sentence Transformers 문서의 예시에 따르면 문장 1만 개를 CrossEncoder로 클러스터링하려면 약 5천만 개 문장 조합의 유사도 계산이 필요하고, 약 65시간이 걸립니다. 같은 예시에서 Bi-Encoder는 1만 개 문장의 임베딩 계산에 약 5초가 걸립니다.2

그래서 CrossEncoder는 보통 “처음부터 모든 문서를 찾는 모델”이 아니라 “이미 추린 후보를 다시 정렬하는 모델”로 쓰입니다. 먼저 Bi-Encoder가 빠르게 top-K 후보를 가져오고, CrossEncoder가 그 후보들에 대해 더 정밀한 점수를 매겨 순서를 조정하는 방식입니다.2

Ettin Reranker Family의 핵심은 선택 가능한 크기다

Ettin Reranker Family는 하나의 리랭커가 아니라 여섯 개 크기의 모델로 공개됐습니다.1

  • cross-encoder/ettin-reranker-17m-v1

  • cross-encoder/ettin-reranker-32m-v1

  • cross-encoder/ettin-reranker-68m-v1

  • cross-encoder/ettin-reranker-150m-v1

  • cross-encoder/ettin-reranker-400m-v1

  • cross-encoder/ettin-reranker-1b-v1

이 구성이 중요한 이유는 운영 환경마다 제약이 다르기 때문입니다. 어떤 서비스는 응답 지연시간이 가장 중요하고, 어떤 서비스는 비용이 더 민감하며, 어떤 경우에는 품질을 위해 더 큰 모델을 감수할 수 있습니다. 17M부터 1B까지의 선택지는 리랭킹 단계에서 품질, 지연시간, 비용 사이의 균형을 조정할 여지를 줍니다.

모델들은 Ettin ModernBERT 인코더를 기반으로 구축됐고, mixedbread-ai/mxbai-rerank-large-v2의 점수를 따라가도록 pointwise MSE 증류 방식으로 학습됐습니다.1 또한 Apache 2.0 라이선스로 공개되어, 실험뿐 아니라 내부 검색이나 RAG 파이프라인 검증에도 적용하기 쉬운 형태입니다.1

적용 기준은 벤치마크보다 실제 파이프라인이다

리랭커를 붙인다고 RAG 품질이 자동으로 좋아지지는 않습니다. 리랭커는 후보의 순서를 바꾸는 모델이지, 후보에 없는 문서를 새로 찾아오는 모델이 아닙니다. 첫 단계 검색이 중요한 문서를 top-K 안에 올리지 못하면, 이후 CrossEncoder가 해결할 수 있는 범위도 제한됩니다.

따라서 적용할 때는 모델 하나만 비교하기보다 전체 파이프라인을 함께 봐야 합니다.

  1. 기존 Bi-Encoder 또는 검색 시스템으로 top-K 후보를 가져옵니다.

  2. Ettin Reranker를 여러 크기로 붙여 후보를 재정렬합니다.

  3. 실제 쿼리 로그나 평가 세트에서 품질 변화를 확인합니다.

  4. 지연시간과 비용을 함께 측정합니다.

Sentence Transformers의 CrossEncoder는 model.predict에 문장 쌍 리스트를 전달해 점수를 계산하는 방식으로 사용할 수 있습니다.2 즉, 실제 적용 단위도 “쿼리-문서 쌍을 얼마나 많이, 얼마나 빠르게 채점할 것인가”로 이해하는 편이 좋습니다.

결론: 비싼 판단을 마지막에 집중시키는 선택지

Ettin Reranker Family의 가치는 단순히 “더 큰 리랭커가 나왔다”는 데 있지 않습니다. 검색과 RAG에서 비싼 판단을 전체 검색 단계가 아니라 후보 정렬 단계에 집중할 수 있게 하고, 그 정렬 모델의 크기를 운영 조건에 맞게 고를 수 있게 한다는 점이 핵심입니다.

RAG를 제품으로 운영한다면 모든 단계에 가장 무거운 모델을 쓰기 어렵습니다. 먼저 빠르게 후보를 찾고, 마지막에 CrossEncoder로 정밀하게 재정렬하는 구조가 더 현실적입니다. Ettin Reranker Family는 그 마지막 정렬 단계를 비용과 품질에 맞춰 조절할 수 있는 새로운 선택지입니다.

1Introducing the Ettin Reranker Family

2Cross-Encoders -- Sentence Transformers documentation

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기