/ Модель

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

Контекст
8 194 токена
Параметры
450 млн
Лицензия
Apache 2.0
Архитектура
xlm-roberta · dense
Библиотека
sentence-transformers
Опубликована
5 июл 2024

USER-bge-m3

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

Русскоязычная модель эмбеддингов для семантического поиска, сравнения текстов и кластеризации.

367 тыс.скачиваний за 30 дней86лайковвеса обновлены18 июл 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • MassiveIntentClassification

    main_score

    Результат

    0,0365

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

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,634

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

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

  • NTREXBitextMining

    main_score

    Результат

    0,952

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

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

  • MLQARetrieval

    main_score

    Результат

    0,043

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

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

  • MTOPIntentClassification

    main_score

    Результат

    0,6079

    MTEB

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

  • OpenTenderClusteringP2P

    main_score

    Результат

    0,2197

    MTEB

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

  • TweetSentimentClassification

    main_score

    Результат

    0,5664

    MTEB

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

  • CUREv1

    main_score

    Результат

    0,564

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

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

  • FiQA2018

    main_score

    Результат

    0,408

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

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

  • MLSUMClusteringS2S

    main_score

    Результат

    0,4289

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

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

  • MultiHateClassification

    main_score

    Результат

    0,6213

    MTEB

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

  • SummEvalFr

    main_score

    Результат

    0,2994

    MTEB

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

  • SinhalaNewsClassification

    main_score

    Результат

    0,3762

    MTEB

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

  • MasakhaNEWSClassification

    main_score

    Результат

    0,7774

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

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

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    0,1024

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

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

  • GerDaLIR

    main_score

    Результат

    0,1112

    MTEB

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

  • XPQARetrieval

    main_score

    Результат

    0,0693

    MTEB

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

  • STS12

    main_score

    Результат

    0,811

    MTEB

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

  • DutchBookReviewSentimentClassification.v2

    main_score

    Результат

    0,7528

    MTEB

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

  • STS22

    main_score

    Результат

    0,1782

    MTEB

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

  • NusaXBitextMining

    main_score

    Результат

    0,3858

    MTEB

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

  • NollySentiBitextMining

    main_score

    Результат

    0,8444

    MTEB

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

  • STS22.v2

    main_score

    Результат

    0,6833

    MTEB

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

  • SIB200Classification

    main_score

    Результат

    0,6677

    MTEB

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

  • GreekLegalCodeClassification

    main_score

    Результат

    0,0447

    MTEB

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

  • NorwegianParliamentClassification

    main_score

    Результат

    0,5728

    MTEB

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

  • NusaTranslationBitextMining

    main_score

    Результат

    0,7033

    MTEB

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

  • CodeSearchNetCCRetrieval

    main_score

    Результат

    0,5658

    MTEB

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

  • PawsXPairClassification

    main_score

    Результат

    0,4545

    MTEB

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

  • EstonianValenceClassification

    main_score

    Результат

    0,4214

    MTEB

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

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

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

USER-bge-m3 — русскоязычная модель sentence-transformers, разработанная командой DeepVK для получения семантических эмбеддингов предложений и абзацев. Она основана на TatonkaHF/bge-m3_en_ru — уменьшенной версии baai/bge-m3 — и дообучена преимущественно на русском языке. Архитектура модели относится к XLM-RoBERTa; размер составляет 449,9 млн параметров, контекст — до 8194 токенов. Модель преобразует текст в плотные векторы размерности 1024.

Её используют для семантического поиска, сравнения похожести текстов, кластеризации, классификации и поиска по документам. В README приведены результаты сравнений на русскоязычных задачах encodechka и MTEB: по ряду средних метрик модель превосходит базовую baai/bge-m3, но в среднем на задачах reranking немного уступает ей. Возможности разреженного и многовекторного кодирования авторы тщательно не оценивали, а качество на языках помимо русского не проверялось. Лицензия — Apache-2.0.

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

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

Ограничения

Качество модели на языках помимо русского не оценивалось. Возможности разреженного и многовекторного кодирования авторы подробно не проверяли; на среднем показателе reranking в MTEB базовая baai/bge-m3 показала лучший результат.

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

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

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

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

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

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

Открыть на Hugging Face

USER-bge-m3

Universal Sentence Encoder for Russian (USER) is a sentence-transformer model for extracting embeddings exclusively for Russian language. It maps sentences & paragraphs to a 1024 dimensional dense vector space and can be used for tasks like clustering or semantic search.

This model is initialized from TatonkaHF/bge-m3_en_ru which is shrinked version of baai/bge-m3 model and trained to work mainly with the Russian language. Its quality on other languages was not evaluated.

Usage

Using this model becomes easy when you have sentence-transformers installed:

pip install -U sentence-transformers

Then you can use the model like this:

from sentence_transformers import SentenceTransformer


input_texts = [
  "Когда был спущен на воду первый миноносец «Спокойный»?",
  "Есть ли нефть в Удмуртии?",
  "Спокойный (эсминец)\nЗачислен в списки ВМФ СССР 19 августа 1952 года.",
  "Нефтепоисковые работы в Удмуртии были начаты сразу после Второй мировой войны в 1945 году и продолжаются по сей день. Добыча нефти началась в 1967 году."
]


model = SentenceTransformer("deepvk/USER-bge-m3")
embeddings = model.encode(input_texts, normalize_embeddings=True)

However, you can use model directly with transformers

import torch.nn.functional as F
from torch import Tensor, inference_mode
from transformers import AutoTokenizer, AutoModel


input_texts = [
  "Когда был спущен на воду первый миноносец «Спокойный»?",
  "Есть ли нефть в Удмуртии?",
  "Спокойный (эсминец)\nЗачислен в списки ВМФ СССР 19 августа 1952 года.",
  "Нефтепоисковые работы в Удмуртии были начаты сразу после Второй мировой войны в 1945 году и продолжаются по сей день. Добыча нефти началась в 1967 году."
]


tokenizer = AutoTokenizer.from_pretrained("deepvk/USER-bge-m3")
model = AutoModel.from_pretrained("deepvk/USER-bge-m3")
model.eval()


encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
  model_output = model(**encoded_input) 
  # Perform pooling. In this case, cls pooling.
  sentence_embeddings = model_output[0][:, 0]

# normalize embeddings
sentence_embeddings = torch.nn.functional.normalize(sentence_embeddings, p=2, dim=1)

# [[0.5567, 0.3014],
#  [0.1701, 0.7122]]
scores = (sentence_embeddings[:2] @ sentence_embeddings[2:].T)

Also, you can use native FlagEmbedding library for evaluation. Usage is described in bge-m3 model card.

Training Details

We follow the USER-base model training algorithm, with several changes as we use different backbone.

Initialization: TatonkaHF/bge-m3_en_ru – shrinked version of baai/bge-m3 to support only Russian and English tokens.

Fine-tuning: Supervised fine-tuning two different models based on data symmetry and then merging via LM-Cocktail:

  1. Since we split the data, we could additionally apply the AnglE loss to the symmetric model, which enhances performance on symmetric tasks.

  2. Finally, we added the original bge-m3 model to the two obtained models to prevent catastrophic forgetting, tuning the weights for the merger using LM-Cocktail to produce the final model, USER-bge-m3.

Dataset

During model development, we additional collect 2 datasets: deepvk/ru-HNP and deepvk/ru-WANLI.

Symmetric DatasetSizeAsymmetric DatasetSize
AllNLI282 644MIRACL10 000
MedNLI3 699MLDR1 864
RCB392Lenta185 972
Terra1 359Mlsum51 112
Tapaco91 240Mr-TyDi536 600
deepvk/ru-WANLI35 455Panorama11 024
deepvk/ru-HNP500 000PravoIsrael26 364
Xlsum124 486
Fialka-v1130 000
RussianKeywords16 461
Gazeta121 928
Gsm8k-ru7 470
DSumRu27 191
SummDialogNews75 700

Total positive pairs: 2,240,961 Total negative pairs: 792,644 (negative pairs from AIINLI, MIRACL, deepvk/ru-WANLI, deepvk/ru-HNP)

For all labeled datasets, we only use its training set for fine-tuning. For datasets Gazeta, Mlsum, Xlsum: pairs (title/text) and (title/summary) are combined and used as asymmetric data.

AllNLI is an translated to Russian combination of SNLI, MNLI and ANLI.

Experiments

We compare our mode with the basic baai/bge-m3 on the encodechka benchmark. In addition, we evaluate model on the russian subset of MTEB on Classification, Reranking, Multilabel Classification, STS, Retrieval, and PairClassification tasks. We use validation scripts from the official repositories for each of the tasks.

Results on encodechka:

ModelMean SMean S+WSTSPINLISATIIAICICXNE1NE2
baai/bge-m30.7870.6960.860.750.510.820.970.790.810.780.240.42
USER-bge-m30.7990.7090.870.760.580.820.970.790.810.780.280.43

Results on MTEB:

Typebaai/bge-m3USER-bge-m3
Average (30 datasets)0.6890.706
Classification Average (12 datasets)0.5710.594
Reranking Average (2 datasets)0.6980.688
MultilabelClassification (2 datasets)0.3430.359
STS Average (4 datasets)0.7350.753
Retrieval Average (6 datasets)0.9450.934
PairClassification Average (4 datasets)0.7840.833

Limitations

We did not thoroughly evaluate the model's ability for sparse and multi-vec encoding.

Citations

@misc{deepvk2024user,
    title={USER: Universal Sentence Encoder for Russian},
    author={Malashenko, Boris and  Zemerov, Anton and Spirin, Egor},
    url={https://huggingface.co/datasets/deepvk/USER-base},
    publisher={Hugging Face}
    year={2024},
}

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

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

GPU в ailist

Универсальный рантайм · sentence-transformers

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

Подбираем GPU…

Класс архитектуры
XLMRobertaModel
Ревизия весов
0cc6cfe

0 моделей