Это модель для получения эмбеддингов русских юридических документов, дообученная на датасете из трех категорий: судебные решения, федеральные законы и региональные законы.
Модель
Базовая модель: BAAI/bge-m3
Размерность эмбеддингов: 1024
Max sequence length: 512 токенов
Язык: Русский
Задача: Semantic search на юридических документах
Метрики качества
Результаты на тестовой выборке
Метрика
Значение
Recall@1
76.9%
Recall@5
92.9%
Recall@10
95.5%
Результаты по типам документов (validation set)
Датасет
Recall@1
Recall@5
Recall@10
court_law (судебные решения)
67.5%
87.9%
92.6%
other_law (федеральные законы)
85.1%
96.7%
97.4%
reg_law (региональные законы)
75.6%
96.9%
98.8%
Датасет для обучения
Размер: 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. Используйте их при инференсе!
fromsentence_transformersimportSentenceTransformer# Загрузка модели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)# Поиск похожих документовfromsklearn.metrics.pairwiseimportcosine_similaritysimilarities=cosine_similarity([query_embedding],doc_embeddings)[0]# Топ-5 результатовtop_indices=similarities.argsort()[-5:][::-1]foridxintop_indices:print(f"Document {idx}: similarity={similarities[idx]:.4f}")
Параметры обучения
Loss function: MultipleNegativesRankingLoss (scale=20.0)