Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,40 @@
|
|
| 1 |
---
|
| 2 |
license: mit
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
license: mit
|
| 3 |
+
language:
|
| 4 |
+
- ru
|
| 5 |
---
|
| 6 |
+
Описание классов:
|
| 7 |
+
1. about_user - реагирует, когда пользователь говорит о себе. Например, "меня зовут андрей"
|
| 8 |
+
2. inaccurate_question - реагирует на философские и размытые вопросы. Например, "что такое любовь, когда деньги придут за мной"
|
| 9 |
+
3. exact_question - реагирует на точные, фактологичные вопросы. Например, "когда родился пушкин, почему трава зеленая"
|
| 10 |
+
4. instruct - реагирует на вопросы, ответ на которые представляет собой инструкцию. Например, "как установить windows, как приготовить борщ"
|
| 11 |
+
5. about_system - реагирует на вопросы о личности ассистента. Например, "как тебя зовут, ты кто такая"
|
| 12 |
+
6. problem - реагирует на реплики, где пользователь рассказывает о своих проблемах. Например, "у меня болит зуб, мне проткнули колесо"
|
| 13 |
+
7. dialogue - реагирует на диалоговые реплики. Например, "привет"
|
| 14 |
+
|
| 15 |
+
Код инференса:
|
| 16 |
+
```python
|
| 17 |
+
import torch
|
| 18 |
+
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 22 |
+
tokenizer = AutoTokenizer.from_pretrained('Den4ikAI/rubert_tiny_questions_classifier')
|
| 23 |
+
model = AutoModelForSequenceClassification.from_pretrained('Den4ikAI/rubert_tiny_questions_classifier')
|
| 24 |
+
model.to(device)
|
| 25 |
+
model.eval()
|
| 26 |
+
|
| 27 |
+
classes = ['about_user', 'inaccurate_question', 'exact_question', 'instruct', 'about_system', 'problem', 'dialogue']
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
def get_sentence_type(text):
|
| 31 |
+
inputs = tokenizer(text, max_length=512, add_special_tokens=False, return_tensors='pt').to(device)
|
| 32 |
+
with torch.no_grad():
|
| 33 |
+
logits = model(**inputs).logits
|
| 34 |
+
probas = list(torch.sigmoid(logits)[0].cpu().detach().numpy())
|
| 35 |
+
out = classes[probas.index(max(probas))]
|
| 36 |
+
return out
|
| 37 |
+
|
| 38 |
+
while 1:
|
| 39 |
+
print(get_sentence_type(input(":> ")))
|
| 40 |
+
```
|