Paligemma 3b Ft Cococap 224
PaliGemma是一款多功能輕量級視覺語言模型(VLM),支持多語言輸入輸出,適用於多種視覺語言任務。
下載量 209
發布時間 : 5/13/2024
模型概述
PaliGemma基於開放組件構建,結合了SigLIP視覺模型和Gemma語言模型,能夠處理圖像和短視頻字幕、視覺問答、文本閱讀、目標檢測和分割等任務。
模型特點
多功能性
能夠處理多種視覺語言任務,如問答、字幕生成、分割等。
多語言支持
支持多種語言的輸入和輸出。
輕量級設計
模型參數相對較少,便於在不同設備上進行研究和應用。
模型能力
圖像字幕生成
視覺問答
文本閱讀
目標檢測
目標分割
使用案例
多媒體處理
圖像字幕生成
為圖像或短視頻生成多語言字幕。
生成準確描述圖像內容的字幕
視覺問答
回答關於圖像內容的自然語言問題。
提供準確的問題答案
計算機視覺
目標檢測
檢測圖像中的目標並輸出邊界框座標。
精確識別和定位圖像中的目標
目標分割
對圖像中的目標進行像素級分割。
生成精確的目標分割掩碼
🚀 PaliGemma模型卡片
PaliGemma是一款多功能輕量級視覺語言模型(VLM),它以圖像和文本作為輸入,並生成文本輸出,支持多語言。該模型適用於圖像和短視頻字幕、視覺問答、文本閱讀、目標檢測和目標分割等多種視覺語言任務。
🚀 快速開始
若要在Hugging Face上使用PaliGemma模型,您需要查看並同意Google的使用許可。請確保您已登錄Hugging Face,然後點擊下方按鈕,請求將立即得到處理。 [確認許可](javascript:void(0))
✨ 主要特性
- 多功能性:能夠處理多種視覺語言任務,如問答、字幕生成、分割等。
- 多語言支持:支持多種語言的輸入和輸出。
- 輕量級設計:模型參數相對較少,便於在不同設備上進行研究和應用。
📦 安裝指南
若要使用4位或8位精度自動運行推理,您需要安裝bitsandbytes
:
pip install bitsandbytes accelerate
💻 使用示例
基礎用法
在CPU上以默認精度(float32
)運行:
from transformers import AutoProcessor, PaliGemmaForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/paligemma-3b-mix-224"
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)
model = PaliGemmaForConditionalGeneration.from_pretrained(model_id).eval()
processor = AutoProcessor.from_pretrained(model_id)
# 指示模型用西班牙語創建字幕
prompt = "caption es"
model_inputs = processor(text=prompt, images=image, return_tensors="pt")
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
高級用法
在CUDA上以其他精度運行
from transformers import AutoProcessor, PaliGemmaForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/paligemma-3b-mix-224"
device = "cuda:0"
dtype = torch.bfloat16
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)
model = PaliGemmaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=dtype,
device_map=device,
revision="bfloat16",
).eval()
processor = AutoProcessor.from_pretrained(model_id)
# 指示模型用西班牙語創建字幕
prompt = "caption es"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
以4位/8位加載
from transformers import AutoProcessor, PaliGemmaForConditionalGeneration
from PIL import Image
import requests
import torch
from transformers import BitsAndBytesConfig
model_id = "google/paligemma-3b-mix-224"
device = "cuda:0"
dtype = torch.bfloat16
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg?download=true"
image = Image.open(requests.get(url, stream=True).raw)
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = PaliGemmaForConditionalGeneration.from_pretrained(
model_id, quantization_config=quantization_config
).eval()
processor = AutoProcessor.from_pretrained(model_id)
# 指示模型用西班牙語創建字幕
prompt = "caption es"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
📚 詳細文檔
模型信息
模型概述
PaliGemma受PaLI - 3啟發,基於開放組件(如SigLIP視覺模型和Gemma語言模型)構建。它由一個Transformer解碼器和一個視覺Transformer圖像編碼器組成,總共有30億個參數。
- 輸入:圖像和文本字符串,如為圖像添加字幕的提示或問題。
- 輸出:針對輸入生成的文本,如圖像字幕、問題答案、目標邊界框座標列表或分割碼字。
模型數據
- 預訓練數據集:PaliGemma在多個數據集的混合上進行預訓練,包括WebLI、CC3M - 35L、VQ²A - CC3M - 35L/VQG - CC3M - 35L、OpenImages和WIT。
- 數據責任過濾:為了在乾淨的數據上訓練模型,對WebLI應用了多種過濾方法,包括色情圖像過濾、文本安全過濾、文本毒性過濾、文本個人信息過濾等。
使用說明
PaliGemma是單輪視覺語言模型,不適合用於對話場景。通過使用任務前綴(如“detect”或“segment”),可以配置模型要解決的任務。預訓練模型經過訓練具備多種能力,但通常需要通過微調將其遷移到特定任務上。對於交互式測試,可以使用“mix”系列模型,這些模型已針對多種任務進行了微調。
實現信息
硬件
PaliGemma使用最新一代的張量處理單元(TPU)硬件(TPUv5e)進行訓練。
軟件
訓練使用了JAX、Flax、TFDS和big_vision
。
評估信息
為了驗證PaliGemma在各種學術任務上的可遷移性,對預訓練模型在每個任務上進行了微調,並訓練了混合模型。以下是不同分辨率下的評估結果:
混合模型(在多種遷移任務的混合上微調)
基準測試 | 指標(分割) | mix - 224 | mix - 448 |
---|---|---|---|
MMVP | 配對準確率 | 46.00 | 45.33 |
POPE | 準確率(隨機/流行/對抗) | 88.00 86.63 85.67 |
89.37 88.40 87.47 |
GQA | 準確率(測試) | 65.20 | 65.47 |
單任務(在單任務上微調)
由於表格內容較多,此處省略部分展示,詳細表格請參考原文檔。
📄 許可證
本模型遵循gemma許可協議。 使用條款
🔗 相關鏈接
- 模型頁面:PaliGemma
- 資源和技術文檔:
👥 作者
Clip Vit Large Patch14
CLIP是由OpenAI開發的視覺-語言模型,通過對比學習將圖像和文本映射到共享的嵌入空間,支持零樣本圖像分類
圖像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI開發的多模態模型,能夠理解圖像和文本之間的關係,支持零樣本圖像分類任務。
圖像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基於WebLi數據集預訓練的視覺語言模型,採用改進的sigmoid損失函數,優化了圖像-文本匹配任務。
圖像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI開發的多模態模型,通過對比學習將圖像和文本映射到共享的嵌入空間,實現零樣本圖像分類能力。
圖像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一個先進的視覺-語言預訓練模型,擅長圖像描述生成任務,支持條件式和非條件式文本生成。
圖像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一個統一的視覺-語言預訓練框架,擅長圖像描述生成任務,支持條件式和無條件式圖像描述生成。
圖像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一個基於Open X-Embodiment數據集訓練的開源視覺-語言-動作模型,能夠根據語言指令和攝像頭圖像生成機器人動作。
圖像生成文本
Transformers 英語

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款開源多模態聊天機器人,基於 LLaMA/Vicuna 微調,支持圖文交互。
圖像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
這是一個基於ViT和GPT2架構的圖像描述生成模型,能夠為輸入圖像生成自然語言描述。
圖像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一個視覺語言模型,結合了圖像編碼器和大型語言模型,用於圖像到文本的生成任務。
圖像生成文本
Transformers 英語

B
Salesforce
867.78k
359
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98