英文

基于ByT5-base的仇恨言论检测(针对推文)

ByT5 tweets hate speech detection 数据集上进行基于序列分类的微调。

ByT5 - Base ?的细节

ByT5是 Google's T5 的无标记版本,基本遵循 MT5 的架构。ByT5只是在 mC4 上进行了预训练,不包括任何有监督的训练,平均遮罩长度为20个UTF-8字符。因此,在使用该模型进行下游任务之前,需要进行微调。ByT5在处理噪声文本数据方面表现特别出色,例如google/byt5-base在 TweetQA 上明显优于 mt5-base 。论文: ByT5: Towards a token-free future with pre-trained byte-to-byte models 作者:Linting Xue,Aditya Barua,Noah Constant,Rami Al-Rfou,Sharan Narang,Mihir Kale,Adam Roberts,Colin Raffel

下游任务(文本生成的序列分类) - 数据集?的详细信息

tweets_hate_speech_detection

该任务的目标是检测推文中的仇恨言论。为了简单起见,我们说如果推文带有种族主义或性别歧视情绪,它就包含仇恨言论。因此,任务是将种族主义或性别歧视的推文与其他推文进行分类。

具体而言,给定一组推文和标签的训练样本,其中标签'1'表示推文是种族主义/性别歧视的,标签'0'表示推文不是种族主义/性别歧视的,您的目标是在给定的测试数据集上预测标签。

  • 数据实例:

数据集包含一个标签,表示推文是否包含仇恨言论。

{'label': 0,  # not a hate speech
 'tweet': ' @user when a father is dysfunctional and is so selfish he drags his kids into his dysfunction.   #run'}
  • 数据字段:

label: 1-仇恨言论,0-非仇恨言论

tweet:推文的内容,以字符串形式呈现

  • 数据拆分:

数据包含31962个条目的训练数据

测试集度量?

我们创建了一个有代表性的测试集,占所有条目的5%。

数据集非常不平衡,我们得到了79.8的F1分数

模型运行情况?

git clone https://github.com/huggingface/transformers.git
pip install -q ./transformers
from transformers import AutoTokenizer, T5ForConditionalGeneration

ckpt = 'Narrativa/byt5-base-tweet-hate-detection'

tokenizer = AutoTokenizer.from_pretrained(ckpt)
model = T5ForConditionalGeneration.from_pretrained(ckpt).to("cuda")

def classify_tweet(tweet):

    inputs = tokenizer([tweet], padding='max_length', truncation=True, max_length=512, return_tensors='pt')
    input_ids = inputs.input_ids.to('cuda')
    attention_mask = inputs.attention_mask.to('cuda')
    output = model.generate(input_ids, attention_mask=attention_mask)
    return tokenizer.decode(output[0], skip_special_tokens=True)
    
    
classify_tweet('here goes your tweet...')

创建者: Narrativa

Narrativa简介:自然语言生成(NLG)|基于机器学习的平台Gabriele构建和部署自然语言解决方案。#NLG #AI