モデル概要
このモデルは、 sonoisa/sentence-luke-japanese-base-lite をSNS上のコメントに人手で攻撃性評価を行ったデータセットでFine-tuningすることで作成しました。 学習に使用したデータセットを参照したい方は、記載の連絡先へ別途ご連絡ください。
本モデルは、NLP2024にて下記の発表で公開します。
- NLP2024 原稿: P2-10 ソーシャルメディア上の発話の攻撃性推定と会話補助
- その他、詳細情報: Github
Fine-tuning条件
- エポック数: 27エポック
- バッチサイズ: 16
- 最大トークン長: 256
- 学習率スケジューラ: transformers.get_linear_schedule_with_warmup
- ピーク学習率: 2e-5
- 最適化手法: Adam
- Dropout率: 0.1
- 損失関数: MSE Loss
- Re-initialize: 出力層から近い Transformer Encoder 1層
分類性能
- 2024/3/24: 記載に誤りがあったため修正いたしました。
Summary
評価指標 | スコア |
---|---|
F値_NOT | 71.3 % |
F値_GRY | 55.5 % |
F値_OFF | 61.8 % |
マクロ平均F値 | 62.9 % |
正解率 | 63.8 % |
Confusion matrix
正解ラベル \ 予測結果 | Not Offensive | Gray-area | Offensive |
---|---|---|---|
Not Offensive | 260 | 80 | 4 |
Gray-area | 110 | 169 | 41 |
Offensive | 15 | 40 | 81 |
使い方
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import numpy as np
tokenizer = AutoTokenizer.from_pretrained("studio-ousia/luke-japanese-base-lite")
model = AutoModelForSequenceClassification.from_pretrained("TomokiFujihara/luke-japanese-base-lite-offensiveness-estimation", trust_remote_code=True)
inputs = tokenizer.encode_plus(text, return_tensors='pt')
outputs = model(inputs['input_ids'], inputs['attention_mask']).detach().numpy()[0][:3]
minimum = np.min(outputs)
if minimum < 0:
outputs = outputs - minimum
score = outputs / np.sum(outputs)
print(f'攻撃的でない発言: {score[0]:.1%},\nグレーゾーンの発言: {score[1]:.1%},\n攻撃的な発言: {score[2]:.1%}')
連絡先
E-mail: tomoki.fujihara.p3@dc.tohoku.ac.jp
引用
@inproceedings{fujihara2024offensiveness,
title={ソーシャルメディア上の発話の攻撃性推定と会話補助},
author={藤原 知樹 and 伊藤 彰則 and 能勢隆},
booktitle={言語処理学会第30回年次大会発表論文集},
year={2024}
}
- Downloads last month
- 115
Inference API (serverless) does not yet support model repos that contain custom code.