Russian Support Toxicity Classifier
Модель для бинарной классификации токсичности русскоязычных текстов, дообученная на основе ai-forever/ru-en-RoSBERTa.
Описание
Модель предназначена для автоматического обнаружения токсичных, грубых или пассивно-агрессивных сообщений в контексте службы технической поддержки. Классифицирует текст на два класса:
- 0 — нетоксичный (нейтральный, вежливый)
- 1 — токсичный (грубость, оскорбления, агрессия)
Архитектура
- Базовая модель: ai-forever/ru-en-RoSBERTa (RoBERTa-large, 24 слоя, 1024 hidden dim)
- Подход: Transfer Learning с заморозкой весов энкодера
- Обучается только классификационная голова (RobertaClassificationHead)
- Dropout: 0.2, Optimizer: AdamW, LR: 2e-4
Метрики на тестовой выборке
| Метрика | Значение |
|---|---|
| Accuracy | 0.9667 |
| Precision | 0.9654 |
| Recall | 0.9682 |
| F1-score | 0.9668 |
| ROC AUC | 0.9956 |
| MCC | 0.9335 |
Данные
Датасет: support-toxicity-classification-ru
- Train: 11064 записей (50/50 по классам)
- Val: 1383 записей
- Test: 1383 записей
Источники:
- Токсичный класс: s-nlp/ru_paradetox (ru_toxic_comment)
- Нетоксичный класс: s-nlp/ru_paradetox (ru_neutral_comment), MTS-AI-SearchSkill/MTSBerquad, SetFit/amazon_massive_intent_ru-RU
Производительность инференса
- GPU (T4): ~76 мс на 1 запрос
- CPU: ~1800 мс на 1 запрос
- Ускорение GPU/CPU: x23.6
Пример использования
from transformers import pipeline
classifier = pipeline( "text-classification", model="YOUR_USERNAME/support-toxicity-classifier-ru" )
result = classifier("Пожалуйста, попробуйте перезагрузить устройство") print(result)
result = classifier("Да пошел ты, надоел уже со своими вопросами") print(result)
Ограничения
- Модель обучена преимущественно на интернет-комментариях, поэтому некоторые формы скрытой пассивной агрессии могут распознаваться с пониженной уверенностью (пограничные случаи около порога 0.5).
- Рекомендуемый порог классификации: 0.5 (можно снизить до 0.4 для повышения Recall в продакшене за счёт роста FP).
- Downloads last month
- 16