68 lines
2.8 KiB
Markdown
68 lines
2.8 KiB
Markdown
---
|
||
pipeline_tag: sentence-similarity
|
||
tags:
|
||
- sentence-transformers
|
||
- feature-extraction
|
||
- sentence-similarity
|
||
- transformers
|
||
language: ru
|
||
license: unlicense
|
||
|
||
widget:
|
||
- source_sentence: "Кошка ловит мышку."
|
||
sentences: ["Кто ловит мышку?", "Где живет кошка?", "Как мышку зовут?"]
|
||
---
|
||
|
||
|
||
# SBERT_PQ
|
||
|
||
Это [sentence-transformers](https://www.SBERT.net) модель, предназначенная
|
||
для определения релевантности короткого текста (преимущественно одно предложение длиной до 10-15 слов) и вопроса.
|
||
|
||
Модель вычисляет для текста и вопроса векторы размерностью 312. Косинус угла между этими векторами
|
||
дает оценку того, содержит ли текст ответ на заданный вопрос. В [проекте диалоговой системы](https://github.com/Koziev/chatbot)
|
||
она используется для семантического поиска записей в базе фактов по заданному собеседником вопросу.
|
||
|
||
# Скорость и точность
|
||
|
||
Модель основана на [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2).
|
||
Она имеет очень небольшой размер и быстро выполняет инференс даже на CPU.
|
||
|
||
Максимальное значение метрики cossim_f1 на тестовой выборке (10% датасета) равно **0.986**.
|
||
|
||
При использовании модели sberbank-ai/ruBert-base в качестве базовой, максимум cossim_f1 составляет **0.992**.
|
||
|
||
|
||
## Использование с библиотекой (Sentence-Transformers)
|
||
|
||
Необходимо установить [sentence-transformers](https://www.SBERT.net):
|
||
|
||
```
|
||
pip install -U sentence-transformers
|
||
```
|
||
|
||
Чтобы определить релевантность в одной паре "текст-вопрос", можно использовать такой код:
|
||
|
||
```
|
||
import sentence_transformers
|
||
|
||
sentences = ["Кошка ловит мышку.", "Чем занята кошка?"]
|
||
|
||
model = sentence_transformers.SentenceTransformer('inkoziev/sbert_pq')
|
||
embeddings = model.encode(sentences)
|
||
|
||
s = sentence_transformers.util.cos_sim(a=embeddings[0], b=embeddings[1])
|
||
print('text={} question={} cossim={}'.format(sentences[0], sentences[1], s))
|
||
```
|
||
|
||
## Контакты и цитирование
|
||
|
||
```
|
||
@MISC{rugpt_chitchat,
|
||
author = {Ilya Koziev},
|
||
title = {Texts & Questions Relevancy Model},
|
||
url = {https://huggingface.co/inkoziev/sbert_pq},
|
||
year = 2022
|
||
}
|
||
```
|