🚀 モデルカード: Safe-CLIP
Safe-CLIPは、論文 Safe-CLIP: Removing NSFW Concepts from Vision-and-Language Models で紹介された、AIアプリケーションにおけるNSFW(Not Safe For Work)コンテンツに関連するリスクを軽減するために設計された、強化されたビジョンと言語のモデルです。
CLIPモデルをベースに、Safe-CLIPは言語的概念と視覚的概念の関連付けに適するようにファインチューニングされており、テキストから画像へ、および画像からテキストへの検索と生成タスクにおいて、より安全な出力を保証します。
🚀 クイックスタート
Transformersでの使用方法
Transformersでの使用方法は以下のコードスニペットを参照してください。
>>> from transformers import CLIPModel
>>> model_id = "aimagelab/safeclip_vit-h_14"
>>> model = CLIPModel.from_pretrained(model_id)
✨ 主な機能
Safe-CLIPは、AIアプリケーションにおけるNSFWコンテンツのリスクを軽減し、テキストと画像の検索および生成タスクで安全な出力を提供します。また、様々なビジョンと言語のモデルとの互換性が高く、下流のタスクでの利用が容易です。
📚 ドキュメント
NSFWの定義
この研究では、この論文 から着想を得て、NSFWを個人にとって不適切、不快、または有害と考えられる有限かつ固定された概念のセットと定義しています。これらの概念は、憎悪、嫌がらせ、暴力、自傷行為、性的、衝撃的、および違法行為 の7つのカテゴリに分類されます。
モデルの詳細
Safe-CLIPは、CLIP モデルをベースにファインチューニングされたバージョンです。モデルのファインチューニングは、同じ 論文 で紹介されたViSU(Visual Safe and Unsafe)データセットを使用して行われました。
ViSUは、安全な文とNSFW文のペア、および対応する安全な画像とNSFW画像の四重奏を含んでいます。ViSUデータセットのテキスト部分は、HuggingFaceの ViSU-Text ページで公開されています。データセットのビジョン部分は、極めて不適切な画像が含まれており、個人に危害や苦痛を引き起こす可能性があるため、公開しないことにしました。そのため、この部分のデータセットを公開することは責任がなく、AI技術の安全で倫理的な使用の原則に反することになります。最終的なモデルは、不適切なコンテンツを埋め込み空間の安全な領域にリダイレクトし、安全な埋め込みの整合性を維持します。
バリエーション Safe-CLIPには4つのバージョンがあり、I2TおよびT2I生成タスクに使用される最も人気のあるビジョンと言語のモデル間の互換性を向上させています。詳細は次の表に示されています。
モデル名 |
StableDiffusion互換性 |
LLaVA互換性 |
safe-CLIP ViT-L-14 |
1.4 |
llama-2-13b-chat-lightning-preview |
safe-CLIP ViT-L-14-336px |
- |
1.5 - 1.6 |
safe-CLIP ViT-H-14 |
- |
- |
safe-CLIP SD 2.0 |
2.0 |
- |
モデル公開日 2024年7月9日。
モデル、トレーニングの詳細、データセット、および評価に関する詳細情報については、論文 を参照してください。また、下流タスクのサンプルコードは、この論文のリポジトリ で見つけることができます。
アプリケーション
Safe-CLIPは、安全性と適切性が重要な様々なアプリケーションで使用できます。これには、クロスモーダル検索、テキストから画像への生成、および画像からテキストへの生成が含まれます。事前学習された生成モデルとシームレスに連携し、意味的なコンテンツの品質を損なうことなく、より安全な代替手段を提供します。
下流タスクの使用
Safe-CLIPの公式 リポジトリ には、より多くのサンプルコードがあります。
ゼロショット分類の例
>>> from transformers import CLIPModel, CLIPProcessor
>>> from PIL import Image
>>> model_id = "aimagelab/safeclip_vit-h_14"
>>> model = CLIPModel.from_pretrained(model_id)
>>> processor = CLIPProcessor.from_pretrained("laion/CLIP-ViT-H-14-laion2B-s32B-b79K")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)
>>> inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
>>> outputs = clip(**inputs)
>>> logits_per_image = outputs.logits_per_image
>>> probs = logits_per_image.softmax(dim=1)
📄 ライセンス
このモデルは、CC BY-NC 4.0ライセンスの下で公開されています。
引用
このモデルを引用する場合は、以下のBibTeXを使用してください。
@article{poppi2024removing,
title={{Safe-CLIP: Removing NSFW Concepts from Vision-and-Language Models}},
author={Poppi, Samuele and Poppi, Tobia and Cocchi, Federico and Cornia, Marcella and Baraldi, Lorenzo and Cucchiara, Rita},
journal={arXiv preprint arXiv:2311.16254},
year={2024}
}