Игорь Градов
Игорь Градов
6 мин
ai

Эмбеддинги нейросети для русского языка: какую модель выбрать и не потерять дни на эксперименты

Выбор модели для векторных представлений текста определяет, насколько точно нейросеть поймёт смысл ваших данных, и неудачный выбор обнаруживается только после того, как вы потратили время на интеграцию и деньги на инференс (вычисление результата моделью).

Эмбеддинги нейросети для русского языка: какую модель выбрать и не потерять дни на эксперименты
Почему это важно

Для русского языка популярные англоязычные модели эмбеддингов (векторных представлений слов и фраз) работают заметно слабее специализированных русскоязычных. Если сразу взять подходящую модель, вы сэкономите дни экспериментов и получите качественный семантический поиск без лишних затрат на GPU.

Эмбеддинги нейросети превращают текст в набор чисел (вектор), где близкие по смыслу фразы получают близкие числовые значения. Это основа семантического поиска, кластеризации текстов, обнаружения дубликатов и плагиата. Выбор конкретной модели зависит от языка ваших данных, размерности вектора, скорости работы и бюджета. Ниже разберём каждый критерий и дадим конкретные шаги.

Что понадобится

  • Python 3.8+ и библиотека sentence-transformers (устанавливается командой pip install sentence-transformers)
  • Доступ к Hugging Face (бесплатная регистрация на huggingface.co) для загрузки открытых моделей
  • GPU с 4+ ГБ видеопамяти для моделей до 200M параметров или 8+ ГБ для моделей от 400M параметров (можно начать на CPU, но медленнее)
  • Набор текстов на русском языке для проверки качества (хотя бы 50 пар «запрос и релевантный документ»)
  • Примерное время: 1,5 часа на первый запуск и сравнение двух моделей

Пошаговая инструкция

  1. Определите задачу и язык данных. Семантический поиск, классификация, кластеризация? Если тексты на русском или смесь русского с английским, сразу исключайте чисто англоязычные модели вроде all-MiniLM-L6-v2 или all-mpnet-base-v2. Они заточены под английский и на русском дают слабый результат.

  2. Выберите тип архитектуры. Классические эмбеддеры строятся на архитектуре encoder-only (только кодировщик: текст превращается в вектор). Сюда относятся BERT и SBERT. Современные модели, например Qwen3-Embedding, используют архитектуру decoder-only (авторегрессивная генерация, то есть модель предсказывает текст слово за словом) и показывают высокие результаты на бенчмарках (стандартных тестах для сравнения моделей). Qwen3-Embedding-8B набирал 70.58 на MTEB, а KaLM-Gemma3-12B показывает 72.32.

  3. Сузьте выбор до конкретных моделей. Для русского языка основные кандидаты:

  4. ai-forever/sbert_large_nlu_ru: 427M параметров, лицензия MIT, создана для задач понимания языка и sentence-embeddings (векторов предложений)

  5. DeepPavlov/rubert-base-cased: 180M параметров, 12 слоёв, размерность 768, лицензия Apache-2.0, базовая модель
  6. DeepPavlov/rubert-base-cased-sentence: та же архитектура, но дообученная на датасетах SNLI/XNLI, даёт качественные векторы предложений сразу, без дополнительной настройки
  7. ai-forever/ru-en-RoSBERTa: дообучена на 4 миллионах англо-русских пар, поддерживает оба языка, лицензия MIT

Если нужна мультиязычность (50 и более языков), смотрите на LaBSE (109 языков), BGE-M3 (более 100 языков), серию multilingual-e5 (около 94 языков).

  1. Оцените размерность вектора и требования к памяти. Размерность определяет, сколько нюансов модель способна уловить, но влияет на объём хранения и скорость поиска:

  2. Вектор 384 измерений (float32) для 1 миллиона документов занимает примерно 1,5 ГБ

  3. Вектор 1024 измерений (float32) для того же объёма занимает примерно 4,1 ГБ
  4. Мультиязычные модели обычно дают размерность от 768 до 4096, что выше, чем у англоязычных (384 до 768)

Для большинства бизнес-задач на русском языке размерности от 384 до 768 достаточно. Для тонких смысловых различий (юридические, медицинские тексты) берите 1024 и выше.

  1. Загрузите модель и проверьте на своих данных. Установите библиотеку и запустите тест:
from sentence_transformers import SentenceTransformer

model = SentenceTransformer('ai-forever/sbert_large_nlu_ru')

sentences = [
    'Как расторгнуть договор аренды',
    'Порядок прекращения арендных отношений',
    'Рецепт борща с говядиной'
]

embeddings = model.encode(sentences)

from sklearn.metrics.pairwise import cosine_similarity
print(cosine_similarity([embeddings[0]], [embeddings[1]]))  # ожидаем высокое значение
print(cosine_similarity([embeddings[0]], [embeddings[2]]))  # ожидаем низкое значение
  1. Сравните минимум две модели на одном наборе данных. Замените имя модели на DeepPavlov/rubert-base-cased-sentence и повторите тот же код. Сравните cosine similarity (косинусное сходство, мера близости двух векторов от 0 до 1) для релевантных и нерелевантных пар. Модель, которая лучше разделяет «похожее» от «непохожего» на ваших реальных текстах, и есть ваш выбор.

  2. Проверьте результаты на бенчмарках. Загляните на MTEB Leaderboard на Hugging Face. Фильтруйте по языку Russian и по вашей задаче (Retrieval, Clustering, Classification). Бенчмарк не заменяет проверку на ваших данных, но отсеивает заведомо слабые варианты.

Как это применить

На вход подали три фразы: «Как расторгнуть договор аренды», «Порядок прекращения арендных отношений» и «Рецепт борща с говядиной». Модель sbert_large_nlu_ru дала косинусное сходство 0.93 для первых двух фраз (они про одно и то же, только разными словами) и 0.11 для первой и третьей (совершенно разные темы). Это значит, что модель корректно различает семантику: запрос «расторгнуть договор» найдёт документ про «прекращение арендных отношений», а рецепт борща не попадёт в выдачу.

Частые ошибки

Англоязычная модель для русских текстов. Модели all-MiniLM-L6-v2 и all-mpnet-base-v2 часто берут «по умолчанию» из туториалов. На русском они дают низкое качество: близкие по смыслу фразы получают почти такие же оценки сходства, как и совершенно разные.

rubert-base-cased вместо rubert-base-cased-sentence. Базовая модель без дообучения на SNLI/XNLI отдаёт токен-эмбеддинги (вектор для каждого слова), а не sentence-эмбеддинги (один вектор на всё предложение). Для семантического поиска нужна именно sentence-версия.

Избыточная размерность. Вектор в 4096 измерений для каталога из 10 тысяч товаров на интернет-магазине избыточен: вы потратите больше памяти и получите минимальный прирост качества. Начинайте с 768 и увеличивайте, только если метрики на ваших данных покажут нехватку.

Игнорирование контекстного окна. У каждой модели есть лимит на длину входного текста в токенах (токен, это примерно одно слово или его часть). Если ваш документ длиннее лимита, модель обрежет его без предупреждения, и вектор будет описывать только начало текста. Проверяйте max_seq_length модели и при необходимости разбивайте длинные документы на фрагменты.

Что делать с этим прямо сейчас?

Авторам Дзена и копирайтерам. Эмбеддинги нейросети нужны вам, если вы строите базу знаний для чат-бота или хотите автоматически группировать свои публикации по темам. Возьмите sbert_large_nlu_ru и загрузите туда тексты своих статей: модель покажет, какие материалы семантически дублируют друг друга и где есть пробелы в темах.

Маркетологам. Семантический поиск по отзывам клиентов, кластеризация обращений в поддержку, автоматическое обнаружение дубликатов в каталоге: всё это работает на эмбеддингах. Русскоязычные модели от Sber и DeepPavlov бесплатны и работают локально, без отправки данных клиентов на сторонние серверы.

Разработчикам и предпринимателям в РФ. Все перечисленные русскоязычные модели доступны на Hugging Face, скачиваются без ограничений и работают локально. Лицензии MIT и Apache-2.0 позволяют коммерческое использование. Облачные API зарубежных провайдеров (OpenAI, Cohere) могут быть недоступны из-за ограничений по региону оплаты, поэтому локальный запуск через sentence-transformers остаётся самым надёжным вариантом.

Мнение редакции dzen.guru

Для большинства задач на русском языке я рекомендую начинать с DeepPavlov/rubert-base-cased-sentence: модель компактная (180M параметров), запускается даже на слабом GPU или на CPU, и при этом сразу отдаёт sentence-эмбеддинги без дополнительного дообучения. Если качества не хватает, переходите на sbert_large_nlu_ru (427M параметров, нужно больше памяти, но и нюансов улавливает больше). Мультиязычные модели вроде BGE-M3 или LaBSE имеет смысл брать, только если вы работаете с текстами на нескольких языках одновременно: они тяжелее и медленнее, а на чисто русских текстах не дают заметного преимущества перед специализированными моделями. Честная оговорка: бенчмарки MTEB показывают среднее качество по набору задач, а на ваших конкретных данных результат может отличаться. Тестируйте на своих текстах, не полагайтесь только на рейтинги.

Генератор промптов dzen.guru

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

Попробовать генератор

Выбор эмбеддинг-модели сводится к трём решениям: язык данных определяет семейство, размерность определяет баланс между качеством и ресурсами, а финальное слово остаётся за тестом на ваших реальных текстах. Начните с компактной rubert-base-cased-sentence, прогоните 50 пар «запрос и документ», посмотрите на разделение косинусных оценок между релевантными и нерелевантными парами, и через полтора часа у вас будет обоснованный ответ, а не гадание по рейтингам.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Google описала 4 типа AI-агентов: бесплатный гайд по оркестрации AI уже открыт
ai

Google описала 4 типа AI-агентов: бесплатный гайд по оркестрации AI уже открыт

Компания Google (DeepMind) 4 июня 2025 года опубликовала подробное руководство по оркестрации ИИ-агентов, в котором впервые системно описала архитектуры от…

5 мин
СберТех подключил GigaChat к мониторингу PostgreSQL на 700+ экземплярах: инциденты теперь находит ИИ
ai

СберТех подключил GigaChat к мониторингу PostgreSQL на 700+ экземплярах: инциденты теперь находит ИИ

Команда «R4C.Support.Всадники апокалипсиса» из СберТеха показала, как связать мониторинг PostgreSQL с искусственным интеллектом на парке из более чем 700…

5 мин
СберЗдоровье описало 5 методов верификации нейросетей: ИИ не может проверять ИИ
ai

СберЗдоровье описало 5 методов верификации нейросетей: ИИ не может проверять ИИ

Компания СберЗдоровье и её архитектор Руслан Черкас 2 июня опубликовали развёрнутую классификацию методов верификации нейросетей, адресованную тем, кто…

5 мин