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
智启未来,您的人工智能解决方案智库
简体中文