ru-en-RoSBERTa Toxicity Classifier (Homework 2)
Это модель для бинарной классификации русскоязычных комментариев на предмет токсичности (1 — toxic, 0 — neutral).
Модель построена на базе предобученной архитектуры ai-forever/ru-en-RoSBERTa и дообучена в рамках выполнения Домашнего задания №2.
Метрики качества на тестовой выборке
По результатам оценки модели (evaluate_model) на сбалансированном тестовом множестве были получены следующие показатели:
- Accuracy: 90.27%
- Precision: 91.30%
- Recall: 89.03%
- F1-Score: 90.15%
- ROC AUC: 0.956
- MCC (Коэффициент Мэттьюса): 0.806
Особенности модели и порог классификации
В ходе анализа ошибок и ручного инференса было установлено, что модель успешно детектирует маркеры скрытой и пассивной агрессии (повышая внутреннюю вероятность токсичности до 0.34 - 0.45). Однако стандартный жесткий порог argmax (0.5) может пропускать такие завуалированные фразы. Для деплоя в продакшен рекомендуется калибровать порог классификации под конкретную бизнес-задачу.
Пример использования (Inference)
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("Ahbdjbdsh/Dataset-from-HOMEWORK-2")
model = AutoModelForSequenceClassification.from_pretrained("Ahbdjbdsh/Dataset-from-HOMEWORK-2")
text = "Вы что, совсем тупой? Я же уже объяснял!"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=-1)
prediction = torch.argmax(outputs.logits, dim=1).item()
print(f"Класс: {prediction}, Вероятность токсичности: {probs[0][1].item():.4f}")
- Downloads last month
- 9