/ Модель

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

Контекст
512 токенов
Параметры
937 млн
Лицензия
MIT
Архитектура
t5 · dense
Базовая модель
FRED-T5-1.7B
Опубликована
26 дек 2024

FRIDA

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

FRIDA — дообученная на русско-английских данных модель эмбеддингов для семантического поиска и сравнения текстов.

309 тыс.скачиваний за 30 дней156лайковвеса обновлены11 авг 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • STS22

    main_score

    Результат

    0,6355

    MTEB

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

  • RuSciBenchGRNTIClassification

    main_score

    Результат

    0,6989

    MTEB

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

  • InappropriatenessClassification

    main_score

    Результат

    0,7832

    MTEB

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

  • RuSciBenchOECDClusteringP2P

    main_score

    Результат

    0,5658

    MTEB

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

  • KinopoiskClassification

    main_score

    Результат

    0,7047

    MTEB

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

  • RuBQReranking

    main_score

    Результат

    0,7702

    MTEB

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

  • GeoreviewClassification

    main_score

    Результат

    0,5772

    MTEB

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

  • GeoreviewClusteringP2P

    main_score

    Результат

    0,785

    MTEB

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

  • HeadlineClassification

    main_score

    Результат

    0,8902

    MTEB

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

  • RuSciBenchGRNTIClusteringP2P

    main_score

    Результат

    0,674

    MTEB

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

  • TERRa

    main_score

    Результат

    0,6645

    MTEB

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

  • MassiveScenarioClassification

    main_score

    Результат

    0,8881

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

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

  • MassiveIntentClassification

    main_score

    Результат

    0,7987

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

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

  • RuBQRetrieval

    main_score

    Результат

    0,7293

    MTEB

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

  • RuSTSBenchmarkSTS

    main_score

    Результат

    0,814

    MTEB

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

  • SensitiveTopicsClassification

    main_score

    Результат

    0,3981

    MTEB

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

  • RiaNewsRetrieval

    main_score

    Результат

    0,8664

    MTEB

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

  • CEDRClassification

    main_score

    Результат

    0,6464

    MTEB

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

  • RUParaPhraserSTS

    main_score

    Результат

    0,7809

    MTEB

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

  • RiaNewsRetrievalHardNegatives.v2

    main_score

    Результат

    0,8382

    MTEB

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

  • RuReviewsClassification

    main_score

    Результат

    0,7506

    MTEB

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

  • RuSciBenchOECDClassification

    main_score

    Результат

    0,5463

    MTEB

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

  • MIRACLReranking

    main_score

    Результат

    0,6598

    MTEB

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

  • MIRACLRetrieval

    main_score

    Результат

    0,7195

    MTEB

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

  • MIRACLRetrievalHardNegatives.v2

    main_score

    Результат

    0,7239

    MTEB

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

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

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

FRIDA — полноразмерная модель эмбеддингов текста, разработанная командой SaluteDevices AI for B2C RnD. Она основана на энкодере FRED-T5 и использует архитектуру T5; число параметров — 936,6 млн. Модель предварительно обучена на русско-английском наборе данных и дообучена для получения текстовых представлений. Репозиторий содержит веса в формате safetensors.

FRIDA предназначена для построения эмбеддингов и оценки сходства предложений. Её можно применять для семантического поиска, подбора похожих текстов и задач ранжирования, используя подходящие префиксы и pooling CLS. Максимальная длина входа — 512 токенов. Модель распространяется по лицензии MIT.

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

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

Ограничения

Модель рассчитана прежде всего на обработку русского текста; качество для английского языка неизвестно. Максимальная длина входа ограничена 512 токенами.

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

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

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

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

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

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

Открыть на Hugging Face

Model Card for FRIDA

FRIDA is a full-scale finetuned general text embedding model inspired by denoising architecture based on T5. The model is based on the encoder part of FRED-T5 model and continues research of text embedding models (ruMTEB, ru-en-RoSBERTa). It has been pre-trained on a Russian-English dataset and fine-tuned for improved performance on the target task.

For more model details please refer to our article (RU). The model's results are presented on the MTEB and rusBEIR leaderboards.

Usage

The model can be used as is with prefixes. It is recommended to use CLS pooling. The choice of prefix and pooling depends on the task.

We use the following basic rules to choose a prefix:

  • "search_query: " and "search_document: " prefixes are for answer or relevant paragraph retrieval
  • "paraphrase: " prefix is for symmetric paraphrasing related tasks (STS, paraphrase mining, deduplication)
  • "categorize: " prefix is for asymmetric matching of document title and body (e.g. news, scientific papers, social posts)
  • "categorize_sentiment: " prefix is for any tasks that rely on sentiment features (e.g. hate, toxic, emotion)
  • "categorize_topic: " prefix is intended for tasks where you need to group texts by topic
  • "categorize_entailment: " prefix is for textual entailment task (NLI)

To better tailor the model to your needs, you can fine-tune it with relevant high-quality Russian and English datasets.

Below are examples of texts encoding using the Transformers and SentenceTransformers libraries.

Transformers

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


def pool(hidden_state, mask, pooling_method="cls"):
    if pooling_method == "mean":
        s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)
        d = mask.sum(axis=1, keepdim=True).float()
        return s / d
    elif pooling_method == "cls":
        return hidden_state[:, 0]

inputs = [
    # 
    "paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
    "categorize_entailment: Женщину доставили в больницу, за ее жизнь сейчас борются врачи.",
    "search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
    # 
    "paraphrase: Ярославским баням разрешили работать без посетителей",
    "categorize_entailment: Женщину спасают врачи.",
    "search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
]

tokenizer = AutoTokenizer.from_pretrained("ai-forever/FRIDA")
model = T5EncoderModel.from_pretrained("ai-forever/FRIDA")

tokenized_inputs = tokenizer(inputs, max_length=512, padding=True, truncation=True, return_tensors="pt")

with torch.no_grad():
    outputs = model(**tokenized_inputs)
    
embeddings = pool(
    outputs.last_hidden_state, 
    tokenized_inputs["attention_mask"],
    pooling_method="cls" # or try "mean"
)

embeddings = F.normalize(embeddings, p=2, dim=1)
sim_scores = embeddings[:3] @ embeddings[3:].T
print(sim_scores.diag().tolist())
# [0.9360030293464661, 0.8591322302818298, 0.728583037853241]

SentenceTransformers

from sentence_transformers import SentenceTransformer

inputs = [
    # 
    "paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
    "categorize_entailment: Женщину доставили в больницу, за ее жизнь сейчас борются врачи.",
    "search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
    # 
    "paraphrase: Ярославским баням разрешили работать без посетителей",
    "categorize_entailment: Женщину спасают врачи.",
    "search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
]

# loads model with CLS pooling
model = SentenceTransformer("ai-forever/FRIDA")

# embeddings are normalized by default
embeddings = model.encode(inputs, convert_to_tensor=True)

sim_scores = embeddings[:3] @ embeddings[3:].T
print(sim_scores.diag().tolist())
# [0.9360026717185974, 0.8591331243515015, 0.7285830974578857]

or using prompts (sentence-transformers>=2.4.0):

from sentence_transformers import SentenceTransformer

# loads model with CLS pooling
model = SentenceTransformer("ai-forever/FRIDA")

paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt_name="paraphrase")
print(paraphrase[0] @ paraphrase[1].T) # 0.9360032

categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt_name="categorize_entailment")
print(categorize_entailment[0] @ categorize_entailment[1].T) # 0.8591322

query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt_name="search_query")
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt_name="search_document")
print(query_embedding @ document_embedding.T) # 0.7285831

Results

FRIDA is the top-1 model among models with up to 3 billion parameters (11.08.26).

Authors

Citation

@misc{TODO
}

Limitations

The model is designed to process texts in Russian, the quality in English is unknown. Maximum input text length is limited to 512 tokens.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
T5EncoderModel
Ревизия весов
850455b

0 моделей