/ Модель

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

Контекст
512 токенов
Параметры
124 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
multilingual-e5-small
Библиотека
sentence-transformers
Опубликована
19 сен 2026

multilingual-e5-small-ru-law

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

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

850скачиваний за 30 дней0лайковвеса обновлены20 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

В подключённых источниках результатов для этой модели пока нет.

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

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

Модель multilingual-e5-small-ru-law разработана Павлом Алексеевым и представляет собой дообученную модель intfloat/multilingual-e5-small на базе архитектуры BERT. Она создаёт плотные текстовые эмбеддинги для поиска статей российских законов по вопросам пользователей. Модель содержит 124,3 млн параметров, выдаёт векторы размерностью 384 и принимает последовательности длиной до 512 токенов. Для запросов и документов нужны префиксы `query: ` и `passage: ` соответственно.

Дообучение проведено на синтетических русскоязычных вопросах к статьям российских кодексов; при обучении использовалась дистилляция ранжирования из ai-forever/FRIDA. На тесте RuLawRetrieval модель показала nDCG@10 0,859, сопоставимый с multilingual-e5-large, при меньших задержке на CPU и размере индекса. Она предназначена для извлечения релевантных статей, а не для выдачи юридических консультаций. Качество на реальных вопросах может отличаться, а на общих задачах поиска исходная модель показывала лучший результат. Лицензия — MIT.

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

  • поиск статей Трудового кодекса по бытовым вопросам
  • подбор норм Гражданского кодекса по описанию ситуации
  • поиск статей Жилищного кодекса по запросу пользователя
  • извлечение релевантных статей КоАП по формулировке нарушения
  • ранжирование фрагментов законов в поисковом сервисе

Ограничения

Обучение основано на синтетических вопросах, поэтому качество на реальных запросах может отличаться; на общем поиске модель уступала исходной multilingual-e5-small. Она находит статьи законов, но не предоставляет юридические консультации; данные обучения соответствуют редакции законов на сентябрь 2026 года.

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

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

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

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

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

Открыть на Hugging Face

multilingual-e5-small-ru-law

intfloat/multilingual-e5-small (118M параметров, 384 измерения), дообученная для поиска статей законов РФ по вопросам людей: на синтетических вопросах к статьям Трудового, Гражданского, Жилищного кодексов и КоАП, с дистилляцией знаний из ai-forever/FRIDA (823M). Всё обучение занимает 19 минут на одной RTX 3070.

Результат: на тесте RuLawRetrieval nDCG@10 растёт с 0.802 до 0.859 (+0.057, 95% ДИ [+0.042; +0.073]). Это уровень multilingual-e5-large (560M, 0.859; разница +0.001 [−0.016; +0.017], то есть модели статистически неотличимы) при задержке на CPU в 6.8 раза меньше и индексе в 2.7 раза меньше. На трудном наборе бытовых и поисковых вопросов по ТК прирост ещё больше: 0.710 → 0.820 (+0.109 [+0.091; +0.128]).

English summary: multilingual-e5-small fine-tuned on synthetic Russian legal questions with knowledge distillation from FRIDA (823M). On the RuLawRetrieval test set nDCG@10 goes 0.802 -> 0.859, matching multilingual-e5-large (560M) while being 6.8x faster on CPU; on the harder TK set 0.710 -> 0.820. Training takes 19 minutes on one RTX 3070. The largest gains are on colloquial questions (0.569 -> 0.701).

Код, данные и все эксперименты: github.com/alekseevpavel04/ru-law-retrieval.

Использование

Префиксы обязательны, как у исходной e5: query: для вопроса и passage: для документа.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("alekseevpavel04/multilingual-e5-small-ru-law")
query = ["query: меня уволили, пока я был на больничном, это законно?"]
passages = [
    "passage: Трудовой кодекс РФ, Статья 81. Расторжение трудового договора по инициативе работодателя\n"
    "Не допускается увольнение работника по инициативе работодателя (за исключением случая ликвидации организации "
    "либо прекращения деятельности индивидуальным предпринимателем) в период его временной нетрудоспособности "
    "и в период пребывания в отпуске.",
    "passage: Трудовой кодекс РФ, Статья 115. Продолжительность ежегодного основного оплачиваемого отпуска\n"
    "Ежегодный основной оплачиваемый отпуск предоставляется работникам продолжительностью 28 календарных дней.",
    "passage: Трудовой кодекс РФ, Статья 183. Гарантии работнику при временной нетрудоспособности\n"
    "При временной нетрудоспособности работодатель выплачивает работнику пособие по временной нетрудоспособности "
    "в соответствии с федеральными законами.",
]
q = model.encode(query, normalize_embeddings=True)
d = model.encode(passages, normalize_embeddings=True)
print(q @ d.T)  # ст. 81 уверенно первая; у исходной e5-small все три статьи почти не различаются

Абсолютные косинусы у дообученной модели ниже, чем у исходной e5: шкалу растягивает обучение с MultipleNegativesRankingLoss. Значение имеет порядок, а пороги отсечения (min_score) нужно подбирать заново.

Модель сохранена в классическом формате sentence-transformers: версии 3.3.1 и 6.1.0 дают на ней одинаковые эмбеддинги (проверено). Максимальная длина входа 512 токенов. Лучше всего работает, когда поиск идёт по фрагментам статей (500-600 символов) с заголовком статьи в начале каждого фрагмента, а score статьи равен максимуму по её фрагментам: так её обучали и оценивали.

Результаты

Бенчмарк RuLawRetrieval, протокол chunk, поиск по всем 3 786 статьям шести законов. В скобках 95% ДИ парного бутстрапа (10 000 ресэмплов).

МодельПараметрыtest nDCG@10TK-hard nDCG@10CPU, мс/запрос
intfloat/multilingual-e5-small (исходная)118M0.8020.71025.3
эта модель118M0.8590.82023.2
intfloat/multilingual-e5-large560M0.8590.820158.5
ai-forever/FRIDA (лучшая из 12 baseline)823M0.8780.854270.2
Сравнение (test, chunk)Δ nDCG@10 [95% ДИ]
против исходной e5-small+0.057 [+0.042; +0.073]
против e5-large (в 4.8 раза больше параметров)+0.001 [−0.016; +0.017]
против FRIDA−0.019 [−0.036; −0.002]
Срез / тип вопроса (test)исходнаяэта модель
статьи из обучения (seen)0.7850.865
отложенные статьи тех же кодексов0.7890.847
новые кодексы (СК, ЗоЗПП)0.8370.863
бытовые вопросы0.5690.701
поисковые запросы0.8960.924
вопросы юриста0.9390.952

Прочее:

  • три сида (42, 43, 44): test 0.855 ± 0.008, TK-hard 0.816 ± 0.008; опубликован чекпоинт с лучшим dev (seed 43);
  • golden (174 вопроса с перепроверенной и множественной разметкой, размечено ИИ-агентом): 0.894 против 0.831 у исходной;
  • MTEB RuBQRetrieval (общий домен, не про право): 0.659 против 0.686 у исходной.

Все числа лежат в results/ репозитория проекта.

Как обучена

Двухэтапный рецепт, все решения приняты по dev (results/recipe_selection.json):

  1. Контрастное обучение (CachedMultipleNegativesRankingLoss, батч 128, мини-батч 32, 3 эпохи, lr 3e-5, bf16, таблица эмбеддингов словаря заморожена):
    • 16 тыс. синтетических вопросов (Qwen3-8B, два прохода с разными промптами) к 3.2 тыс. статей четырёх кодексов, три стиля: бытовой, поисковый, юридический;
    • позитивный фрагмент внутри своей статьи выбирает учитель FRIDA, он же майнит по одному hard negative (фрагменты эталонной статьи исключены, кандидаты со score ≥ 0.95 от позитива отброшены как вероятные ложные негативы);
    • вопросы, для которых учитель не находит свою статью в топ-50, отбрасываются как шум генерации (5%);
    • свой батч-сэмплер: в одном батче не бывает двух строк про одну статью.
  2. Дистилляция (DistillKLDivLoss, 1 эпоха, lr 1e-5, батч 32): ученик повторяет ранжирование учителя FRIDA по 8 кандидатам на вопрос (позитив и 7 статей из его топа), температура учителя 0.02.

Обучение: 10.7 мин (этап 1) и 7.9 мин (этап 2) на RTX 3070 8 ГБ, пик памяти 2.9 ГБ. Время включает оценку на dev каждые 1/4 эпохи.

Ограничения

  • Обучена на синтетических вопросах; на реальных вопросах качество может отличаться.
  • Одна редакция законов (сентябрь 2026). На кодексах, которых не было в обучении (СК, ЗоЗПП), прирост меньше: +0.026 [−0.000; +0.052].
  • Общий поиск проседает: RuBQ −0.027. Для смешанного сервиса стоит сравнить обе модели.
  • Модель ищет статьи, а не даёт юридические консультации.

Лицензия

MIT, как у исходной модели. Обучающие вопросы сгенерированы Qwen3-8B (Apache-2.0), учитель при дистилляции: ai-forever/FRIDA (MIT).

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
6bfdb19

0 моделей