初始化项目,由ModelHub XC社区提供模型
Model: Roflmax/bge-m3-russian-legal Source: Original Platform
This commit is contained in:
107
README.md
Normal file
107
README.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user