Files
bge-m3-russian-legal/README.md
ModelHub XC 361fe56caf 初始化项目,由ModelHub XC社区提供模型
Model: Roflmax/bge-m3-russian-legal
Source: Original Platform
2026-05-14 18:00:56 +08:00

108 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- ru
license: apache-2.0
tags:
- sentence-transformers
- feature-extraction
- sentence-similarity
- legal
- russian
- bge-m3
pipeline_tag: sentence-similarity
library_name: sentence-transformers
base_model: BAAI/bge-m3
---
# BGE-M3 Russian Legal Documents
Это модель для получения эмбеддингов русских юридических документов, дообученная на датасете из трех категорий: судебные решения, федеральные законы и региональные законы.
## Модель
- **Базовая модель**: 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 примеров
## Использование
### Установка
```bash
pip install sentence-transformers
```
### Получение эмбеддингов
**ВАЖНО**: Модель обучена с префиксами BGE-M3. Используйте их при инференсе!
```python
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**: eval_avg_recall@5
## Лицензия
Apache 2.0