gte-multilingual-reranker-base项目介绍
概述
gte-multilingual-reranker-base是Alibaba-NLP开发的GTE模型家族中的首个重新排序模型。这个模型在多语言检索任务和多任务表征模型评估中表现出色,与同尺寸的其他重新排序模型相比,达到了当前最先进的性能。
模型特点
- 高效表现:在多语言检索任务中实现了最先进的结果。
- 训练架构:使用仅编码器的transformers架构进行训练,模型尺寸更小。不同于以前基于解码器的LLM架构(例如gte-qwen2-1.5b-instruct),该模型对硬件要求更低,推理速度提高了10倍。
- 长文本处理能力:支持长度达8192个tokens的文本。
- 多语言支持:支持超过70种语言,包括中文、英语、法语、德语等。
模型信息
- 模型大小:306M
- 最大输入tokens数:8192
使用说明
为了加速运行,建议安装xformers并启用取消填充功能。详细信息参见enable-unpadding-and-xformers。如果需要离线使用该模型,可参考new-impl/discussions/2。
以下是使用Huggingface transformers库(版本>=4.36.0)的代码示例:
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_name_or_path = "Alibaba-NLP/gte-multilingual-reranker-base"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForSequenceClassification.from_pretrained(
model_name_or_path, trust_remote_code=True,
torch_dtype=torch.float16
)
model.eval()
pairs = [["中国的首都在哪儿","北京"], ["what is the capital of China?", "北京"], ["how to implement quick sort in python?","Introduction of quick sort"]]
with torch.no_grad():
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
评估
在多个文本检索数据集上进行的重新排序测试显示了该模型的优异表现。更多详细的实验结果可以在相关论文中找到。
云API服务
除了开源版本的GTE系列模型外,这些模型还以商业API服务的形式在阿里云上提供。
- 嵌入模型:提供三个版本的文本嵌入模型:text-embedding-v1/v2/v3,其中v3是最新的API服务。
- 重新排序模型:gte-rerank模型服务也可以使用。
注意,商业API背后的模型并不完全与开源模型相同。
引用
如果觉得这篇论文或者模型对您有所帮助,请考虑引用:
@misc{zhang2024mgtegeneralizedlongcontexttext,
title={mGTE: Generalized Long-Context Text Representation and Reranking Models for Multilingual Text Retrieval},
author={Xin Zhang and Yanzhao Zhang and Dingkun Long and Wen Xie and Ziqi Dai and Jialong Tang and Huan Lin and Baosong Yang and Pengjun Xie and Fei Huang and Meishan Zhang and Wenjie Li and Min Zhang},
year={2024},
eprint={2407.19669},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2407.19669},
}