モデル概要
モデル特徴
モデル能力
使用事例
🚀 NSFWテキスト分類モデル
このモデルは、テキストを「safe」(適切)または「nsfw」(不適切)の2つのクラスに分類するために設計されており、コンテンツのモデレーションやフィルタリングアプリケーションに適しています。
🚀 クイックスタート
このモデルは、190,000のラベル付きテキストサンプルを含むデータセットを使用してトレーニングされており、「safe」と「nsfw」の2つのクラスに分類されます。モデルはDistilbert-baseモデルをベースに構築されており、F1スコアで0.974を達成しています。
モデルの直接読み込み
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("eliasalbouzidi/distilbert-nsfw-text-classifier")
model = AutoModelForSequenceClassification.from_pretrained("eliasalbouzidi/distilbert-nsfw-text-classifier")
パイプラインの使用
from transformers import pipeline
pipe = pipeline("text-classification", model="eliasalbouzidi/distilbert-nsfw-text-classifier")
✨ 主な機能
- テキストを「safe」または「nsfw」の2つのクラスに分類することができます。
- コンテンツのモデレーションやフィルタリングアプリケーションに適しています。
- Distilbert-baseモデルをベースに構築されており、高性能を発揮します。
📦 インストール
このモデルはHugging FaceのTransformersライブラリを使用しています。必要なライブラリをインストールするには、以下のコマンドを実行してください。
pip install transformers datasets torch
💻 使用例
基本的な使用法
from transformers import pipeline
pipe = pipeline("text-classification", model="eliasalbouzidi/distilbert-nsfw-text-classifier")
text = "A family hiking in the mountains"
result = pipe(text)
print(result)
📚 ドキュメント
モデルの説明
このモデルは、入力されたテキストを「safe」または「nsfw」の2つのクラスに分類します。テキストを入力として受け取り、2つのクラスに対する確率分布を出力します。最も確率の高いクラスが予測クラスとして選択されます。
- 開発者: Elias Al Bouzidi, Massine El Khader, Abdellah Oumida, Mohammed Sbaihi, Eliott Binard
- モデルタイプ: 60M
- 言語 (NLP): 英語
- ライセンス: apache-2.0
用途
このモデルは、コンテンツのモデレーションやフィルタリングのために、より大きなシステムに統合することができます。
トレーニングデータ
このテキスト分類モデルを微調整するためのトレーニングデータは、「safe」と「nsfw」の2つのクラスのいずれかでラベル付けされた大量のテキストコーパスで構成されています。データセットには合計190,000のサンプルが含まれており、以下のように分布しています。
- 117,000のサンプルが「safe」とラベル付けされています。
- 63,000のサンプルが「nsfw」とラベル付けされています。
このデータセットは、ウェブからデータをスクレイピングし、既存のオープンソースデータセットを利用して作成されました。データセットの大部分は、画像やシーンの説明で構成されています。主な目的は、拡散モデルがNSFWコンテンツを生成するのを防ぐことですが、他のモデレーション目的にも使用できます。
データセットにアクセスするには、以下のリンクを参照してください。 https://huggingface.co/datasets/eliasalbouzidi/NSFW-Safe-Dataset
トレーニングハイパーパラメータ
トレーニング中に使用されたハイパーパラメータは以下の通りです。
パラメータ | 値 |
---|---|
learning_rate | 1e-05 |
train_batch_size | 32 |
eval_batch_size | 32 |
seed | 42 |
optimizer | Adam (betas=(0.9,0.999), epsilon=1e-08) |
lr_scheduler_type | linear |
lr_scheduler_warmup_steps | 600 |
num_epochs | 3 |
mixed_precision_training | Native AMP |
トレーニング結果
トレーニング損失 | エポック | ステップ | 検証損失 | 正解率 | F1 | Fbeta 1.6 | 偽陽性率 | 偽陰性率 | 適合率 | 再現率 |
---|---|---|---|---|---|---|---|---|---|---|
0.3367 | 0.0998 | 586 | 0.1227 | 0.9586 | 0.9448 | 0.9447 | 0.0331 | 0.0554 | 0.9450 | 0.9446 |
0.0998 | 0.1997 | 1172 | 0.0919 | 0.9705 | 0.9606 | 0.9595 | 0.0221 | 0.0419 | 0.9631 | 0.9581 |
0.0896 | 0.2995 | 1758 | 0.0900 | 0.9730 | 0.9638 | 0.9600 | 0.0163 | 0.0448 | 0.9724 | 0.9552 |
0.087 | 0.3994 | 2344 | 0.0820 | 0.9743 | 0.9657 | 0.9646 | 0.0191 | 0.0367 | 0.9681 | 0.9633 |
0.0806 | 0.4992 | 2930 | 0.0717 | 0.9752 | 0.9672 | 0.9713 | 0.0256 | 0.0235 | 0.9582 | 0.9765 |
0.0741 | 0.5991 | 3516 | 0.0741 | 0.9753 | 0.9674 | 0.9712 | 0.0251 | 0.0240 | 0.9589 | 0.9760 |
0.0747 | 0.6989 | 4102 | 0.0689 | 0.9773 | 0.9697 | 0.9696 | 0.0181 | 0.0305 | 0.9699 | 0.9695 |
0.0707 | 0.7988 | 4688 | 0.0738 | 0.9781 | 0.9706 | 0.9678 | 0.0137 | 0.0356 | 0.9769 | 0.9644 |
0.0644 | 0.8986 | 5274 | 0.0682 | 0.9796 | 0.9728 | 0.9708 | 0.0135 | 0.0317 | 0.9773 | 0.9683 |
0.0688 | 0.9985 | 5860 | 0.0658 | 0.9798 | 0.9730 | 0.9718 | 0.0144 | 0.0298 | 0.9758 | 0.9702 |
0.0462 | 1.0983 | 6446 | 0.0682 | 0.9800 | 0.9733 | 0.9723 | 0.0146 | 0.0290 | 0.9756 | 0.9710 |
0.0498 | 1.1982 | 7032 | 0.0706 | 0.9800 | 0.9733 | 0.9717 | 0.0138 | 0.0303 | 0.9768 | 0.9697 |
0.0484 | 1.2980 | 7618 | 0.0773 | 0.9797 | 0.9728 | 0.9696 | 0.0117 | 0.0345 | 0.9802 | 0.9655 |
0.0483 | 1.3979 | 8204 | 0.0676 | 0.9800 | 0.9734 | 0.9742 | 0.0172 | 0.0248 | 0.9715 | 0.9752 |
0.0481 | 1.4977 | 8790 | 0.0678 | 0.9798 | 0.9731 | 0.9737 | 0.0170 | 0.0255 | 0.9717 | 0.9745 |
0.0474 | 1.5975 | 9376 | 0.0665 | 0.9782 | 0.9713 | 0.9755 | 0.0234 | 0.0191 | 0.9618 | 0.9809 |
0.0432 | 1.6974 | 9962 | 0.0691 | 0.9787 | 0.9718 | 0.9748 | 0.0213 | 0.0213 | 0.9651 | 0.9787 |
0.0439 | 1.7972 | 10548 | 0.0683 | 0.9811 | 0.9748 | 0.9747 | 0.0150 | 0.0254 | 0.9750 | 0.9746 |
0.0442 | 1.8971 | 11134 | 0.0710 | 0.9809 | 0.9744 | 0.9719 | 0.0118 | 0.0313 | 0.9802 | 0.9687 |
0.0425 | 1.9969 | 11720 | 0.0671 | 0.9810 | 0.9747 | 0.9756 | 0.0165 | 0.0232 | 0.9726 | 0.9768 |
0.0299 | 2.0968 | 12306 | 0.0723 | 0.9802 | 0.9738 | 0.9758 | 0.0187 | 0.0217 | 0.9692 | 0.9783 |
0.0312 | 2.1966 | 12892 | 0.0790 | 0.9804 | 0.9738 | 0.9731 | 0.0146 | 0.0279 | 0.9755 | 0.9721 |
0.0266 | 2.2965 | 13478 | 0.0840 | 0.9815 | 0.9752 | 0.9728 | 0.0115 | 0.0302 | 0.9806 | 0.9698 |
0.0277 | 2.3963 | 14064 | 0.0742 | 0.9808 | 0.9746 | 0.9770 | 0.0188 | 0.0199 | 0.9690 | 0.9801 |
0.0294 | 2.4962 | 14650 | 0.0764 | 0.9809 | 0.9747 | 0.9765 | 0.0179 | 0.0211 | 0.9705 | 0.9789 |
0.0304 | 2.5960 | 15236 | 0.0795 | 0.9811 | 0.9748 | 0.9742 | 0.0142 | 0.0266 | 0.9763 | 0.9734 |
0.0287 | 2.6959 | 15822 | 0.0783 | 0.9814 | 0.9751 | 0.9741 | 0.0134 | 0.0272 | 0.9775 | 0.9728 |
0.0267 | 2.7957 | 16408 | 0.0805 | 0.9814 | 0.9751 | 0.9740 | 0.0133 | 0.0274 | 0.9777 | 0.9726 |
0.0318 | 2.8956 | 16994 | 0.0767 | 0.9814 | 0.9752 | 0.9756 | 0.0154 | 0.0240 | 0.9744 | 0.9760 |
0.0305 | 2.9954 | 17580 | 0.0779 | 0.9815 | 0.9753 | 0.9751 | 0.0146 | 0.0251 | 0.9757 | 0.9749 |
最も高いF-beta1.6スコアを持つチェックポイントが選択されました。
フレームワークのバージョン
- Transformers 4.40.1
- Pytorch 2.3.0+cu121
- Datasets 2.19.0
- Tokenizers 0.19.1
適用範囲外の使用
このモデルは、違法行為に使用してはなりません。
🔧 技術詳細
このモデルはDistilbert-baseモデルをベースに構築されており、大量のラベル付きテキストデータを使用してトレーニングされています。トレーニングデータは、ウェブからスクレイピングされたデータと既存のオープンソースデータセットを組み合わせて作成されています。
モデルの性能を向上させるために、入力テキストを前処理することが必要です。前処理関数については、以下のスペースのapp.pyファイルを参照してください。 https://huggingface.co/spaces/eliasalbouzidi/distilbert-nsfw-text-classifier
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で公開されています。
バイアス、リスク、および制限
このモデルは、使用されたトレーニングデータに基づいてバイアスを示す可能性があります。英語以外の言語で書かれたテキストに対しては、性能が低下する可能性があります。また、皮肉や皮肉、または他の比喩的な表現に対しては苦労する可能性があります。モデルは、偽陽性または偽陰性を生成する可能性があり、これによりテキストの誤分類が生じる可能性があります。
推奨事項
ユーザーは、モデルの制限とバイアスを認識し、それに応じて使用する必要があります。また、偽陽性と偽陰性を処理する準備をする必要があります。特定の下流タスクに対してモデルを微調整し、関連するデータセットでその性能を評価することをお勧めします。
お問い合わせ
ご質問やフィードバックがある場合は、eliasalbouzidi@gmail.comまでお問い合わせください。








