lab-ii/sakha-embed-mmbert
sakha-embed-mmbert
Модель эмбеддингов для якутского (саха) языка с сохранением качества на русском и английском. Основана на `jhu-clsp/mmBERT-base` (307M параметров, ModernBERT).
Обучена для кросс-язычного поиска ru↔sah, поиска параллельных предложений, классификации и кластеризации якутских текстов.
Использование
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("lab-ii/sakha-embed-mmbert")
# Русский запрос находит якутский документ
q = model.encode(["Когда основан город Якутск?"])
d = model.encode([
"Дьокуускай куорат 1632 сыллаахха тэриллибитэ.",
"Тыа хаһаайыстыбата сайдыыта.",
])
print((q @ d.T))Пулинг — усреднение по токенам, векторы нормируются. Рабочая длина — 512 токенов (см. ограничения).
Качество
Замерено на SakhaBench v1 — собственном наборе задач для якутского (в MTEB якутского нет, в FLORES+ тоже). 2000 кандидатов на запрос.
Русский и английский не просели относительно опорного чекпоинта: поиск на русском +2.9%, на английском +1.3%, классификация на английском −0.5%.
⚠️ Ограничения — прочитайте перед использованием в RAG
Для поиска внутри якутского используйте гибрид с BM25, а не только эмбеддинги. Обычный лексический поиск обходит все плотные модели на этой задаче — это свойство агглютинативного языка, где совпадение словоформы несёт много информации:
Модель добавляет к BM25 +6.3 пункта recall@10. Но там, где BM25 бессилен — русский запрос к якутским документам, общих слов нет — заменить её нечем.
Другие ограничения:
- Контекст фактически 512 токенов, хотя архитектура заявляет 8192. Обучение шло блоками 1024 (MLM) и 256 (контрастив), длинный контекст модель не освоила: на 1024 токенах качество падает (ndcg 20.4 → 19.4).
- Качество проверено на новостях и параллельных текстах. На разговорной речи, технических текстах и ASR-выводе не измерялось.
- Устойчивость к письму без `ҕҥөһү` ниже, чем у LaBSE (0.872 против 0.975). Модель училась на нормативной орфографии.
- Бенчмарк собственный, с публикациями по другим языкам несопоставим.
Как обучена
- Continued pretraining (MLM) на 202 млн слов якутского из новостей, книг, FineWeb2, MADLAD и OSCAR. 15 000 шагов + отжиг, блок 1024, 60% sah / 20% ru / 20% en. Replay нужен: без него поиск на русском проседает на 20%.
- Контрастив, 8000 шагов при батче 192 на 2.48 млн пар — заголовок↔текст, внутридокументные пары, 2 млн параллельных ru↔sah, replay-пары ru/en.
- Трудные негативы, намайненные
bge-m3, отбор по рангу; 3000 шагов.
Словарь не расширялся: расширение даёт четырёхкратное сжатие якутского, но при доступном бюджете обучения стоило 3–5 пунктов на всех retrieval-задачах. Дистилляция из учителя проверена и оказалась лишней — всю работу делает replay.
Лицензия
MIT, как у базовой модели jhu-clsp/mmBERT-base.
