Paligemma 3b Ft Vqav2 448
PaliGemma是Google开发的轻量级视觉语言模型,结合图像理解和文本生成能力,支持多语言任务。
下载量 121
发布时间 : 5/12/2024
模型简介
基于448*448输入图像在VQAv2数据集上微调的3B参数视觉语言模型,接受图像和文本输入并生成文本输出,适用于视觉问答、图像描述等任务。
模型特点
多模态理解
同时处理图像和文本输入,实现跨模态语义理解
轻量级架构
仅30亿参数的紧凑设计,适合研究场景部署
任务前缀配置
通过'caption'等任务前缀灵活切换不同视觉语言任务
多精度支持
提供float32/bfloat16/float16及4-bit/8-bit量化版本
模型能力
视觉问答
多语言图像描述
目标检测
图像分割
跨模态推理
使用案例
视觉理解
多语言图像描述
生成西班牙语等语言的图像描述
示例输出:'Un auto azul estacionado frente a un edificio.'
视觉问答
回答关于图像内容的自然语言问题
在VQAv2数据集上微调
工业应用
目标检测
通过'detect'前缀识别图像中的物体位置
输出目标框坐标列表
文档分析
理解包含文字的图像内容
🚀 PaliGemma模型卡片
PaliGemma是一款多功能轻量级视觉语言模型(VLM),它结合图像和文本输入,输出文本结果,支持多种语言。该模型可在多种视觉语言任务中进行微调,适用于研究和特定任务的应用。
🚀 快速开始
✨ 主要特性
- 多功能性:受PaLI - 3启发,基于开放组件构建,可处理多种视觉语言任务。
- 多语言支持:支持多种语言的输入和输出。
- 可微调性:适合在特定视觉语言任务上进行微调。
📦 安装指南
若要使用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上以bfloat16
精度运行模型:
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是一款多功能轻量级视觉语言模型(VLM),它结合图像和文本输入,输出文本结果,支持多种语言。该模型适用于图像和短视频字幕、视觉问答、文本阅读、目标检测和目标分割等多种视觉语言任务。
模型架构
PaliGemma由Transformer解码器和视觉Transformer图像编码器组成,共有30亿个参数。文本解码器从Gemma - 2B初始化,图像编码器从SigLIP - So400m/14初始化。
输入和输出
- 输入:图像和文本字符串,如为图像添加字幕的提示或问题。
- 输出:对输入的响应生成的文本,如图像的字幕、问题的答案、目标边界框坐标列表或分割码字。
模型数据
预训练数据集
PaliGemma在以下数据集的混合上进行预训练:
- WebLI:WebLI (Web Language Image)是一个基于公共网络构建的网络规模多语言图像 - 文本数据集。
- CC3M - 35L:从网页中精心挑选的英语图像 - 替代文本对,并翻译成34种其他语言。
- VQ²A - CC3M - 35L/VQG - CC3M - 35L:VQ2A - CC3M的一个子集,翻译成与CC3M - 35L相同的34种其他语言。
- OpenImages:通过手工规则在[OpenImages数据集]上生成的检测和目标感知问答。
- WIT:从维基百科收集的图像和文本。
数据责任过滤
为了在干净的数据上训练PaliGemma,对WebLI应用了以下过滤器:
- 色情图像过滤:移除被认为具有色情性质的图像。
- 文本安全过滤:识别并过滤与不安全文本配对的图像。
- 文本毒性过滤:使用Perspective API识别并过滤与被认为具有侮辱性、淫秽、仇恨或其他毒性的文本配对的图像。
- 文本个人信息过滤:使用Cloud Data Loss Prevention (DLP) API过滤某些个人信息和其他敏感数据。
- 其他方法:根据内容质量和安全性进行过滤。
实现信息
硬件
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 |
单任务(在单任务上微调)
具体结果请参考原文档中的表格。
伦理和安全
评估方法
评估方法包括结构化评估和相关内容政策的内部红队测试。对模型进行了与伦理和安全相关的多个类别的评估,包括:
- 对涵盖儿童安全、内容安全和代表性危害的提示进行人工评估。
- 图像到文本基准评估:针对相关学术数据集进行基准测试。
评估结果
- 伦理和安全评估的人工评估结果在可接受的阈值内,符合内部政策。
- 使用Perspective API(阈值为0.8)测量从FairFace数据集获取的图像生成字幕中的毒性、亵渎和其他潜在问题。
使用和限制
预期用途
- 特定视觉语言任务微调:预训练模型可在多种视觉语言任务上进行微调,适用于特定领域和非文本输出任务。
- 视觉语言研究:预训练模型和微调模型可作为研究人员实验VLM技术、开发算法和推动该领域发展的基础。
伦理考虑和风险
- 偏差和公平性:在大规模真实世界图像 - 文本数据上训练的VLMs可能反映训练材料中嵌入的社会文化偏差。
- 错误信息和滥用:VLMs可能被滥用来生成虚假、误导或有害的文本。
- 透明度和问责制:本模型卡片总结了模型的架构、能力、限制和评估过程的详细信息。
限制
- 继承了基础Gemma模型的大多数限制,如在开放式或高度复杂任务上表现不佳。
- PaliGemma主要设计为用于转移到特定任务的通用预训练模型,其“开箱即用”或“零样本”性能可能落后于专门为该任务设计的模型。
- PaliGemma不是多轮聊天机器人,设计用于单轮图像和文本输入。
🔧 技术细节
硬件
使用TPUv5e硬件进行训练。
软件
使用JAX、Flax、TFDS和big_vision
进行训练。
📄 许可证
许可证为gemma。
📖 引用
@article{beyer2024paligemma,
title={{PaliGemma: A versatile 3B VLM for transfer}},
author={Lucas Beyer* and Andreas Steiner* and André Susano Pinto* and Alexander Kolesnikov* and Xiao Wang* and Daniel Salz and Maxim Neumann and Ibrahim Alabdulmohsin and Michael Tschannen and Emanuele Bugliarello and Thomas Unterthiner and Daniel Keysers and Skanda Koppula and Fangyu Liu and Adam Grycner and Alexey Gritsenko and Neil Houlsby and Manoj Kumar and Keran Rong and Julian Eisenschlos and Rishabh Kabra and Matthias Bauer and Matko Bošnjak and Xi Chen and Matthias Minderer and Paul Voigtlaender and Ioana Bica and Ivana Balazevic and Joan Puigcerver and Pinelopi Papalampidi and Olivier Henaff and Xi Xiong and Radu Soricut and Jeremiah Harmsen and Xiaohua Zhai*},
year={2024},
journal={arXiv preprint arXiv:2407.07726}
}
论文链接:here
Clip Vit Large Patch14 336
基于Vision Transformer架构的大规模视觉语言预训练模型,支持图像与文本的跨模态理解
文本生成图像
Transformers

C
openai
5.9M
241
Fashion Clip
MIT
FashionCLIP是基于CLIP开发的视觉语言模型,专门针对时尚领域进行微调,能够生成通用产品表征。
文本生成图像
Transformers 英语

F
patrickjohncyh
3.8M
222
Gemma 3 1b It
Gemma 3是Google推出的轻量级先进开放模型系列,基于与Gemini模型相同的研究和技术构建。该模型是多模态模型,能够处理文本和图像输入并生成文本输出。
文本生成图像
Transformers

G
google
2.1M
347
Blip Vqa Base
Bsd-3-clause
BLIP是一个统一的视觉语言预训练框架,擅长视觉问答任务,通过语言-图像联合训练实现多模态理解与生成能力
文本生成图像
Transformers

B
Salesforce
1.9M
154
CLIP ViT H 14 Laion2b S32b B79k
MIT
基于OpenCLIP框架在LAION-2B英文数据集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索任务
文本生成图像
Safetensors
C
laion
1.8M
368
CLIP ViT B 32 Laion2b S34b B79k
MIT
基于OpenCLIP框架在LAION-2B英语子集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索
文本生成图像
Safetensors
C
laion
1.1M
112
Pickscore V1
PickScore v1 是一个针对文本生成图像的评分函数,可用于预测人类偏好、评估模型性能和图像排序等任务。
文本生成图像
Transformers

P
yuvalkirstain
1.1M
44
Owlv2 Base Patch16 Ensemble
Apache-2.0
OWLv2是一种零样本文本条件目标检测模型,可通过文本查询在图像中定位对象。
文本生成图像
Transformers

O
google
932.80k
99
Llama 3.2 11B Vision Instruct
Llama 3.2 是 Meta 发布的多语言多模态大型语言模型,支持图像文本到文本的转换任务,具备强大的跨模态理解能力。
文本生成图像
Transformers 支持多种语言

L
meta-llama
784.19k
1,424
Owlvit Base Patch32
Apache-2.0
OWL-ViT是一个零样本文本条件目标检测模型,可以通过文本查询搜索图像中的对象,无需特定类别的训练数据。
文本生成图像
Transformers

O
google
764.95k
129
精选推荐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