/ Модель

Характеристики

Контекст
131 072 токена
Параметры
7,1 млрд
Размер весов
30,5 ГБ
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Опубликована
15 июн 2024

gte-Qwen2-7B-instruct

ЭмбеддингиТекст → embedding10 профессий

Мультиязычная модель GTE на базе Qwen2-7B, которая преобразует текст в эмбеддинги для семантического поиска и сравнения.

103 тыс.скачиваний за 30 дней483лайкавеса обновлены24 мар 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки28

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

  • Tatoeba

    main_score

    Результат

    0,8583

    Общий результат 0,9907Общий результат 0,977Общий результат 0,73
    MTEB

    Публичная таблицадругая ревизия

  • CataloniaTweetClassification

    main_score

    Результат

    0,5431

    MTEB

    Публичная таблицадругая ревизия

  • SIB200ClusteringS2S

    main_score

    Результат

    0,51

    Общий результат 0,555Общий результат 0,5169Общий результат 0,471
    MTEB

    Публичная таблицадругая ревизия

  • LEMBNeedleRetrieval

    main_score

    Результат

    0

    MTEB

    Публичная таблицадругая ревизия

  • MassiveIntentClassification

    main_score

    Результат

    0,7986

    Общий результат 0,7564Общий результат 0,567Общий результат 0,4936
    MTEB

    Публичная таблицадругая ревизия

  • MemGovern

    main_score

    Результат

    0,8926

    Общий результат 0,9132
    MTEB

    Публичная таблицадругая ревизия

  • LooGLE

    main_score

    Результат

    0,4533

    MTEB

    Публичная таблицадругая ревизия

  • OpusparcusPC

    main_score

    Результат

    0,9317

    MTEB

    Публичная таблицадругая ревизия

  • AmazonReviewsClassification

    main_score

    Результат

    0,5937

    MTEB

    Публичная таблицадругая ревизия

  • SwedishSentimentClassification

    main_score

    Результат

    0,9489

    MTEB

    Публичная таблицадругая ревизия

  • STS17

    main_score

    Результат

    0,8592

    Общий результат 0,8405Общий результат 0,8386
    MTEB

    Публичная таблицадругая ревизия

  • Farsick

    main_score

    Результат

    0,7174

    MTEB

    Публичная таблицадругая ревизия

  • WikipediaRerankingMultilingual

    main_score

    Результат

    0,8863

    MTEB

    Публичная таблицадругая ревизия

  • NFCorpus-VN

    main_score

    Результат

    0,3827

    MTEB

    Публичная таблицадругая ревизия

  • MTOPDomainClassification

    main_score

    Результат

    0,989

    MTEB

    Публичная таблицадругая ревизия

  • BrightRetrieval

    main_score

    Результат

    0,696

    MTEB

    Публичная таблицаревизия не подтверждена

  • MLQARetrieval

    main_score

    Результат

    0,6296

    Общий результат 0,8685Общий результат 0,7232
    MTEB

    Публичная таблицадругая ревизия

  • MassiveScenarioClassification

    main_score

    Результат

    0,5785

    Общий результат 0,6944
    MTEB

    Публичная таблицадругая ревизия

  • MultiHateClassification

    main_score

    Результат

    0,7253

    MTEB

    Публичная таблицадругая ревизия

  • NusaParagraphEmotionClassification

    main_score

    Результат

    0,4467

    MTEB

    Публичная таблицадругая ревизия

  • TwitterURLCorpus

    main_score

    Результат

    0,8661

    MTEB

    Публичная таблицадругая ревизия

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    0,7002

    Общий результат 0,9883
    MTEB

    Публичная таблицадругая ревизия

  • AlphaNLI

    main_score

    Результат

    0,4393

    MTEB

    Публичная таблицадругая ревизия

  • PawsXPairClassification

    main_score

    Результат

    0,808

    MTEB

    Публичная таблицадругая ревизия

  • JSICK

    main_score

    Результат

    0,732

    MTEB

    Публичная таблицадругая ревизия

  • AfriSentiClassification

    main_score

    Результат

    0,5378

    MTEB

    Публичная таблицадругая ревизия

  • SynPerQAPC

    main_score

    Результат

    0,9246

    MTEB

    Публичная таблицадругая ревизия

  • SIB200Classification

    main_score

    Результат

    0,1091

    MTEB

    Публичная таблицадругая ревизия

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

gte-Qwen2-7B-instruct — мультиязычная модель текстовых эмбеддингов из семейства GTE, разработанная Alibaba-NLP с использованием базовой Qwen2-7B от команды Qwen. Это дообученная плотная модель архитектуры Qwen2 с двунаправленным механизмом внимания и инструкционной настройкой запросов. Она преобразует текст в векторы размерностью 3584 и предназначена для поиска по смыслу, сравнения предложений и других задач семантического сопоставления.

Модель обучена на большом мультиязычном корпусе из разных областей с использованием слабой и контролируемой разметки. README сообщает о высоких результатах на английском и китайском наборах MTEB на июнь 2024 года. Карточка указывает максимум 32 тыс. входных токенов, тогда как метаданные каталога дают нативный контекст 131072 токена. Лицензия — Apache-2.0.

Для работы требуются Transformers версии 4.39.2 или новее и flash_attn версии 2.5.6 или новее. Модель ориентирована на получение эмбеддингов, хотя метаданные также отмечают генерацию текста и классификацию как поддерживаемые задачи. Заявления о лидерстве в бенчмарках относятся к указанным оценкам и дате; коммерческие облачные API GTE, согласно README, не полностью идентичны открытой модели.

Сценарии применения

  • семантический поиск по документам
  • поиск релевантных фрагментов для RAG
  • сравнение смысловой близости предложений
  • ранжирование текстовых результатов по релевантности
  • извлечение признаков из текста для последующих моделей

Ограничения

README сообщает максимум 32 тыс. входных токенов, а метаданные каталога указывают нативный контекст 131072 токена, поэтому следует учитывать различие этих оценок при настройке. Для запуска требуются Transformers 4.39.2 или новее и flash_attn 2.5.6 или новее.

Для каких профессий подходит10

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

gte-Qwen2-7B-instruct

gte-Qwen2-7B-instruct is the latest model in the gte (General Text Embedding) model family that ranks No.1 in both English and Chinese evaluations on the Massive Text Embedding Benchmark MTEB benchmark (as of June 16, 2024).

Recently, the Qwen team released the Qwen2 series models, and we have trained the gte-Qwen2-7B-instruct model based on the Qwen2-7B LLM model. Compared to the gte-Qwen1.5-7B-instruct model, the gte-Qwen2-7B-instruct model uses the same training data and training strategies during the finetuning stage, with the only difference being the upgraded base model to Qwen2-7B. Considering the improvements in the Qwen2 series models compared to the Qwen1.5 series, we can also expect consistent performance enhancements in the embedding models.

The model incorporates several key advancements:

  • Integration of bidirectional attention mechanisms, enriching its contextual understanding.
  • Instruction tuning, applied solely on the query side for streamlined efficiency
  • Comprehensive training across a vast, multilingual text corpus spanning diverse domains and scenarios. This training leverages both weakly supervised and supervised data, ensuring the model's applicability across numerous languages and a wide array of downstream tasks.

Model Information

  • Model Size: 7B
  • Embedding Dimension: 3584
  • Max Input Tokens: 32k

Requirements

transformers>=4.39.2
flash_attn>=2.5.6

Usage

Sentence Transformers

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("Alibaba-NLP/gte-Qwen2-7B-instruct", trust_remote_code=True)
# In case you want to reduce the maximum length:
model.max_seq_length = 8192

queries = [
    "how much protein should a female eat",
    "summit define",
]
documents = [
    "As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
    "Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments.",
]

query_embeddings = model.encode(queries, prompt_name="query")
document_embeddings = model.encode(documents)

scores = (query_embeddings @ document_embeddings.T) * 100
print(scores.tolist())

Observe the config_sentence_transformers.json to see all pre-built prompt names. Otherwise, you can use model.encode(queries, prompt="Instruct: ...\nQuery: " to use a custom prompt of your choice.

Transformers

import torch
import torch.nn.functional as F

from torch import Tensor
from transformers import AutoTokenizer, AutoModel


def last_token_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])
    if left_padding:
        return last_hidden_states[:, -1]
    else:
        sequence_lengths = attention_mask.sum(dim=1) - 1
        batch_size = last_hidden_states.shape[0]
        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]


def get_detailed_instruct(task_description: str, query: str) -> str:
    return f'Instruct: {task_description}\nQuery: {query}'


# Each query must come with a one-sentence instruction that describes the task
task = 'Given a web search query, retrieve relevant passages that answer the query'
queries = [
    get_detailed_instruct(task, 'how much protein should a female eat'),
    get_detailed_instruct(task, 'summit define')
]
# No need to add instruction for retrieval documents
documents = [
    "As a general guideline, the CDC's average requirement of protein for women ages 19 to 70 is 46 grams per day. But, as you can see from this chart, you'll need to increase that if you're expecting or training for a marathon. Check out the chart below to see how much protein you should be eating each day.",
    "Definition of summit for English Language Learners. : 1  the highest point of a mountain : the top of a mountain. : 2  the highest level. : 3  a meeting or series of meetings between the leaders of two or more governments."
]
input_texts = queries + documents

tokenizer = AutoTokenizer.from_pretrained('Alibaba-NLP/gte-Qwen2-7B-instruct', trust_remote_code=True)
model = AutoModel.from_pretrained('Alibaba-NLP/gte-Qwen2-7B-instruct', trust_remote_code=True)

max_length = 8192

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=max_length, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = last_token_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())

Infinity_emb

Usage via infinity, a MIT Licensed inference server.

# requires ~16-32GB VRAM NVIDIA Compute Capability >= 8.0
docker run \
-v $PWD/data:/app/.cache --gpus "0" -p "7997":"7997" \
michaelf34/infinity:0.0.68-trt-onnx \
v2 --model-id Alibaba-NLP/gte-Qwen2-7B-instruct --revision "refs/pr/38" --dtype bfloat16 --batch-size 8 --device cuda --engine torch --port 7997 --no-bettertransformer

Evaluation

MTEB & C-MTEB

You can use the scripts/eval_mteb.py to reproduce the following result of gte-Qwen2-7B-instruct on MTEB(English)/C-MTEB(Chinese):

Model NameMTEB(56)C-MTEB(35)MTEB-fr(26)MTEB-pl(26)
bge-base-en-1.564.23---
bge-large-en-1.563.55---
gte-large-en-v1.565.39---
gte-base-en-v1.564.11---
mxbai-embed-large-v164.68---
acge_text_embedding-69.07--
stella-mrl-large-zh-v3.5-1792d-68.55--
gte-large-zh-66.72--
multilingual-e5-base59.4556.21--
multilingual-e5-large61.5058.81--
e5-mistral-7b-instruct66.6360.81--
gte-Qwen1.5-7B-instruct67.3469.52--
NV-Embed-v169.32---
gte-Qwen2-7B-instruct70.2472.0568.2567.86
gte-Qwen2-1.5B-instruc(https://huggingface.co/Alibaba-NLP/gte-Qwen2-1.5B-instruct)67.1667.6566.6064.04

GTE Models

The gte series models have consistently released two types of models: encoder-only models (based on the BERT architecture) and decode-only models (based on the LLM architecture).

ModelsLanguageMax Sequence LengthDimensionModel Size (Memory Usage, fp32)
GTE-large-zhChinese51210241.25GB
GTE-base-zhChinese5125120.41GB
GTE-small-zhChinese5125120.12GB
GTE-largeEnglish51210241.25GB
GTE-baseEnglish5125120.21GB
GTE-smallEnglish5123840.10GB
GTE-large-en-v1.5English819210241.74GB
GTE-base-en-v1.5English81927680.51GB
GTE-Qwen1.5-7B-instructMultilingual32000409626.45GB
GTE-Qwen2-7B-instructMultilingual32000358426.45GB
GTE-Qwen2-1.5B-instructMultilingual3200015366.62GB

Cloud API Services

In addition to the open-source GTE series models, GTE series models are also available as commercial API services on Alibaba Cloud.

  • Embedding Models: Three versions of the text embedding models are available: text-embedding-v1/v2/v3, with v3 being the latest API service.
  • ReRank Models: The gte-rerank model service is available.

Note that the models behind the commercial APIs are not entirely identical to the open-source models.

Community support

Fine-tuning

GTE models can be fine-tuned with a third party framework SWIFT.

pip install ms-swift -U
# check: https://swift.readthedocs.io/en/latest/BestPractices/Embedding.html
nproc_per_node=8
NPROC_PER_NODE=$nproc_per_node \
USE_HF=1 \
swift sft \
    --model Alibaba-NLP/gte-Qwen2-7B-instruct \
    --train_type lora \
    --dataset 'sentence-transformers/stsb' \
    --torch_dtype bfloat16 \
    --num_train_epochs 10 \
    --per_device_train_batch_size 2 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps $(expr 64 / $nproc_per_node) \
    --eval_steps 100 \
    --save_steps 100 \
    --eval_strategy steps \
    --use_chat_template false \
    --save_total_limit 5 \
    --logging_steps 5 \
    --output_dir output \
    --warmup_ratio 0.05 \
    --learning_rate 5e-6 \
    --deepspeed zero3 \
    --dataloader_num_workers 4 \
    --task_type embedding \
    --loss_type cosine_similarity \
    --dataloader_drop_last true

Citation

If you find our paper or models helpful, please consider cite:

@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}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
a8d08b3

0 моделей