许可证:apache-2.0
语言:
- 英文
基础模型:
- answerdotai/ModernBERT-base
基础模型关系:微调
管道标签:文本排序
库名称:transformers
标签:
- sentence-transformers
- transformers.js
gte-reranker-modernbert-base
我们很高兴推出基于最新modernBERT预训练编码器架构的gte-modernbert
系列模型,该系列包含文本嵌入模型与重排序模型。
gte-modernbert
模型在多项文本嵌入与检索评估任务(如MTEB、LoCO和COIR)中展现出与当前开源社区同规模模型相媲美的性能。
模型概览
- 开发团队:阿里巴巴集团通义实验室
- 模型类型:文本重排序器
- 主要语言:英语
- 模型参数量:1.49亿
- 最大输入长度:8192 tokens
模型列表
使用指南
[!TIP]
对于transformers
和sentence-transformers
,若GPU支持且安装flash_attn
,将自动启用高效Flash Attention 2(非必需)。
pip install flash_attn
通过transformers
使用
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_name = "Alibaba-NLP/gte-reranker-modernbert-base"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(
model_name,
torch_dtype=torch.float16,
)
model.eval()
text_pairs = [
["中国的首都是哪里?", "北京"],
["如何用Python实现快速排序?", "快速排序算法介绍"],
["如何用Python实现快速排序?", "今天天气很好"],
]
with torch.no_grad():
inputs = tokenizer(text_pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
通过sentence-transformers
使用
安装依赖:
pip install sentence-transformers
from sentence_transformers import CrossEncoder
model = CrossEncoder(
"Alibaba-NLP/gte-reranker-modernbert-base",
automodel_args={"torch_dtype": "auto"},
)
scores = model.predict([
["中国的首都是哪里?", "北京"],
["如何用Python实现快速排序?", "快速排序算法介绍"],
["如何用Python实现快速排序?", "今天天气很好"],
])
print(scores)
通过transformers.js
使用
import { AutoTokenizer, AutoModelForSequenceClassification } from "@huggingface/transformers";
const model_id = "Alibaba-NLP/gte-reranker-modernbert-base";
const model = await AutoModelForSequenceClassification.from_pretrained(model_id, { dtype: "fp32" });
const tokenizer = await AutoTokenizer.from_pretrained(model_id);
const pairs = [
["中国的首都是哪里?", "北京"],
["如何用Python实现快速排序?", "快速排序算法介绍"],
["如何用Python实现快速排序?", "今天天气很好"],
];
const inputs = tokenizer(
pairs.map(x => x[0]),
{ text_pair: pairs.map(x => x[1]), padding: true, truncation: true }
);
const { logits } = await model(inputs);
console.log(logits.tolist());
训练详情
gte-modernbert
系列沿用了先前GTE模型的训练方案,仅将预训练基模型从GTE-MLM替换为ModernBert。更多细节请参阅论文:mGTE: 面向多语言检索的广义长上下文文本表示与重排序模型。
性能评估
MTEB基准
模型名称 |
参数量(M) |
维度 |
序列长度 |
综合(56) |
分类(12) |
聚类(11) |
配对分类(3) |
重排序(4) |
检索(15) |
语义相似度(10) |
摘要(1) |
gte-modernbert-base |
149 |
768 |
8192 |
64.38 |
76.99 |
46.47 |
85.93 |
59.24 |
55.33 |
81.57 |
30.68 |
LoCO长文档检索
COIR代码检索
加入我们
我们正在北京和杭州招聘研究实习生与全职研究员,研究方向涵盖表示学习、基于LLM的信息检索、检索增强生成(RAG)及智能体系统。欢迎将简历发送至dingkun.ldk@alibaba-inc.com。
引用
若论文或模型对您有帮助,请引用:
@inproceedings{zhang2024mgte,
title={mGTE: 面向多语言检索的广义长上下文文本表示与重排序模型},
author={张鑫等},
booktitle={EMNLP 2024工业轨道论文集},
pages={1393--1412},
year={2024}
}