---
license: cc-by-nc-nd-4.0
language:
- ru
library_name: transformers
pipeline_tag: text-classification
tags:
- toxicity-classification
- russian
- telegram
- moderation
- deberta
base_model: deepvk/deberta-v1-base
model-index:
- name: ToxicLord v1
results:
- task:
type: text-classification
name: Классификация текста
dataset:
name: Внутренний тестовый набор токсичности
type: private
metrics:
- type: accuracy
value: 0.968937125748503
name: Точность
- type: precision
value: 0.9309514251304697
name: Precision токсичного класса
- type: recall
value: 0.905152224824356
name: Recall токсичного класса
- type: f1
value: 0.9178705719374629
name: F1 токсичного класса
- type: f1
value: 0.9493585102268198
name: Macro F1
---
# ToxicLord v1
ToxicLord v1 - русскоязычная модель классификации токсичности для чат-модерации. Модель классифицирует короткие сообщения как `clean` или `toxic` и настроена под стиль Telegram-чатов.
Модель является fine-tune версии `deepvk/deberta-v1-base` для задачи бинарной классификации токсичности на русском языке.
Модель предназначена для помощи в модерации. Она может ошибаться, поэтому для реального использования рекомендуется логирование, ручная проверка спорных случаев и подбор порога под конкретное сообщество.
## Метки
```text
0: clean
1: toxic
```
## Рекомендуемый порог
Для осторожной Telegram-модерации лучше использовать вероятность токсичного класса, а не только `argmax`:
```text
toxic, если P(toxic) >= 0.90
```
## Метрики
Внутренний тестовый набор:
```text
accuracy: 0.9689
precision_toxic: 0.9310
recall_toxic: 0.9052
f1_toxic: 0.9179
macro_f1: 0.9494
```
Внешние фиксированные тестовые выборки при пороге `0.90`:
```text
Обычный Telegram-чат: 2/500 срабатываний, 0.4%
Токсичная выборка: 364/500 срабатываний, 72.8%
```
## Использование
```python
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_id = "Egor-3926/ToxicLord"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id)
model.eval()
text = "ты грубый и неприятный человек"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=192)
with torch.inference_mode():
probs = torch.softmax(model(**inputs).logits, dim=-1)[0]
clean_score = float(probs[0])
toxic_score = float(probs[1])
label = "toxic" if toxic_score >= 0.90 else "clean"
print(label, toxic_score)
```
## Примеры
Ниже приведены примеры, близкие к реальным коротким сообщениям из чатов. Явная нецензурная лексика в карточке модели не приводится, поэтому часть грубых слов заменена на нейтральные формулировки или скрыта. Итоговый результат зависит от выбранного порога и контекста сообщения.
```text
Сообщение: Блин, я вообще ничего не понял
Ожидаемый класс: clean
```
```text
Сообщение: Да мне всё равно, делайте как хотите
Ожидаемый класс: clean
```
```text
Сообщение: Ну и зачем это было делать?
Ожидаемый класс: clean
```
```text
Сообщение: Сам ты лох
Ожидаемый класс: toxic
```
```text
Сообщение: Ты полный идиот
Ожидаемый класс: toxic
```
```text
Сообщение: Иди отсюда, никто тебя тут не ждёт
Ожидаемый класс: toxic
```
```text
Сообщение: У тебя синдром дауна
Ожидаемый класс: toxic
```
```text
Сообщение: Даун
Ожидаемый класс: toxic
```
## Обучающие данные
Модель дообучалась на смеси публичных русскоязычных датасетов токсичности и приватных модерационных разметок/исправлений.
Сырые обучающие данные, Telegram-логи, идентификаторы пользователей и приватные разметки вместе с моделью не распространяются.
## Ограничения
- Модель оптимизирована для русскоязычных Telegram-чатов и может хуже работать на формальных текстах, длинных документах и других языках.
- Короткие оскорбления и токсичные ярлыки могут классифицироваться как токсичные даже без широкого контекста.
- Сарказм, цитаты, шутки, обсуждение правил и мета-комментарии могут распознаваться неверно.
- Модель не стоит использовать как единственный источник решения для необратимых наказаний.
## Лицензия
Модель опубликована под лицензией `cc-by-nc-nd-4.0`.
Разрешено некоммерческое использование с указанием авторства. Коммерческое использование и распространение производных версий запрещены условиями лицензии.