Ahbdjbdsh's picture
Upload README.md with huggingface_hub
8861ba8 verified
|
Raw
History Blame Contribute Delete
2.6 kB
metadata
language:
  - ru
  - en
tags:
  - text-classification
  - toxicity
  - roberta
pipeline_tag: text-classification
metrics:
  - accuracy
  - f1
  - macro_f1
  - roc_auc
  - mcc

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}")