File size: 3,432 Bytes
fb0aaae
9e65a9a
 
fda037a
 
 
 
 
 
 
9e65a9a
 
 
 
fda037a
 
e0bc537
 
fda037a
 
e0bc537
fda037a
e0bc537
fda037a
e0bc537
 
 
 
fda037a
e0bc537
fda037a
e0bc537
fda037a
 
 
 
 
 
e0bc537
fda037a
e0bc537
fda037a
e0bc537
fda037a
 
 
 
 
e0bc537
 
fda037a
 
 
e0bc537
 
 
fda037a
e0bc537
 
 
fda037a
 
 
e0bc537
fda037a
e0bc537
fda037a
 
 
 
 
e0bc537
fda037a
e0bc537
 
 
 
 
fda037a
e0bc537
 
 
 
 
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
---
language:
- ru
library_name: sentence-transformers
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
widget: []
license: cc-by-nc-2.0
metrics:
- mse
base_model: ai-forever/rugpt3medium_based_on_gpt2
---

Эксперимент по использованию модели, наподобие GPT-2, в качестве эмбеддера. Базовая модель: `ai-forever/rugpt3medium_based_on_gpt2`, извлечено первые 6 слоев.

# SentenceTransformer

Это модель [sentence-transformers](https://www.SBERT.net), которая обучена для преобразования предложений и абзацев в плотное векторное пространство размерностью 1024. Она может использоваться для семантического сопоставления текста, семантического поиска, поиска парафраз, классификации текста, кластеризации и других задач.

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

### Основные Характеристики
- **Тип модели:** Sentence Transformer
- **Максимальная длина последовательности:** 2048 токенов
- **Размерность выхода:** 1024

### Полная Архитектура Модели

```python
SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: GPT2Model 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
```

## Использование

### Прямое Использование (Sentence Transformers)

Для начала установите библиотеку Sentence Transformers:

```bash
pip install -U sentence-transformers
```

Затем загрузите эту модель и выполните инференс.

```python
from sentence_transformers import SentenceTransformer

# Загрузка модели с 🤗 Hub
model = SentenceTransformer("Ponimash/gpt_text_embd")
# Запуск инференса
sentences = [
    'Погода сегодня прекрасная.',
    'На улице так солнечно!',
    'Он поехал на стадион.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Получение оценок схожести для эмбеддингов
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
```

### Результаты

```python
# Выходная размерность: 1024
tensor([[1.0000, 0.6575, 0.4605],
        [0.6575, 1.0000, 0.4683],
        [0.4605, 0.4683, 1.0000]])

SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: GPT2Model 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
```