File size: 4,064 Bytes
fe0b753
be3c09a
 
 
 
fe0b753
 
 
be3c09a
 
 
 
fe0b753
be3c09a
 
 
 
 
fe0b753
 
 
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
 
 
 
 
 
 
 
fe0b753
be3c09a
fe0b753
 
 
 
 
be3c09a
fe0b753
be3c09a
 
 
fe0b753
be3c09a
 
fe0b753
 
be3c09a
 
fe0b753
 
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
 
 
 
fe0b753
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
 
 
 
 
 
 
 
 
fe0b753
be3c09a
fe0b753
be3c09a
 
 
fe0b753
be3c09a
fe0b753
be3c09a
fe0b753
be3c09a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
---
language:
- ru
license: apache-2.0
library_name: sentence-transformers
tags:
- sentence-transformers
- feature-extraction
- sentence-similarity
- semantic-search
- russian
- domain-adaptation
base_model: sentence-transformers/all-MiniLM-L6-v2
datasets:
- deepvk/ru-HNP
- ai-forever/rubq-retrieval
metrics:
- recall
pipeline_tag: sentence-similarity
---

# all-MiniLM-L6-v2-ru-adapted

Это доменно-адаптированная версия модели sentence-transformers/all-MiniLM-L6-v2, дообученная для работы с русскоязычными текстами в задаче семантического поиска.

Базовая модель обучалась только на английских данных. Данная адаптация направлена на улучшение качества получаемых эмбеддингов для русского языка с помощью дообучения на парафразах.

## Описание модели

- Базовая модель: sentence-transformers/all-MiniLM-L6-v2
- Размерность эмбеддингов: 384
- Максимальная длина последовательности: 256 токенов
- Функция потерь: TripletLoss (Cosine Distance, margin=0.5)
- Датасет для дообучения: deepvk/ru-HNP (20000 примеров, якорь/позитив/негатив)
- Эпохи обучения: 3
- Batch size: 16
- Warmup steps: 100

## Как использовать

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("AtesiT/all-MiniLM-L6-v2-ru-adapted")

sentences = [
    "Какая столица России?",
    "Москва — столица Российской Федерации",
    "Кошки — популярные домашние животные"
]

embeddings = model.encode(sentences, normalize_embeddings=True)
print(embeddings.shape)

similarity = embeddings[0] @ embeddings[1].T
print("Сходство между вопросом и ответом:", similarity)
```

## Оценка качества (базовая модель, до дообучения)

Оценка проводилась на датасете ai-forever/rubq-retrieval (1692 вопроса, 56826 документов в базе знаний) с использованием FAISS (IndexFlatIP) и метрики Recall@K.

| Метрика | Базовая модель (all-MiniLM-L6-v2) |
|---------|:----------------------------------:|
| Recall@5 | 0.0272 |
| Recall@10 | 0.0350 |

Метрики дообученной модели будут добавлены после завершения полного цикла оценки.

### Кривая обучения (Training Loss)

| Step | Loss |
|------|------|
| 500  | 0.214 |
| 1000 | 0.139 |
| 1500 | 0.130 |
| 2000 | 0.117 |
| 2500 | 0.114 |
| 3000 | 0.106 |
| 3500 | 0.108 |

## Ограничения

- Модель дообучалась на ограниченной выборке (20000 примеров) и небольшом числе эпох (3), что типично для образовательного проекта.
- Данные для обучения (ru-HNP, парафразы) отличаются по своей природе от задачи QA-поиска (rubq-retrieval), что ограничивает степень переноса качества между задачами (domain shift).
- Для промышленного использования рекомендуется дообучение на большем объёме данных, более близких по структуре к целевой задаче, а также подбор гиперпараметров.

## Обучающий пайплайн

Модель была получена в рамках учебного задания по доменной адаптации энкодерных моделей.

Автор: AtesiT