Roflmax/bge-m3-russian-legal
21.4k
BGE-M3 Russian Legal Documents
Это модель для получения эмбеддингов русских юридических документов, дообученная на датасете из трех категорий: судебные решения, федеральные законы и региональные законы.
Модель
- Базовая модель: BAAI/bge-m3
- Размерность эмбеддингов: 1024
- Max sequence length: 512 токенов
- Язык: Русский
- Задача: Semantic search на юридических документах
Метрики качества
Результаты на тестовой выборке
Результаты по типам документов (validation set)
Датасет для обучения
- Размер: 26,734 уникальных пар (query, document)
- Дедупликация: Да (70% удалено по chunk_text)
- Категории:
- court_law: 14,046 примеров
- other_law: 3,823 примеров
- reg_law: 8,865 примеров
Использование
Установка
pip install sentence-transformersПолучение эмбеддингов
ВАЖНО: Модель обучена с префиксами BGE-M3. Используйте их при инференсе!
from sentence_transformers import SentenceTransformer
# Загрузка модели
model = SentenceTransformer("Roflmax/bge-m3-russian-legal")
# Для запросов используйте префикс
query = "Represent this sentence for searching relevant passages: Какое наказание за управление в состоянии опьянения?"
query_embedding = model.encode(query)
# Для документов префикс пустой (просто текст)
documents = [
"Статья 264 УК РФ. Нарушение правил дорожного движения...",
"КоАП РФ статья 12.8. Управление транспортным средством..."
]
doc_embeddings = model.encode(documents)
# Поиск похожих документов
from sklearn.metrics.pairwise import cosine_similarity
similarities = cosine_similarity([query_embedding], doc_embeddings)[0]
# Топ-5 результатов
top_indices = similarities.argsort()[-5:][::-1]
for idx in top_indices:
print(f"Document {idx}: similarity={similarities[idx]:.4f}")Параметры обучения
- Loss function: MultipleNegativesRankingLoss (scale=20.0)
- Epochs: 3
- Batch size: 64
- Learning rate: 2e-5
- Warmup ratio: 0.1
- Precision: bfloat16
- Best model selection: evalavgrecall@5
Лицензия
Apache 2.0
