File size: 2,181 Bytes
6647d22 656e1e2 89d8400 656e1e2 6647d22 656e1e2 89d8400 656e1e2 89d8400 | 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 |
---
language:
- ru
license: mit
pipeline_tag: text-classification
tags:
- bert
- toxicity
- russian
---
# Toxicity Classifier
Модель для определения токсичности сообщений службы поддержки.
## Задача
Модель решает задачу бинарной классификации текста: определяет, является ли сообщение
службы поддержки токсичным (1) или нетоксичным (0). Предназначена для использования в
пайплайне контроля качества — анализ исходящих ответов операторов в реальном времени
перед отправкой клиенту.
- **Вход:** текст сообщения на русском языке
- **Выход:** класс (0 — нетоксично, 1 — токсично) и вероятность токсичности
- **Базовая модель:** ai-forever/ru-en-RoSBERTa (энкодер заморожен, обучалась только классификационная голова)
-
## Метрики
Пример результатов на тестовой выборке:
accuracy: 0.99
precision: 0.99
recall: 0.99
f1: 0.99
mcc: 0.99
roc_auc: 0.99
## Пример использования
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "VladimirRH/toxicity-classifier"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
model.eval()
text = "Спасибо за обратную связь, мы обязательно учтём ваши пожелания."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=32)
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.softmax(logits, dim=1)
prediction = torch.argmax(probs, dim=1).item()
toxicity_prob = probs[0][1].item()
print(f"Класс: {prediction}")
print(f"Вероятность токсичности: {toxicity_prob:.4f}")
```
|