/ Модель

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

Контекст
8 192 токена
Параметры
149 млн
Лицензия
Apache 2.0
Архитектура
modernbert · dense
Базовая модель
RuModernBERT-base
Библиотека
sentence-transformers
Опубликована
25 фев 2025

USER2-base

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

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

490 тыс.скачиваний за 30 дней29лайковвеса обновлены26 мар 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • SensitiveTopicsClassification

    main_score

    Результат

    0,2916

    MTEB

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

  • MIRACLReranking

    main_score

    Результат

    0,546

    MTEB

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

  • KinopoiskClassification

    main_score

    Результат

    0,5513

    MTEB

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

  • RuSTSBenchmarkSTS

    main_score

    Результат

    0,8283

    MTEB

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

  • RuSciBenchOECDClassification

    main_score

    Результат

    0,4936

    MTEB

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,7357

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

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

  • RuSciBenchGRNTIClusteringP2P

    main_score

    Результат

    0,5873

    MTEB

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

  • STS22

    main_score

    Результат

    0,6719

    MTEB

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

  • GeoreviewClassification

    main_score

    Результат

    0,4339

    MTEB

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

  • RUParaPhraserSTS

    main_score

    Результат

    0,728

    MTEB

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

  • RiaNewsRetrieval

    main_score

    Результат

    0,7944

    MTEB

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

  • MIRACLRetrievalHardNegatives.v2

    main_score

    Результат

    0,5167

    MTEB

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

  • RuBQRetrieval

    main_score

    Результат

    0,6698

    MTEB

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

  • RiaNewsRetrievalHardNegatives.v2

    main_score

    Результат

    0,7974

    MTEB

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

  • CEDRClassification

    main_score

    Результат

    0,4405

    MTEB

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

  • TERRa

    main_score

    Результат

    0,5638

    MTEB

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

  • RuBQReranking

    main_score

    Результат

    0,6973

    MTEB

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

  • MIRACLRetrieval

    main_score

    Результат

    0,4988

    MTEB

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

  • RuSciBenchOECDClusteringP2P

    main_score

    Результат

    0,5016

    MTEB

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

  • InappropriatenessClassification

    main_score

    Результат

    0,6206

    MTEB

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

  • RuSciBenchGRNTIClassification

    main_score

    Результат

    0,6372

    MTEB

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

  • MassiveIntentClassification

    main_score

    Результат

    0,6984

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

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

  • HeadlineClassification

    main_score

    Результат

    0,7587

    MTEB

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

  • RuReviewsClassification

    main_score

    Результат

    0,6274

    MTEB

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

  • GeoreviewClusteringP2P

    main_score

    Результат

    0,6927

    MTEB

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

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

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

USER2-base — русскоязычная модель для создания векторных представлений предложений, разработанная deepvk на основе энкодера RuModernBERT-base. Она содержит 149 млн параметров, поддерживает контекст до 8192 токенов и выдаёт эмбеддинги размерностью 768. Модель дообучена для поиска и семантических задач, включая извлечение информации, сравнение предложений, классификацию и кластеризацию.

USER2-base поддерживает Matryoshka Representation Learning: размер эмбеддинга можно сократить до 32, 64, 128, 256, 384 или 512 измерений с минимальной потерей качества. Для разных задач рекомендуется добавлять префиксы, например search_query и search_document для поиска или clustering для кластеризации. Модель доступна в форматах Safetensors и ONNX и совместима с библиотекой Sentence Transformers.

Модель ориентирована на русский язык. Карточка приводит результаты оценки на MTEB-rus и MLDR-rus, но не даёт полной таблицы всех сравнительных результатов. Репозиторий распространяется по лицензии Apache-2.0.

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

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

Ограничения

Для оптимального качества следует подбирать префикс под задачу; для сокращённых эмбеддингов рекомендованы обученные размерности 32, 64, 128, 256, 384 и 512. Модель ориентирована на русский язык, поэтому её пригодность для других языков не подтверждена.

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

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

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

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

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

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

Открыть на Hugging Face

USER2-base

USER2 is a new generation of the Universal Sentence Encoder for Russian, designed for sentence representation with long-context support of up to 8,192 tokens.

The models are built on top of the RuModernBERT encoders and are fine-tuned for retrieval and semantic tasks.
They also support Matryoshka Representation Learning (MRL) — a technique that enables reducing embedding size with minimal loss in representation quality.

This is a base model with 149 million parameters.

ModelSizeContext LengthHidden DimMRL Dims
deepvk/USER2-small34M8192384[32, 64, 128, 256, 384]
deepvk/USER2-base149M8192768[32, 64, 128, 256, 384, 512, 768]

Performance

To evaluate the model, we measure quality on the MTEB-rus benchmark. Additionally, to measure long-context retrieval, we run Russian subset of MultiLongDocRetrieval (MLDR) task.

MTEB-rus

ModelSizeHidden DimContext LengthMRL supportMean(task)Mean(taskType)ClassificationClusteringMultiLabelClassificationPairClassificationRerankingRetrievalSTS
USER-base124M768512❌58.1156.6759.8953.2637.7259.7655.5856.1474.35
USER-bge-m3359M10248192❌62.8062.2861.9253.6636.1865.0768.7273.6376.76
multilingual-e5-base278M768512❌58.3457.2458.2550.2733.6554.9866.2467.1470.16
multilingual-e5-large-instruct560M1024512❌65.0063.3666.2863.1341.1563.8964.3568.2376.48
jina-embeddings-v3572M10248192✅63.4560.9365.2460.9039.2459.2253.8671.9976.04
ru-en-RoSBERTa404M1024512❌61.7160.4062.5656.0638.8860.7963.8966.5274.13
USER2-small34M3848192✅58.3256.6859.7657.0633.5654.0258.2661.8772.25
USER2-base149M7688192✅61.1259.5961.6759.2236.6156.3962.0666.9074.28

MLDR-rus

ModelSizenDCG@10 ↑
USER-bge-m3359M58.53
KaLM-v1.5494M53.75
jina-embeddings-v3572M49.67
E5-mistral-7b7.11B52.40
USER2-small34M51.69
USER2-base149M54.17

We compare only model with context length of 8192.

Matryoshka

To evaluate MRL capabilities, we also use MTEB-rus, applying dimensionality cropping to the embeddings to match the selected size.

Usage

Prefixes

This model is trained similarly to Nomic Embed and expects task-specific prefixes to be added to the input. The choice of prefix depends on the specific task. We follow a few general guidelines when selecting a prefix:

  • "classification: " is the default and most universal prefix, often performing well across a variety of tasks.
  • "clustering: " is recommended for clustering applications: group texts into clusters, discover shared topics, or remove semantic duplicates.
  • "search_query: " and "search_document: " are intended for retrieval and reranking tasks. Also, in some classification tasks, especially with shorter texts, "search_query" shows superior performance to other prefixes. On the other hand, "search_document" can be beneficial for long-context sentence similarity tasks.

However, we encourage users to experiment with different prefixes, as certain domains may benefit from specific ones.

Sentence Transformers

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("deepvk/USER2-base")

query_embeddings = model.encode(["Когда был спущен на воду первый миноносец «Спокойный»?"], prompt_name="search_query")
document_embeddings = model.encode(["Спокойный (эсминец)\nЗачислен в списки ВМФ СССР 19 августа 1952 года."], prompt_name="search_document")

similarities = model.similarity(query_embeddings, document_embeddings)

To truncate the embedding dimension, simply pass the new value to the model initialization:

model = SentenceTransformer("deepvk/USER2-base", truncate_dim=128)

This model was trained with dimensions [32, 64, 128, 256, 384, 512, 768], so it’s recommended to use one of these for best performance.

Transformers

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


def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0]
    input_mask_expanded = (
        attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    )
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(
        input_mask_expanded.sum(1), min=1e-9
    )


queries = ["search_query: Когда был спущен на воду первый миноносец «Спокойный»?"]
documents = ["search_document: Спокойный (эсминец)\nЗачислен в списки ВМФ СССР 19 августа 1952 года."]

tokenizer = AutoTokenizer.from_pretrained("deepvk/USER2-base")
model = AutoModel.from_pretrained("deepvk/USER2-base")

encoded_queries = tokenizer(queries, padding=True, truncation=True, return_tensors="pt")
encoded_documents = tokenizer(documents, padding=True, truncation=True, return_tensors="pt")

with torch.no_grad():
    queries_outputs = model(**encoded_queries)
    documents_outputs = model(**encoded_documents)

query_embeddings = mean_pooling(queries_outputs, encoded_queries["attention_mask"])
query_embeddings = F.normalize(query_embeddings, p=2, dim=1)
doc_embeddings = mean_pooling(documents_outputs, encoded_documents["attention_mask"])
doc_embeddings = F.normalize(doc_embeddings, p=2, dim=1)

similarities = query_embeddings @ doc_embeddings.T

To truncate the embedding dimension, select the first values:

query_embeddings = mean_pooling(queries_outputs, encoded_queries["attention_mask"])
query_embeddings = query_embeddings[:, :truncate_dim]
query_embeddings = F.normalize(query_embeddings, p=2, dim=1)

Training details

This is the base version with 149 million parameters, based on RuModernBERT-base.
It was fine-tuned in three stages: RetroMAE, Weakly Supervised Fine-Tuning, and Supervised Fine-Tuning.

Following the bge-m3 training strategy, we use RetroMAE as a retrieval-oriented continuous pretraining step.
Leveraging data from the final stage of RuModernBERT training, RetroMAE enhances retrieval quality—particularly for long-context inputs.

To follow best practices for building a state-of-the-art encoder, we rely on large-scale training with weakly related text pairs.
However, such datasets are not publicly available for Russian, unlike for English or Chinese.
To overcome this, we apply two complementary strategies:

  • Cross-lingual transfer: We train on both English and Russian data, leveraging English resources (nomic-unsupervised) alongside our in-house English-Russian parallel corpora.
  • Unsupervised pair mining: From the deepvk/cultura_ru_edu corpus, we extract 50M pairs using a simple heuristic—selecting non-overlapping text blocks that are not substrings of one another.

This approach has shown promising results, allowing us to train high-performing models with minimal target-language pairs—especially when compared to pipelines used for other languages.

The table below shows the datasets used and the number of times each was upsampled.

DatasetSizeUpsample
nomic-en235M1
nomic-ru39M3
in-house En-Ru parallel250M1
cultura-sampled50M1
Total652M

For the third stage, we switch to cleaner, task-specific datasets.
In some cases, additional filtering was applied using a cross-encoder.
For all retrieval datasets, we mine hard negatives.

DatasetExamplesNotes
Nomic-en-supervised1.7 MUnmodified
AllNLI200 KTranslated SNLI/MNLI/ANLI to Russian
fishkinet-posts93 KTitle–content pairs
gazeta55 KTitle–text pairs
habr_qna100 KTitle–description pairs
lenta100 KTitle–news pairs
miracl_ru10 KOne positive per anchor
mldr_ru1.8 KUnmodified
mr-tydi_ru5.3 KUnmodified
mmarco_ru500 KUnmodified
ru-HNP100 KOne pos + one neg per anchor
ru‑queries199 KIn-house (generated as in arXiv:2401.00368)
ru‑WaNLI35 KEntailment -> pos, contradiction -> neg
sampled_wiki1 MSampled text blocks from Wikipedia
summ_dialog_news37 KSummary–info pairs
wikiomnia_qna100 KQA pairs (T5-generated)
yandex_q83 KQ+desc-answer pairs
Total4.3 M

Ablation

Alongside the final model, we also release all intermediate training steps.
Both the retromae and weakly_sft models are available under the specified revisions in this repository.
We hope these additional models prove useful for your experiments.

Below is a comparison of all training stages on a subset of MTEB-rus.

Citations

@misc{deepvk2025user,
    title={USER2},
    author={Malashenko, Boris and Spirin, Egor and Sokolov Andrey},
    url={https://huggingface.co/deepvk/USER2-base},
    publisher={Hugging Face}
    year={2025},
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
94bbff0

0 моделей