ToxicLord v1
ToxicLord v1 - русскоязычная модель классификации токсичности для чат-модерации. Модель классифицирует короткие сообщения как clean или toxic и настроена под стиль Telegram-чатов.
Модель является fine-tune версии deepvk/deberta-v1-base для задачи бинарной классификации токсичности на русском языке.
Модель предназначена для помощи в модерации. Она может ошибаться, поэтому для реального использования рекомендуется логирование, ручная проверка спорных случаев и подбор порога под конкретное сообщество.
Метки
0: clean
1: toxic
Рекомендуемый порог
Для осторожной Telegram-модерации лучше использовать вероятность токсичного класса, а не только argmax:
toxic, если P(toxic) >= 0.90
Метрики
Внутренний тестовый набор:
accuracy: 0.9689
precision_toxic: 0.9310
recall_toxic: 0.9052
f1_toxic: 0.9179
macro_f1: 0.9494
Внешние фиксированные тестовые выборки при пороге 0.90:
Обычный Telegram-чат: 2/500 срабатываний, 0.4%
Токсичная выборка: 364/500 срабатываний, 72.8%
Использование
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)
Примеры
Ниже приведены примеры, близкие к реальным коротким сообщениям из чатов. Явная нецензурная лексика в карточке модели не приводится, поэтому часть грубых слов заменена на нейтральные формулировки или скрыта. Итоговый результат зависит от выбранного порога и контекста сообщения.
Сообщение: Блин, я вообще ничего не понял
Ожидаемый класс: clean
Сообщение: Да мне всё равно, делайте как хотите
Ожидаемый класс: clean
Сообщение: Ну и зачем это было делать?
Ожидаемый класс: clean
Сообщение: Сам ты лох
Ожидаемый класс: toxic
Сообщение: Ты полный идиот
Ожидаемый класс: toxic
Сообщение: Иди отсюда, никто тебя тут не ждёт
Ожидаемый класс: toxic
Сообщение: У тебя синдром дауна
Ожидаемый класс: toxic
Сообщение: Даун
Ожидаемый класс: toxic
Обучающие данные
Модель дообучалась на смеси публичных русскоязычных датасетов токсичности и приватных модерационных разметок/исправлений.
Сырые обучающие данные, Telegram-логи, идентификаторы пользователей и приватные разметки вместе с моделью не распространяются.
Ограничения
- Модель оптимизирована для русскоязычных Telegram-чатов и может хуже работать на формальных текстах, длинных документах и других языках.
- Короткие оскорбления и токсичные ярлыки могут классифицироваться как токсичные даже без широкого контекста.
- Сарказм, цитаты, шутки, обсуждение правил и мета-комментарии могут распознаваться неверно.
- Модель не стоит использовать как единственный источник решения для необратимых наказаний.
Лицензия
Модель опубликована под лицензией cc-by-nc-nd-4.0.
Разрешено некоммерческое использование с указанием авторства. Коммерческое использование и распространение производных версий запрещены условиями лицензии.
- Downloads last month
- 69
Model tree for Egor-3926/ToxicLord
Base model
deepvk/deberta-v1-baseEvaluation results
- Точность on Внутренний тестовый набор токсичностиself-reported0.969
- Precision токсичного класса on Внутренний тестовый набор токсичностиself-reported0.931
- Recall токсичного класса on Внутренний тестовый набор токсичностиself-reported0.905
- F1 токсичного класса on Внутренний тестовый набор токсичностиself-reported0.918
- Macro F1 on Внутренний тестовый набор токсичностиself-reported0.949