Ettin Reranker 家族系列模型正式发布
速览
Ettin Reranker 家族系列模型正式发布,该系列模型专为优化信息检索和排序任务而设计。通过引入更先进的架构和训练策略,Ettin 能够显著提升检索增强生成(RAG)等下游应用中的结果准确性与相关性。这一发布为开发者提供了更强大的工具,以解决大规模数据检索中的排序难题。
AI 深度解读
深度解读:Ettin Reranker 家族发布
背景
在检索增强生成(RAG)和现代搜索系统中,为了平衡检索速度与排序精度,业界普遍采用“检索-重排”(Retrieve-then-Rerank)的两阶段架构。第一阶段通常使用轻量级的嵌入模型(Embedder)进行粗排,快速从海量文档中召回 Top-K 候选项;第二阶段则使用计算成本更高但精度更高的交叉编码器(Cross-Encoder)对候选项进行精细重排。
然而,现有的重排模型往往存在体积庞大、推理成本高,或在特定尺寸下缺乏高性能开源替代方案的问题。Hugging Face 团队今日发布了 Ettin Reranker Family,这是一系列基于 Johns Hopkins University(约翰斯·霍普金斯大学)的 Ettin ModernBERT 编码器构建的新型交叉编码器重排模型。该系列旨在提供从极轻量级到大型参数的多种选择,并在各自尺寸级别上达到了最先进水平(SOTA)。
此次发布不仅包含了模型权重,还公开了完整的数据集和训练配方(Training Recipe),并提供了基于 Sentence Transformers v5.5.0 新功能的自动化微调工具,极大地降低了用户自定义重排模型的门槛。
核心内容
1. 模型家族与架构基础
Ettin Reranker 家族包含六个不同规模的模型,均基于 Ettin ModernBERT 架构。该架构采用了现代 Transformer 技术栈,包括:
- Unpadded Attention(非填充注意力):允许变长输入,提升效率。
- RoPE 位置编码:支持长上下文理解。
- GeGLU 激活函数:增强模型表达能力。
- 8192 Token 上下文窗口:得益于 ModernBERT 的长上下文预训练,所有模型均支持长达 8K 的输入,非常适合长文档重排任务。
六个模型的具体名称及参数量级如下:
cross-encoder/ettin-reranker-17m-v1cross-encoder/ettin-reranker-32m-v1cross-encoder/ettin-reranker-68m-v1cross-encoder/ettin-reranker-150m-v1cross-encoder/ettin-reranker-400m-v1cross-encoder/ettin-reranker-1b-v1
2. 训练方法与数据
模型采用蒸馏策略进行训练,具体细节如下:
- 教师模型:使用
mixedbread-ai/mxbai-rerank-large-v2作为教师模型,提供点均方误差(Pointwise MSE)的目标分数。 - 训练数据:使用了名为
cross-encoder/ettin-reranker-v1-data的数据集。该数据集是lightonai/embeddings-pre-training的一个子集,混合了经过重排处理的lightonai/embeddings-fine-tuning子集。 - 性能基准:在 MTEB(eng, v2) 检索任务中,Ettin Reranker 与
google/embeddinggemma-300m嵌入模型搭配使用时表现优异。
3. 使用方式与性能优化
Ettin Reranker 兼容标准的 Sentence Transformers API,用户仅需少量代码即可集成:
-
基本用法:通过
CrossEncoder类加载模型,使用predict方法获取相关性分数,或使用rank方法获取排序后的文档列表及分数。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..."), ("Where was Apple founded?", "The Fuji apple is an apple cultivar..."), ]) -
端到端检索-重排管道:
- 使用快速嵌入模型(如
sentence-transformers/static-retrieval-mrl-en-v1)对查询和文档库进行编码。 - 计算相似度,召回 Top-K 候选文档。
- 将候选文档输入 Ettin Reranker 进行最终排序。
- 使用快速嵌入模型(如
-
加速建议: 为了获得最高吞吐量,建议安装
kernels并设置以下参数:model_kwargs={"dtype": "bfloat16", "attn_implementation": "flash_attention_2"}在中等文档长度下,相比默认的 fp32 + SDPA 加载方式,使用 Flash Attention 2 可实现 1.7x 到 8.3x 的速度提升。
4. 技术细节:分类头设计
重排模型在 Ettin 编码器之上构建了一个四模块的分类头,其结构镜像了 ModernBertForSequenceClassification,但由 Sentence Transformers 的模块化组件构建:
- Transformer (FA2):利用 Flash Attention 2 处理变长输入。
- Pooling (CLS):使用 [CLS] 标记的池化输出。消融实验表明,CLS 池化优于平均池化(Mean Pooling),尽管 ModernBERT 仅在每三层中使用一次全局注意力,但少量全局层携带的信号足以使 CLS 成为更好的选择。
- Dense:全连接层,激活函数为 GELU。
- LayerNorm:层归一化。
- Dense:输出单个相关性分数。
5. 自动化微调工具
Hugging Face 在 Sentence Transformers v5.5.0 中推出了新的 Agent Skill train-sentence-transformers。用户可以通过以下命令安装:
hf skills add train-sentence-transformers [--global] [--claude]
随后,用户可以使用 AI 编码助手(如 Claude Code, Codex, Cursor, Gemini CLI 等)自动微调 SentenceTransformer、CrossEncoder 或 SparseEncoder 模型,极大地简化了自定义训练流程。
关键要点
- 多尺寸覆盖:提供从 17M 到 1B 参数的六种模型,用户可根据延迟和精度需求灵活选择。
- SOTA 性能:在各自参数量级下,Ettin Reranker 均达到了最先进水平。
- 长上下文支持:所有模型均支持 8K Token 上下文,适用于长文档重排场景。
- 高效推理:通过结合 Flash Attention 2 和 bfloat16 精度,推理速度可比默认配置提升最高 8.3 倍。
- 开源透明:公开了训练数据和完整配方,支持社区复现和进一步研究。
- 易于集成:完全兼容 Sentence Transformers 库,几行代码即可实现“检索-重排”流水线。
- 智能微调:借助新的 Agent Skill,开发者可利用 AI 代理轻松自定义训练自己的重排模型。
意义与影响
Ettin Reranker 家族的发布标志着开源重排模型生态的进一步成熟。对于开发者而言,它解决了在资源受限环境下部署高精度重排模型的痛点。通过提供从极轻量级(17M)到大型(1B)的完整系列,团队允许用户在边缘设备、低延迟 API 和高精度离线分析等不同场景中找到最佳平衡点。
此外,公开训练数据和自动化微调工具降低了技术门槛,使得更多开发者能够针对特定领域数据优化重排效果,从而提升 RAG 系统和搜索引擎的最终用户体验。这种“检索-重排”架构的标准化和工具化,将推动更智能、更高效的语义搜索应用落地。
