基于ModernBERT预训练编码器的文本嵌入模型,支持8192 tokens长文本处理,在MTEB、LoCO和COIR等评估任务中表现优异。
下载量 74.52k
发布时间 : 1/20/2025
模型介绍
内容详情
替代品
模型简介
该模型是阿里巴巴集团通义实验室开发的文本嵌入模型,专注于英语文本处理,适用于信息检索、语义相似度计算等任务。
模型特点
长文本处理能力
支持最大8192 tokens的输入长度,适合处理长文档
高效性能
支持Flash Attention 2加速,在GPU上运行效率高
多场景适用
在MTEB、LoCO和COIR等多种评估任务中表现优异
模型能力
文本嵌入
语义相似度计算
信息检索
长文档处理
使用案例
信息检索
文档检索
在大规模文档库中快速检索相关内容
在LoCO评估中NDCG@10达到88.88
语义相似度
问答匹配
计算问题与候选答案的语义相似度
在MTEB语义相似度任务中得分81.57
许可协议:apache-2.0
语言:
- 英语
基础模型: - answerdotai/ModernBERT-base
基础模型关系:微调
任务标签:句子相似度
库名称:transformers
标签: - sentence-transformers
- mteb
- embedding
- transformers.js
gte-modernbert-base
我们很高兴推出基于最新modernBERT预训练编码器基础模型构建的gte-modernbert
系列模型。该系列包含文本嵌入模型和重排序模型。
与当前开源社区同规模模型相比,gte-modernbert
模型在MTEB、LoCO和COIR等文本嵌入与检索评估任务中展现出竞争力。
模型概览
- 开发团队:阿里巴巴集团通义实验室
- 模型类型:文本嵌入
- 主要语言:英语
- 模型大小:149M
- 最大输入长度:8192 tokens
- 输出维度:768
模型列表
模型 | 语言 | 模型类型 | 模型大小 | 最大序列长度 | 维度 | MTEB-en | BEIR | LoCo | CoIR |
---|---|---|---|---|---|---|---|---|---|
gte-modernbert-base |
英语 | 文本嵌入 | 149M | 8192 | 768 | 64.38 | 55.33 | 87.57 | 79.31 |
gte-reranker-modernbert-base |
英语 | 文本重排序 | 149M | 8192 | - | - | 56.19 | 90.68 | 79.99 |
使用指南
[!TIP]
对于transformers
和sentence-transformers
,若GPU支持且安装了flash_attn
,将自动启用高效Flash Attention 2(非必需)。pip install flash_attn
使用transformers
:
# 需transformers>=4.48.0
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer
input_texts = [
"中国的首都是哪里?",
"如何用Python实现快速排序?",
"北京",
"排序算法"
]
model_path = "Alibaba-NLP/gte-modernbert-base"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path)
# 对输入文本进行编码
batch_dict = tokenizer(input_texts, max_length=8192, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = outputs.last_hidden_state[:, 0]
# (可选)归一化嵌入向量
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100
print(scores.tolist())
# [[42.89073944091797, 71.30911254882812, 33.664554595947266]]
使用sentence-transformers
:
# 需transformers>=4.48.0
from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim
input_texts = [
"中国的首都是哪里?",
"如何用Python实现快速排序?",
"北京",
"排序算法"
]
model = SentenceTransformer("Alibaba-NLP/gte-modernbert-base")
embeddings = model.encode(input_texts)
print(embeddings.shape)
# (4, 768)
similarities = cos_sim(embeddings[0], embeddings[1:])
print(similarities)
# tensor([[0.4289, 0.7131, 0.3366]])
使用transformers.js
:
// npm i @huggingface/transformers
import { pipeline, matmul } from "@huggingface/transformers";
// 创建特征提取管道
const extractor = await pipeline(
"feature-extraction",
"Alibaba-NLP/gte-modernbert-base",
{ dtype: "fp32" }, // 支持选项:"fp32", "fp16", "q8", "q4", "q4f16"
);
// 嵌入查询与文档
const embeddings = await extractor(
[
"中国的首都是哪里?",
"如何用Python实现快速排序?",
"北京",
"排序算法",
],
{ pooling: "cls", normalize: true },
);
// 计算相似度分数
const similarities = (await matmul(embeddings.slice([0, 1]), embeddings.slice([1, null]).transpose(1, 0))).mul(100);
console.log(similarities.tolist()); // [[42.89077377319336, 71.30916595458984, 33.66455841064453]]
训练细节
gte-modernbert
系列沿用了先前GTE模型的训练方案,唯一区别是将预训练基础模型从GTE-MLM替换为ModernBert。更多细节请参阅论文:mGTE: Generalized Long-Context Text Representation and Reranking Models for Multilingual Text Retrieval。
评估
MTEB
其他模型结果来自MTEB榜单。鉴于gte-modernbert
系列模型参数量均小于1B,我们仅对比MTEB榜单中1B以下模型的结果。
模型名称 | 参数量(M) | 维度 | 序列长度 | 平均(56) | 分类(12) | 聚类(11) | 配对分类(3) | 重排序(4) | 检索(15) | 语义相似度(10) | 摘要(1) |
---|---|---|---|---|---|---|---|---|---|---|---|
mxbai-embed-large-v1 | 335 | 1024 | 512 | 64.68 | 75.64 | 46.71 | 87.2 | 60.11 | 54.39 | 85 | 32.71 |
multilingual-e5-large-instruct | 560 | 1024 | 514 | 64.41 | 77.56 | 47.1 | 86.19 | 58.58 | 52.47 | 84.78 | 30.39 |
bge-large-en-v1.5 | 335 | 1024 | 512 | 64.23 | 75.97 | 46.08 | 87.12 | 60.03 | 54.29 | 83.11 | 31.61 |
gte-base-en-v1.5 | 137 | 768 | 8192 | 64.11 | 77.17 | 46.82 | 85.33 | 57.66 | 54.09 | 81.97 | 31.17 |
bge-base-en-v1.5 | 109 | 768 | 512 | 63.55 | 75.53 | 45.77 | 86.55 | 58.86 | 53.25 | 82.4 | 31.07 |
gte-large-en-v1.5 | 409 | 1024 | 8192 | 65.39 | 77.75 | 47.95 | 84.63 | 58.50 | 57.91 | 81.43 | 30.91 |
modernbert-embed-base | 149 | 768 | 8192 | 62.62 | 74.31 | 44.98 | 83.96 | 56.42 | 52.89 | 81.78 | 31.39 |
nomic-embed-text-v1.5 | 768 | 8192 | 62.28 | 73.55 | 43.93 | 84.61 | 55.78 | 53.01 | 81.94 | 30.4 | |
gte-multilingual-base | 305 | 768 | 8192 | 61.4 | 70.89 | 44.31 | 84.24 | 57.47 | 51.08 | 82.11 | 30.58 |
jina-embeddings-v3 | 572 | 1024 | 8192 | 65.51 | 82.58 | 45.21 | 84.01 | 58.13 | 53.88 | 85.81 | 29.71 |
gte-modernbert-base | 149 | 768 | 8192 | 64.38 | 76.99 | 46.47 | 85.93 | 59.24 | 55.33 | 81.57 | 30.68 |
LoCO(长文档检索)(NDCG@10)
模型名称 | 维度 | 序列长度 | 平均(5) | Qsmsum检索 | SummScreen检索 | Qasper摘要检索 | Qasper标题检索 | GovReport检索 |
---|---|---|---|---|---|---|---|---|
gte-qwen1.5-7b | 4096 | 32768 | 87.57 | 49.37 | 93.10 | 99.67 | 97.54 | 98.21 |
gte-large-v1.5 | 1024 | 8192 | 86.71 | 44.55 | 92.61 | 99.82 | 97.81 | 98.74 |
gte-base-v1.5 | 768 | 8192 | 87.44 | 49.91 | 91.78 | 99.82 | 97.13 | 98.58 |
gte-modernbert-base | 768 | 8192 | 88.88 | 54.45 | 93.00 | 99.82 | 98.03 | 98.70 |
gte-reranker-modernbert-base | - | 8192 | 90.68 | 70.86 | 94.06 | 99.73 | 99.11 | 89.67 |
COIR(代码检索任务)(NDCG@10)
模型名称 | 维度 | 序列长度 | 平均(20) | CodeSearchNet-ccr-go | CodeSearchNet-ccr-java | CodeSearchNet-ccr-javascript | CodeSearchNet-ccr-php | CodeSearchNet-ccr-python | CodeSearchNet-ccr-ruby | CodeSearchNet-go | CodeSearchNet-java | CodeSearchNet-javascript | CodeSearchNet-php | CodeSearchNet-python | CodeSearchNet-ruby | apps | codefeedback-mt | codefeedback-st | codetrans-contest | codetrans-dl | cosqa | stackoverflow-qa | synthetic-text2sql |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
gte-modernbert-base | 768 | 8192 | 79.31 | 94.15 | 93.57 | 94.27 | 91.51 | 93.93 | 90.63 | 88.32 | 83.27 | 76.05 | 85.12 | 88.16 | 77.59 | 57.54 | 82.34 | 85.95 | 71.89 | 35.46 | 43.47 | 91.2 | 61.87 |
gte-reranker-modernbert-base | - | 8192 | 79.99 | 96.43 | 96.88 | 98.32 | 91.81 | 97.7 | 91.96 | 88.81 | 79.71 | 76.27 | 89.39 | 98.37 | 84.11 | 47.57 | 83.37 | 88.91 | 49.66 | 36.36 | 44.37 | 89.58 | 64.21 |
BEIR(NDCG@10)
模型名称 | 维度 | 序列长度 | 平均(15) | ArguAna | ClimateFEVER | CQADupstackAndroid检索 | DBPedia | FEVER | FiQA2018 | HotpotQA | MSMARCO | NFCorpus | NQ | Quora检索 | SCIDOCS | SciFact | Touche2020 | TRECCOVID |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
gte-modernbert-base | 768 | 8192 | 55.33 | 72.68 | 37.74 | 42.63 | 41.79 | 91.03 | 48.81 | 69.47 | 40.9 | 36.44 | 57.62 | 88.55 | 21.29 | 77.4 | 21.68 | 81.95 |
gte-reranker-modernbert-base | - | 8192 | 56.73 | 69.03 | 37.79 | 44.68 | 47.23 | 94.54 | 49.81 | 78.16 | 45.38 | 30.69 | 64.57 | 87.77 | 20.60 | 73.57 | 27.36 | 79.89 |
加入我们
通义实验室现开放研究实习生和全职研究员职位,工作地点位于北京和杭州。我们诚邀在表示学习、基于LLM的信息检索、检索增强生成(RAG)以及智能体系统领域有专长的伙伴加入。如有意向,请将简历及个人简介发送至dingkun.ldk@alibaba-inc.com。
引用
若论文或模型对您有帮助,欢迎引用:
@inproceedings{zhang2024mgte,
title={mGTE: Generalized Long-Context Text Representation and Reranking Models for Multilingual Text Retrieval},
author={Zhang, Xin and Zhang, Yanzhao and Long, Dingkun and Xie,
Jina Embeddings V3
Jina Embeddings V3 是一个多语言句子嵌入模型,支持超过100种语言,专注于句子相似度和特征提取任务。
文本嵌入
Transformers

支持多种语言
J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
基于MS Marco段落排序任务训练的交叉编码器模型,用于信息检索中的查询-段落相关性评分
文本嵌入
英语
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
基于蒸馏技术的稀疏检索模型,专为OpenSearch优化,支持免推理文档编码,在搜索相关性和效率上优于V1版本
文本嵌入
Transformers

英语
O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
基于PubMedBERT的生物医学实体表征模型,通过自对齐预训练优化语义关系捕捉
文本嵌入
英语
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Large 是一个强大的句子转换器模型,专注于句子相似度和文本嵌入任务,在多个基准测试中表现出色。
文本嵌入
英语
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 是一个英文句子转换器模型,专注于句子相似度任务,在多个文本嵌入基准测试中表现优异。
文本嵌入
Transformers

支持多种语言
G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base 是一个多语言的句子嵌入模型,支持超过50种语言,适用于句子相似度计算等任务。
文本嵌入
Transformers

支持多种语言
G
Alibaba-NLP
1.2M
246
Polybert
polyBERT是一个化学语言模型,旨在实现完全由机器驱动的超快聚合物信息学。
文本嵌入
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
基于土耳其语BERT的句子嵌入模型,专为语义相似度任务优化
文本嵌入
Transformers

其他
B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
基于BAAI/bge-small-en-v1.5模型微调的文本嵌入模型,通过MEDI数据集与MTEB分类任务数据集训练,优化了检索任务的查询编码能力。
文本嵌入
Safetensors
英语
G
avsolatorio
945.68k
29
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文