language:
- ru license: cc-by-4.0 library_name: transformers
RuBERT Tiny Toxicity Regression
Модель для оценки токсичности русскоязычных текстов по шкале от -5 до +3.
Модель была получена путем дообучения cointegrated/rubert-tiny-toxicity на размеченном корпусе русскоязычных интернет-комментариев.
Что делает модель
Модель предсказывает числовую оценку токсичности текста:
- -5 – максимально токсичный комментарий;
- 0 – нейтральный комментарий;
- +3 – позитивный комментарий.
Обучающие данные
Модель была обучена на корпусе из 101 966 русскоязычных интернет-комментариев.
Источники данных:
- Russian Language Toxic Comments (Kaggle);
- Toxic Russian Comments from B21176df (Kaggle);
- YouTube comments (Russian language) (Kaggle);
- Toxic Russian Comments Dataset (Hugging Face Datasets).
Комментарии были очищены от эмодзи, цифр и лишних символов, после чего использовались для обучения модели.
Обучающие данные
Модель была дообучена на выборке из 1016 уникальных русскоязычных интернет-комментариев, размеченных по шкале токсичности от -5 до +3.
Обучающая выборка была сформирована на основе двух источников:
- 171 комментарий, оценённый женщинами-респондентками в рамках анкетирования (в качестве итоговой метки использовалась медианная оценка);
- 912 комментариев, размеченных независимым экспертом.
При объединении источников дублирующиеся комментарии удалялись. Для совпадающих текстов сохранялись оценки, полученные в ходе анкетирования. Итоговый датасет содержал 1016 уникальных комментариев.
Для снижения гендерного смещения из обучающих данных были исключены оценки, демонстрировавшие систематические различия в восприятии токсичности гендерно маркированных оскорблений.
Качество модели
Результаты на валидационной выборке:
- MAE = 0.957
- R² = 0.68
В среднем предсказание модели отличается от экспертной оценки менее чем на один балл шкалы.
Использование
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "ВАШ_НИК/НАЗВАНИЕ_МОДЕЛИ"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
text = "Ты полный идиот"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
score = model(**inputs).logits.item()
print(score)
Ограничения
Модель обучалась на русскоязычных интернет-комментариях и может работать менее точно на текстах других жанров.
Связанный датасет
Для обучения использовался корпус гендерно маркированной инвективной лексики русского языка.
- Downloads last month
- 35