We are excited to introduce the gte-modernbert series of models, which are built upon the latest modernBERT pre-trained encoder-only foundation models. The gte-modernbert series models include both text embedding models and rerank models.
The gte-modernbert models demonstrates competitive performance in several text embedding and text retrieval evaluation tasks when compared to similar-scale models from the current open-source community. This includes assessments such as MTEB, LoCO, and COIR evaluation.
[!TIP]
For transformers and sentence-transformers, if your GPU supports it, the efficient Flash Attention 2 will be used automatically if you have flash_attn installed. It is not mandatory.
pip install flash_attn
Use with transformers
python
1# Requires transformers>=4.48.02import torch
3from transformers import AutoModelForSequenceClassification, AutoTokenizer
45model_name_or_path ="Alibaba-NLP/gte-reranker-modernbert-base"6tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)7model = AutoModelForSequenceClassification.from_pretrained(8 model_name_or_path,9 torch_dtype=torch.float16,10)11model.eval()1213pairs =[14["what is the capital of China?","Beijing"],15["how to implement quick sort in python?","Introduction of quick sort"],16["how to implement quick sort in python?","The weather is nice today"],17]1819with torch.no_grad():20 inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)21 scores = model(**inputs, return_dict=True).logits.view(-1,).float()22print(scores)2324# tensor([ 2.1387, 2.4609, -1.6729])
Use with sentence-transformers:
Before you start, install the sentence-transformers libraries:
pip install sentence-transformers
python
1# Requires transformers>=4.48.02from sentence_transformers import CrossEncoder
34model = CrossEncoder(5"Alibaba-NLP/gte-reranker-modernbert-base",6 automodel_args={"torch_dtype":"auto"},7)89pairs =[10["what is the capital of China?","Beijing"],11["how to implement quick sort in python?","Introduction of quick sort"],12["how to implement quick sort in python?","The weather is nice today"],13]1415scores = model.predict(pairs)16print(scores)17# [0.8945664 0.9213594 0.15742092]18# NOTE: Sentence Transformers calls Softmax over the outputs by default, hence the scores are in [0, 1] range.
Use with transformers.js
js
1import{2AutoTokenizer,3AutoModelForSequenceClassification,4}from"@huggingface/transformers";56const model_id ="Alibaba-NLP/gte-reranker-modernbert-base";7const model =awaitAutoModelForSequenceClassification.from_pretrained(8 model_id,9{dtype:"fp32"},// Supported options: "fp32", "fp16", "q8", "q4", "q4f16"10);11const tokenizer =awaitAutoTokenizer.from_pretrained(model_id);1213const pairs =[14["what is the capital of China?","Beijing"],15["how to implement quick sort in python?","Introduction of quick sort"],16["how to implement quick sort in python?","The weather is nice today"],17];18const inputs =tokenizer(19 pairs.map((x)=> x[0]),20{21text_pair: pairs.map((x)=> x[1]),22padding:true,23truncation:true,24},25);26const{ logits }=awaitmodel(inputs);27console.log(logits.tolist());// [[2.138258218765259], [2.4609625339508057], [-1.6775450706481934]]
The results of other models are retrieved from MTEB leaderboard. Given that all models in the gte-modernbert series have a size of less than 1B parameters, we focused exclusively on the results of models under 1B from the MTEB leaderboard.
We have open positions for Research Interns and Full-Time Researchers to join our team at Tongyi Lab.
We are seeking passionate individuals with expertise in representation learning, LLM-driven information retrieval, Retrieval-Augmented Generation (RAG), and agent-based systems.
Our team is located in the vibrant cities of Beijing and Hangzhou.
If you are driven by curiosity and eager to make a meaningful impact through your work, we would love to hear from you. Please submit your resume along with a brief introduction to dingkun.ldk@alibaba-inc.com.
Citation
If you find our paper or models helpful, feel free to give us a cite.
@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, Wen and Dai, Ziqi and Tang, Jialong and Lin, Huan and Yang, Baosong and Xie, Pengjun and Huang, Fei and others},
booktitle={Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing: Industry Track},
pages={1393--1412},
year={2024}
}
@article{li2023towards,
title={Towards general text embeddings with multi-stage contrastive learning},
author={Li, Zehan and Zhang, Xin and Zhang, Yanzhao and Long, Dingkun and Xie, Pengjun and Zhang, Meishan},
journal={arXiv preprint arXiv:2308.03281},
year={2023}
}