Ettin Reranker: nueva familia de cross-encoders para mejorar búsquedas

Hugging Face presentó seis CrossEncoders Ettin Reranker, entrenados con una receta de distilación y diseñados para reordenar resultados recuperados por embedders. Aceptan hasta 8K tokens y ofrecen distintos puntos entre velocidad y precisión para producción.

Por Redaccion TD

Resumen

Hugging Face lanzó una familia de seis rerankers basados en los encoders Ettin ModernBERT. Estos modelos CrossEncoder —también llamados rerankers o pointwise cross-encoders— están optimizados por tamaño y entrenados con una receta de distilación que utiliza puntuaciones de un modelo maestro. La colección incluye modelos de 17M, 32M, 68M, 150M, 400M y 1B parámetros y fue diseñada para integrarse en pipelines de retrieval-then-rerank, donde un embedder rápido recupera candidatos y el reranker reordena los mejores con mayor precisión.

¿Qué es un reranker y por qué combinarlo con un embedder?

Un reranker es un modelo que recibe un par (consulta, documento) y produce una única puntuación de relevancia. A diferencia de los modelos de embedding, que codifican consulta y documento por separado y luego comparan vectores, un reranker permite que ambos textos se atiendan mutuamente en cada capa del transformador. Esa atención cruzada suele dar rankings más precisos, pero encarece el cómputo porque el modelo debe evaluarse por cada par (consulta, documento).

En producción, la práctica común es retrieve-then-rerank: primero un embedder rápido recupera los K mejores candidatos (coste bajo), y luego el reranker reordena solo esos K con alta fidelidad. De ese modo se mantiene el costo acotado mientras el orden final se aproxima al que produciría una evaluación exhaustiva de cross-encoder sobre todo el corpus.

Modelos disponibles y características clave

Los seis modelos publicados son:

  • 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

Todos están construidos sobre los encoders Ettin ModernBERT y admiten contextos largos de hasta 8K tokens, lo cual es especialmente útil para reranking de documentos extensos (contratos, expedientes legales, artículos largos, etc.). La selección del tamaño depende del balance deseado entre latencia y calidad: los modelos más pequeños entregan mayor velocidad con menor coste de infraestructura; los grandes ofrecen más precisión por consulta.

En pruebas de referencia, la colección fue emparejada con embedders —por ejemplo, google/embeddinggemma-300m— en la tarea MTEB(eng, v2) Retrieval. El artículo original reporta resultados con ese emparejamiento y menciona además cinco combinaciones adicionales de embedder y reranker.

Uso práctico en pocas líneas (Python)

Los modelos son CrossEncoder de Sentence Transformers, por lo que integrarlos es directo. Ejemplo básico:

from sentence_transformers import CrossEncoder

model = CrossEncoder(“cross-encoder/ettin-reranker-32m-v1”) scores = model.predict([ (“Where was Apple founded?”, “Apple Inc. was founded in Cupertino, California in 1976 …”), (“Where was Apple founded?”, “The Fuji apple is an apple cultivar developed in the late 1930s.”) ])

El método rank permite ordenar una lista de documentos por relevancia para una consulta dada y devolver índices y puntajes.

Pipeline retrieve-then-rerank: ejemplo completo

Una arquitectura típica incluye un embedder estático para recuperación y el reranker para reordenar los top-K:

from sentence_transformers import SentenceTransformer, CrossEncoder

embedder = SentenceTransformer(“sentence-transformers/static-retrieval-mrl-en-v1”) reranker = CrossEncoder(“cross-encoder/ettin-reranker-68m-v1”)

Paso 1: recuperar top-K mediante embedders (rápido)

Paso 2: reordenar top-K con reranker (preciso)

Este patrón es aplicable tanto a sistemas en la nube como a despliegues locales en centros de datos y edge, y resulta especialmente útil cuando el corpus es muy grande pero solo interesa revisar un conjunto pequeño de candidatos por consulta.

Rendimiento y recomendaciones de despliegue

Los modelos aceptan hasta 8K tokens por entrada. Para maximizar el rendimiento, Hugging Face recomienda instalar kernels optimizados y cargar el modelo con model_kwargs={“dtype”: “bfloat16”, “attn_implementation”: “flash_attention_2”}. Según la nota original, esa configuración puede ofrecer entre 1.7x y 8.3x de aceleración respecto a la carga por defecto, dependiendo del tamaño del modelo y la longitud de la secuencia.

En contextos de América Latina donde la infraestructura puede ser limitada o costosa, conviene evaluar modelos pequeños (17M, 32M, 68M) para reducir latencia y coste por consulta, y reservar los tamaños más grandes para casos donde la precisión es crítica y la latencia tolerable.

Cómo fueron entrenados (receta de distilación)

La familia Ettin Reranker fue entrenada con una estrategia de distilación: se realizó regresión punto a punto (MSE) sobre las puntuaciones generadas por un modelo teacher (mixedbread-ai/mxbai-rerank-large-v2). Los datos de entrenamiento provienen de cross-encoder/ettin-reranker-v1-data, que a su vez es un subconjunto de lightonai/embeddings-pre-training mezclado con un subconjunto rerankeado de lightonai/embeddings-fine-tuning. Esta aproximación permite transferir el comportamiento del reranker maestro a modelos más pequeños y eficientes.

Además, el autor indica que el proceso de entrenamiento fue acelerado por la nueva skill train-sentence-transformers incluida en Sentence Transformers v5.5.0, que facilita el uso de agentes de codificación (Claude Code, Codex, Gemini CLI, etc.) para afinar SentenceTransformer, CrossEncoder o SparseEncoder sobre datos propios.

Casos de uso relevantes para América Latina

  • Búsqueda en archivos legales, legislativos y judiciales, donde los documentos son largos y el contexto importa.
  • Soporte al cliente y recuperación de respuestas en centros de contacto multicanal.
  • Recomendación de fragmentos relevantes en portales de noticias y medios locales con grandes archivos históricos.
  • Análisis y minería en el sector público para acelerar acceso a legislación, expedientes o datos sectoriales.

En regiones con restricciones de presupuesto, los modelos más pequeños permiten desplegar soluciones de reranking eficientes sin requerir hardware extremo.

Cómo empezar hoy

  1. Elegir el tamaño del modelo según presupuesto y latencia esperada.
  2. Emparejar un embedder rápido para recuperar candidatos (top-K).
  3. Rerankear esos K con cross-encoder/ettin-reranker-<size>-v1.
  4. Para producción, activar bfloat16 + flash_attention_2 y medir latencia y coste.

Conclusión

La familia Ettin Reranker aporta opciones escalables y adaptadas a distintos requerimientos de latencia y precisión, con soporte para contextos largos y una receta de distilación que permite mantener buena calidad en modelos pequeños. Para equipos en América Latina representa una alternativa práctica para mejorar la relevancia en motores de búsqueda y sistemas de recuperación de información sin necesidad de evaluar cross-encoders sobre todo el corpus.

Recursos y siguientes pasos

  • Probar los modelos disponibles en Hugging Face Hub (nombres indicados arriba).
  • Evaluar emparejamientos con embedders relevantes para su idioma y dominio.
  • Considerar la reutilización de la receta de distilación y la skill train-sentence-transformers si planean entrenar modelos propios.

Aproveche esta familia de modelos para que sus búsquedas pasen de buenas a notablemente más relevantes, manteniendo el control sobre latencia y coste.

Fuente original: Hugging Face Blog