🚀 模型卡片:CLIP
CLIP 模型由 OpenAI 的研究人員開發,用於研究計算機視覺任務中的魯棒性因素,以及測試模型以零樣本方式泛化到任意圖像分類任務的能力。它並非用於通用模型部署,研究人員在部署類似 CLIP 的模型時,需先仔細研究其在特定場景中的能力。
🚀 快速開始
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch16")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch16")
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) # 我們可以使用 softmax 函數得到標籤概率
✨ 主要特性
- 研究計算機視覺任務中的魯棒性因素。
- 測試模型以零樣本方式泛化到任意圖像分類任務的能力。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
基礎用法
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch16")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch16")
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) # 我們可以使用 softmax 函數得到標籤概率
📚 詳細文檔
🔧 技術細節
模型日期
2021 年 1 月
模型類型
基礎模型使用 ViT - B/16 Transformer 架構作為圖像編碼器,並使用掩碼自注意力 Transformer 作為文本編碼器。這些編碼器通過對比損失進行訓練,以最大化(圖像,文本)對的相似度。
原始實現有兩種變體:一種使用 ResNet 圖像編碼器,另一種使用視覺 Transformer。本倉庫使用的是視覺 Transformer 變體。
數據
模型在公開可用的圖像 - 文本數據上進行訓練。這是通過抓取一些網站和使用常用的現有圖像數據集(如 YFCC100M)相結合的方式完成的。大部分數據來自互聯網抓取,這意味著數據更能代表與互聯網連接最緊密的人群和社會,往往偏向於更發達的國家以及年輕的男性用戶。
數據使命聲明
構建此數據集的目標是測試計算機視覺任務中的魯棒性和泛化能力。因此,重點是從不同的公開互聯網數據源收集大量數據。數據收集大多采用非干預方式,但僅抓取有政策禁止過度暴力和成人圖像的網站,並允許過濾此類內容。不打算將此數據集用作任何商業或部署模型的基礎,也不會發布該數據集。
性能
已在廣泛的計算機視覺數據集基準測試中評估了 CLIP 的性能,涵蓋從 OCR 到紋理識別再到細粒度分類等各種任務。論文描述了模型在以下數據集上的性能:
- Food101
- CIFAR10
- CIFAR100
- Birdsnap
- SUN397
- Stanford Cars
- FGVC Aircraft
- VOC2007
- DTD
- Oxford - IIIT Pet 數據集
- 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 的性能,有證據表明線性探針可能低估模型性能。
偏差和公平性
發現 CLIP 的性能及其表現出的特定偏差在很大程度上取決於類別設計以及對包含和排除類別的選擇。通過將 Fairface 中的人物圖像分類到與犯罪相關和非人類動物類別中,測試了 CLIP 存在的某些詆譭風險,發現了基於種族和性別的顯著差異。此外,這些差異可能會根據類別的構建方式而改變(詳細內容見論文的更廣泛影響部分)。
還使用 Fairface 數據集測試了 CLIP 在性別、種族和年齡分類上的性能(默認使用 Fairface 數據集中構建的種族類別),以評估不同人群的性能質量。發現性別分類在所有種族中的準確率 >96%,其中“中東”準確率最高(98.4%),“白人”準確率最低(96.5%)。此外,CLIP 在種族分類上的平均準確率約為 93%,在年齡分類上約為 63%。使用評估來測試性別、種族和年齡分類以及詆譭危害,只是為了評估模型在不同人群中的性能並發現潛在風險,而不是為了表明對這些任務的認可或熱衷。
📄 許可證
文檔未提及許可證信息,故跳過此章節。
💬 反饋
發送關於模型的問題或評論的地址
請使用 此 Google 表單