| --- |
| language: |
| - ru |
| license: mit |
| base_model: ai-forever/ru-en-RoSBERTa |
| tags: |
| - text-classification |
| - toxicity |
| - russian |
| - roberta |
| - customer-support |
| metrics: |
| - accuracy |
| - f1 |
| - roc_auc |
| pipeline_tag: text-classification |
| --- |
| |
| # 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). |
|
|