🚀 クリップ (CLIP) モデルカード
CLIPは、コンピュータビジョンタスクにおけるロバスト性やゼロショット学習能力を研究するために開発されたモデルです。
🚀 クイックスタート
このモデルの使用には、以下のようなコードを使用できます。
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")
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 = model(**inputs)
logits_per_image = outputs.logits_per_image # これは画像とテキストの類似度スコアです
probs = logits_per_image.softmax(dim=1) # ソフトマックスを取ることでラベルの確率を得ることができます
✨ 主な機能
- ゼロショット学習による任意の画像分類タスクへの対応
- 画像とテキストの関連性を学習することで、画像とテキストの類似度を評価できる
📦 インストール
このモデルはtransformers
ライブラリを通じて使用できます。以下のコマンドでインストールできます。
pip install transformers
📚 ドキュメント
🔧 技術詳細
モデルの詳細
CLIPモデルは、OpenAIの研究者によって開発され、コンピュータビジョンタスクにおけるロバスト性の要因を研究するために作られました。また、ゼロショット学習による任意の画像分類タスクへの汎化能力をテストするためにも開発されました。ただし、一般的なモデルのデプロイを目的として開発されたわけではありません。CLIPのようなモデルをデプロイするには、研究者はまず特定のコンテキストにおけるモデルの能力を慎重に研究する必要があります。
モデルの日付
2021年1月
モデルのタイプ
このモデルは、画像エンコーダとしてViT - B/32 Transformerアーキテクチャを使用し、テキストエンコーダとしてマスク付き自己注意Transformerを使用しています。これらのエンコーダは、対照的な損失関数を通じて、(画像, テキスト)ペアの類似度を最大化するように学習されます。
元の実装には、ResNet画像エンコーダを使用するバリアントと、Vision Transformerを使用するバリアントの2種類がありました。このリポジトリにはVision Transformerを使用したバリアントが含まれています。
データ
このモデルは、公開されている画像キャプションデータで学習されました。これは、いくつかのウェブサイトをクロールし、YFCC100Mなどの一般的に使用される既存の画像データセットを組み合わせることで行われました。データの大部分はインターネットのクロールから得られています。これは、データがインターネットに最も接続されている人々や社会をより代表しており、先進国や若い男性ユーザーに偏っていることを意味します。
データの使命
このデータセットを構築する目的は、コンピュータビジョンタスクにおけるロバスト性と汎化能力をテストすることでした。そのため、主に公開されているインターネット上のさまざまなデータソースから大量のデータを収集することに重点が置かれました。データはほとんど介入しない方法で収集されましたが、過度に暴力的な画像や成人向けの画像を禁止するポリシーがあり、そのようなコンテンツをフィルタリングできるウェブサイトのみをクロールしました。このデータセットは、商業的なモデルやデプロイされたモデルの基礎として使用することを意図しておらず、公開する予定もありません。
性能と制限
性能
CLIPの性能は、OCRからテクスチャ認識、細粒度分類まで、さまざまなコンピュータビジョンデータセットの幅広いベンチマークで評価されています。論文では、以下のデータセットでのモデルの性能が記載されています。
- Food101
- CIFAR10
- CIFAR100
- Birdsnap
- SUN397
- Stanford Cars
- FGVC Aircraft
- VOC2007
- DTD
- Oxford - IIIT Pet dataset
- Caltech101
- Flowers102
- MNIST
- SVHN
- IIIT5K
- Hateful Memes
- SST - 2
- UCF101
- Kinetics700
- Country211
- CLEVR Counting
- KITTI Distance
- STL - 10
- RareAct
- Flickr30
- MSCOCO
- ImageNet
- ImageNet - A
- ImageNet - R
- ImageNet Sketch
- ObjectNet (ImageNet Overlap)
- Youtube - BB
- ImageNet - Vid
制限
CLIPとその分析にはいくつかの制限があります。CLIPは現在、細粒度分類や物体のカウントなどの特定のタスクに苦戦しています。また、公平性とバイアスに関する問題も提起しており、これについては論文で議論されており、次のセクションでも簡単に触れられています。さらに、CLIPをテストするアプローチにも重要な制限があります。多くの場合、線形プローブを使用してCLIPの性能を評価しており、線形プローブがモデルの性能を過小評価する可能性があるという証拠があります。
バイアスと公平性
CLIPの性能とそれが示す特定のバイアスは、クラスの設計や含めるカテゴリと除外するカテゴリの選択に大きく依存することがわかりました。Fairfaceの人物画像を犯罪関連および非ヒト動物のカテゴリに分類することで、CLIPによる特定の種類の侮辱のリスクをテストしました。人種と性別に関して大きな格差が見られました。さらに、これらの格差はクラスの構築方法によって変化することがわかりました。(詳細は論文の「広範な影響」のセクションに記載されています。)
また、Fairfaceデータセットを使用して、性別、人種、年齢の分類におけるCLIPの性能をテストしました。(デフォルトでは、Fairfaceデータセットで構築された人種カテゴリを使用しています。) その結果、性別分類においてすべての人種で96%を超える精度が得られ、「中東人」が最も高い精度(98.4%)で、「白人」が最も低い精度(96.5%)でした。さらに、人種分類では平均約93%、年齢分類では約63%の精度が得られました。性別、人種、年齢の分類や侮辱の害をテストするための評価を行ったのは、単にモデルの性能を評価し、潜在的なリスクを明らかにするためであり、そのようなタスクを支持することを示すものではありません。
📄 ライセンス
モデルカードは、公式のCLIPリポジトリから取得して修正されたものです。詳細はこちらを参照してください。
💡 使用上の注意
⚠️ 重要提示
このモデルは一般的なデプロイを目的として開発されていないため、特定のコンテキストでの使用に際しては、慎重にモデルの能力を評価する必要があります。また、このモデルは英語以外の言語での訓練や評価が行われていないため、英語の使用ケースに限定することを推奨します。
💡 使用建议
モデルの使用に関する質問やコメントは、このGoogleフォームを使用して送信してください。