Sentence Transformers, Ettin 기반 크로스인코더 리랭커 6종 공개
Sentence Transformers가 ModernBERT 계열 Ettin 인코더를 백본으로 하는 새 크로스인코더 리랭커 6종을 한 번에 공개했다. 17M, 32M, 68M, 150M, 400M, 1B 6개 사이즈 라인업이며, 모델 체크포인트뿐 아니라 학습 데이터셋과 풀 학습 레시피까지 모두 함께 공개됐다.
모든 모델은 허깅페이스의 cross-encoder/ettin-reranker-{사이즈}-v1 경로에 올라와 있으며, 작성자는 6개 모두 동급 사이즈 기준 최신 수준 성능이라고 밝혔다. ModernBERT의 장문 사전학습을 이어받아 6종 모두 최대 8,192 토큰 컨텍스트를 지원한다.
학습은 디스틸레이션 방식이다. 더 큰 리랭커인 mixedbread-ai/mxbai-rerank-large-v2의 점수를 타깃으로 두고 pointwise MSE 손실로 6개 모델을 같은 레시피에 맞춰 학습시켰다. 학습 데이터는 lightonai/embeddings-pre-training의 부분집합과 lightonai/embeddings-fine-tuning을 다시 리랭킹한 부분집합을 묶은 cross-encoder/ettin-reranker-v1-data를 그대로 사용했다.
아키텍처는 6개 모델 모두 동일하고 백본 크기만 다르다. 백본은 존스홉킨스대학교의 Ettin 스위트 6개 인코더로, 언패디드 어텐션과 RoPE 포지셔널 인코딩, GeGLU, 2T 토큰 규모의 오픈라이선스 사전학습을 갖춘 ModernBERT 스타일이다. 인코더 위에는 Transformer, CLS Pooling, Dense(GELU), LayerNorm, Dense(1)로 이어지는 4모듈 분류 헤드를 얹어 ModernBertForSequenceClassification 구조를 모듈식으로 재구성했다.
추론은 Flash Attention 2와 bfloat16을 함께 사용했을 때 가장 빠르다. 작성자 측정 기준 기본 로딩 대비 1.7배에서 8.3배까지 속도가 빨라졌고, 향상폭은 모델 크기와 시퀀스 길이에 따라 달라진다. CrossEncoder를 만들 때 model_kwargs로 dtype과 attn_implementation을 함께 넘겨 주면 된다.
사용법은 Sentence Transformers의 표준 CrossEncoder API와 같다. CrossEncoder 한 줄로 모델을 불러오고, predict로 질의·문서 쌍의 점수를 받거나 rank로 정렬된 후보를 받을 수 있다. 실제 검색 시스템에서는 빠른 임베딩 모델로 후보 K개를 먼저 뽑고 그 K개만 리랭커가 재정렬하는 retrieve-then-rerank 패턴이 권장된다.
이번 릴리스에는 학습 자체를 자동화하는 도구도 함께 들어왔다. Sentence Transformers v5.5.0에서 새로 추가된 train-sentence-transformers Agent Skill을 hf skills add로 설치하면 Claude Code, Codex, Cursor, Gemini CLI 같은 AI 코딩 에이전트에게 SentenceTransformer, CrossEncoder, SparseEncoder 모델 파인튜닝을 맡길 수 있다. 작성자는 이번 6종 리랭커의 학습 레시피 자체도 이 스킬로 부트스트랩했다고 밝혔다.
모델 체크포인트와 학습 데이터, 풀 레시피가 모두 공개됐기 때문에 외부 연구자도 동일 절차로 재현하거나 자체 데이터에 맞춰 다시 학습할 수 있다. 17M 초경량부터 1B 고정밀까지 6개 사이즈를 같은 추론 API로 묶어 둔 덕분에, retrieve-then-rerank 파이프라인에서 품질과 비용을 단계적으로 조절하는 데 활용할 수 있다.