ToxicLord

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
68
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Egor-3926/ToxicLord

Finetuned
(2)
this model

Evaluation results

  • Точность on Внутренний тестовый набор токсичности
    self-reported
    0.969
  • Precision токсичного класса on Внутренний тестовый набор токсичности
    self-reported
    0.931
  • Recall токсичного класса on Внутренний тестовый набор токсичности
    self-reported
    0.905
  • F1 токсичного класса on Внутренний тестовый набор токсичности
    self-reported
    0.918
  • Macro F1 on Внутренний тестовый набор токсичности
    self-reported
    0.949