gpt_text_embd / README.md
Ponimash's picture
Update README.md
11bd1a5 verified
|
raw
history blame
3.79 kB
---
datasets: []
language: []
library_name: sentence-transformers
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
widget: []
---
Эксперимент по использованию модели, наподобие GPT-2, в качестве эмбеддера. Базовая модель: `ai-forever/rugpt3medium_based_on_gpt2`, извлечено первые 6 слоев.
# SentenceTransformer
Это модель [sentence-transformers](https://www.SBERT.net), которая обучена для преобразования предложений и абзацев в плотное векторное пространство размерностью 1024. Она может использоваться для семантического сопоставления текста, семантического поиска, поиска парафраз, классификации текста, кластеризации и других задач.
## Описание Модели
### Основные Характеристики
- **Тип модели:** Sentence Transformer
- **Максимальная длина последовательности:** 2048 токенов
- **Размерность выхода:** 1024
- **Функция Similarity:** Косинусное сходство
### Источники Модели
- **Документация:** [Sentence Transformers Documentation](https://sbert.net)
- **Репозиторий:** [Sentence Transformers на GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers на Hugging Face](https://huggingface.co/models?library=sentence-transformers)
### Полная Архитектура Модели
```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})
)
```