Saiji-Toxic-v2

日本語の配信コメント向けに追加学習した、約1.6億パラメータのマルチラベル分類モデルです。

Toxic-v2 https://huggingface.co/j-llm/toxic_v2をベースに、通常コメントの誤検知を抑えるよう調整しました。

人手評価1,000件において、元モデルの理由別削除ルールを適用した場合の誤検知は 54件から17件 に減少しました。一方、見逃しは14件から17件に増加しています。

誤検知の削減を目的とした実験モデルであり、自動削除への利用には用途別の検証が必要です。

モデル概要

項目 内容
ベースモデル ku-nlp/deberta-v3-base-japanese
追加学習元 j-llm/toxic_v2
パラメータ数 約1.6億
タスク マルチラベル分類
出力 10ラベルのsigmoidスコア
入力 コメント本文1件
前処理 NFKC正規化
最大入力長 128トークン
ライセンス表示 Apache-2.0

出力ラベル:

toxicity / harassment / obscene / discrimination / threat / spoiler / instruction / pigeon / self_promotion / spam

元モデルのラベル定義を引き継いでいます。toxicity は罵倒に限らず、配信で表示したくないコメント全般を対象とする総合ラベルです。discrimination には元モデルの方針により、中立的な政治発言も含まれます。

出力スコアは校正済みの確率ではありません。 また、10ラベルすべてについて個別の精度検証を行ったものではありません。

評価結果

ブラインド評価

学習と過去の評価で使用した正規化本文、および学習配信を除外した1,000件を、人がモデル判定を見ずに評価しました。

評価データ 件数
合計 1,000
safe 982
unsafe 18
VTuber配信 627
実写配信 373
配信数 224

過去に評価した配信の未使用コメントは含みます。本文重複を除いた条件付きサンプルであり、実配信における有害コメントの発生率を推定するものではありません。

既存の削除ルールによる比較

元モデルの理由別削除ルールを両モデルに適用した結果です。

モデル 誤検知(FP) 見逃し(FN)
Toxic-v2 54 14
Saiji-Toxic-v2 17 17

適用ルール:

  • harassment / threat / discrimination / obscene:0.6以上
  • spoiler / self_promotion / spam:0.7以上

上記のいずれかを満たした場合に削除対象とします。pigeon、instruction、toxicity 単独では削除しません。

個別最適化閾値による比較

先頭5ラベルの最大スコアを使ってsafe / unsafeを判定しています。

各モデルの閾値は、別の旧人手評価387件でF1が最大になるよう選び、新規1,000件の評価前に固定しました。

モデル 閾値 FP FN F1
Toxic-v2 0.00328636 495 2 0.060
Saiji-Toxic-v2 0.00503922 59 9 0.209
Luna — 21 12 0.267

共通閾値0.5での比較:

モデル FP FN
Toxic-v2 201 9
Saiji-Toxic-v2 9 17

本モデルでは誤検知が大きく減少していますが、見逃しとのトレードオフがあります。

見逃しを優先する用途において、元モデルより優れているとは限りません。

これらは同一の1,000件に対する複数ルールの分析結果です。ラベル別の正解データはなく、ラベル別精度は未検証です。推奨閾値も確定していません。

使用方法

Transformersから読み込み、各ラベルのsigmoidスコアを取得できます。

import unicodedata
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_dir = "j-llm/Saiji-toxic_v2"  

tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForSequenceClassification.from_pretrained(model_dir).eval()

text = unicodedata.normalize("NFKC", "今日も配信ありがとう")
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128)

with torch.inference_mode():
    scores = model(**inputs).logits.sigmoid()[0].tolist()

print({model.config.id2label[i]: s for i, s in enumerate(scores)})

出力されたスコアをそのまま削除判定に利用することは推奨しません。用途に応じた閾値設定と検証を行ってください。

学習方法

Toxic-v2から、2段階で追加学習しました。

段階 学習件数 エポック 学習率
初段 10,000 1 1e-5
短文補強 7,396 1 2e-6

データ構成:

段階 safe unsafe・短い煽り
初段 9,771 229
短文補強 7,320 76

先頭5ラベル(toxicity、harassment、obscene、discrimination、threat)の最大logitを、主にLunaによるsafe / unsafe判定に合わせて学習しました。

残る5ラベルについては、元モデルのスコアを補助損失で維持しています。

短文補強の有害率約1.03%は、別の自然頻度5,000件へのLuna判定を参考に設定したもので、母集団の人手確定率ではありません。

Lunaは判定時にVTuberと実写配信者の区分を参照しましたが、本モデルはコメント本文のみを入力します。

公開する重みは短文補強のstep 232です。

制限事項

  • 性的隠語、崩し表記、短い煽り、文脈依存のコメントを見逃す場合があります。
  • 通常のスタンプへの過剰反応を抑える一方、削除したい定型ネタを通す場合があります。
  • コメント本文を個別に処理するため、投稿履歴に基づく連投判定には対応しません。
  • 配信者ごとの運用方針と教師モデルの判断基準は必ずしも一致しません。
  • ラベル別の精度は未検証で、推奨閾値も未確定です。
  • NPU / OpenVINO変換版は含みません。

元モデルの評価値を本モデルの評価値として流用しないでください。

ライセンスと出自

本パッケージはApache-2.0としての公開を意図しています。

原初モデルは ku-nlp/deberta-v3-base-japanese です。Toxic-v2から行った追加学習の内容を本カードに記載しています。

Toxic-v2の公開ライセンスについては提供者の説明に基づいています。原初モデルがApache-2.0であることだけで、派生モデルのライセンスが自動的に確定するわけではありません。元配布物に別途NOTICEや帰属表示がある場合は、公開前に引き継いでください。

また、元モデルの学習データには複数のライセンスが含まれると提供者のカードに記載されています。本モデルのライセンス表示は、学習データそのものの再配布許可を意味しません。

本パッケージには、学習データ、コメント本文、ユーザー識別情報、学習再開状態を含めていません。

Downloads last month
24
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for j-llm/Saiji-toxic_v2

Finetuned
j-llm/toxic_v2
Finetuned
(1)
this model