欢迎 PaliGemma 2 – 来自 Google 的新视觉语言模型

我们很高兴迎来 Google 全新的视觉语言模型 PaliGemma 2,这是 PaliGemma 的一个新版本。与其前代产品一样,PaliGemma 2 使用强大的SigLIP进行视觉处理,但在文本解码部分升级到了最新的 Gemma 2

https://hf.co/collections/google/siglip-659d5e62f0ae1a57ae0e83ba

模型规模和输入分辨率

PaliGemma 2 提供了新的预训练模型,参数规模包括 3B10B28B。所有模型均支持以下多种输入分辨率:

  • 224x224

  • 448x448

  • 896x896

这种多样化的组合为不同的使用场景提供了极大的灵活性,使实践者能够根据质量和效率需求之间的平衡进行选择。与之相比,上一代 PaliGemma 仅提供 3B 版本。

预训练和微调能力

这些预训练模型被设计为更容易适配下游任务。首个 PaliGemma 模型因其广泛适配性被社区用于多种任务。本次迭代引入了更高质量的预训练模型和更多选择,进一步增强了灵活性。

DOCQI 数据集示例

Google 此次发布了一些基于DOCCI数据集的微调模型,展现了长篇、细致和富有表现力的图像描述能力。这些微调模型提供 3B10B 两个版本,支持输入分辨率 448x448

DOCCIhttps://hf.co/datasets/google/docci

此次发布包含了所有开放的模型仓库、Transformers 框架的集成、微调脚本,以及我们基于VQAv2 数据集微调的视觉问答模型演示。这些资源为用户提供了全面的工具支持,助力探索和开发更多创新应用。

VQAv2 数据集https://hf.co/datasets/HuggingFaceM4/VQAv2


资源链接

本次发布包括开源模型库、transformers 集成、微调脚本以及视觉问答演示。以下是相关资源链接:

  • 发布合集https://hf.co/collections/google/paligemma-2-release-67500e1e1dbfdd4dee27ba48

  • 微调脚本https://github.com/merveenoyan/smol-vision/blob/main/Fine_tune_PaliGemma.ipynb

  • 微调模型演示 Demohttps://hf.co/spaces/merve/paligemma2-vqav2

  • 技术报告https://hf.co/papers/2412.03555


PaliGemma 2 介绍

PaliGemma 2 是PaliGemma 视觉语言模型的一个新迭代,由 Google 于五月发布。

PaliGemma 视觉语言模型https://hf.co/blog/paligemma

PaliGemma 2 将强大的 SigLIP 图像编码器与Gemma 2语言模型连接起来。

Gemma 2https://hf.co/blog/gemma2

adbfad40e1b9c2799cb19aa641c024d4.png
PaliGemma2 Architecture

新的模型基于 Gemma 22B9B27B 语言模型,分别对应 3B10B28B 的 PaliGemma 2 变体。这些模型的名称考虑了紧凑图像编码器的附加参数。正如上文所述,这些模型支持三种不同的分辨率,为下游任务的微调提供了很大的灵活性。

PaliGemma 2 根据 Gemma 许可证 分发,该许可证允许重新分发、商业使用、微调以及创建模型衍生品。

此版本包含以下基于 bfloat16 精度的检查点:

  • 9 个预训练模型: 3B、10B 和 28B,分辨率支持

    • 224x224

    • 448x448

    • 896x896

  • 2 个在 DOCCI 数据集上的微调模型: 基于DOCCI数据集 (图像-文本配对),支持 3B10B 的 PaliGemma 2 变体,输入分辨率为 448x448。https://hf.co/datasets/google/docci

模型能力

如同之前的 PaliGemma 发布一样,预训练 (pt) 模型在下游任务的微调中表现出色。

预训练数据集

pt 模型在以下数据混合集上进行了预训练。这些多样化的预训练数据集使模型能够在相似领域的下游任务中使用更少的示例进行微调。

  • WebLI: 一个基于公共网络构建的大规模多语言图像 - 文本数据集。WebLI 数据集的多样化分割使模型具备了多方面的能力,如视觉语义理解、物体定位、视觉文本理解和多语言能力。

  • CC3M-35L: 从网页上精心挑选的英语图像 - 替代文本数据集 (Sharma et al., 2018)。数据集的标签通过Google Cloud Translation API翻译成了 34 种额外的语言。https://aclanthology.org/P18-1238/https://cloud.google.com/translate

  • Visual Question Generation with Question Answering Validation (VQ2A): 一个改进的问题回答数据集。该数据集也被翻译成了相同的 34 种语言,使用了 Google Cloud Translation API。

  • OpenImages: 检测和物体感知的问答数据集 (Piergiovanni et al., 2022),通过手动规则生成,基于OpenImages 数据集。https://storage.googleapis.com/openimages/web/factsfigures_v7.html

  • WIT: 从 Wikipedia 收集的图像和文本数据集 (Srinivasan et al., 2021)。


微调模型与基准测试

PaliGemma 2 团队在多种视觉语言理解任务上对 PT 模型进行了内部微调,并提供了这些微调模型的基准测试结果。详细信息可以在模型卡和技术报告中找到。

  • 模型卡https://hf.co/google/paligemma2-28b-pt-896#paligemma-2-results-by-model-resolution-and-size

  • 技术报告https://hf.co/papers/2412.03555

PaliGemma 2 基于 DOCQI 数据集 微调,可以实现多种图像描述任务,包括文本渲染、捕捉空间关系以及包含世界知识的描述。


性能比较

以下表格展示了 DOCQI 微调模型与其他模型的性能对比 (数据来自技术报告中的 Table 6):

技术报告https://hf.co/papers/2412.03555

模型参数量字符数 (#char)句子数 (#sent)NES ↓
MiniGPT-47B4845.652.3
mPLUG-Owl28B4594.448.4
InstructBLIP7B5104.042.6
LLAVA-1.57B3954.240.6
VILA7B8718.628.6
PaliGemma3B5358.934.3
PaLI-5B5B106511.332.9
PaliGemma 23B5297.728.4
PaliGemma 210B5217.520.3

指标说明:

  • #char: 生成的描述中平均字符数。

  • #sent: 平均句子数。

  • NES: 非蕴含句子数 (数值越低越好),用于衡量事实不准确性。

您可以在下面找到 DOCQI 检查点的部分模型输出,展示模型的多样性和灵活性。

Input ImageCaption
6599f332cfcc381190f4ca8c63349400.jpeg折线图展示了 ImageNet 模型在微调后的 Top-1 准确率表现。图中有四条不同颜色的线条: 蓝色、橙色、绿色和黑色。蓝色线条是四条线中最低的一条 ,它代表了表现最差的模型结果。
ba6ca6f22ca2f2832a4ac14659df2bd6.jpeg一张白纸的特写镜头,上面用黑色的文字打印着内容。纸张中间稍微弯曲,文字使用打字机字体呈现。纸张顶部写着 "Ashley Hotel West Coast",其下是 "WiFi Internet Service"。再下面是 "Username: fqpp",最后是 "Password: aaeu"。
2db3cc540bf10e5b4c18a8bb9eea0ae4.jpeg一幅描绘大卫·鲍伊“Ziggy Stardust”造型的壁画被画在一面白墙上。壁画展示了三张并排的面孔,每张都有红色的头发,眼睛上画着蓝色的闪电图案。面孔的妆容包括蓝色眼影、粉红色腮红和红色嘴唇。中间的面孔上方有一个黑色的方形窗口,窗口内用白色文字写着 "JAM",字体为蓝色。画面的一侧停着一辆银色汽车。
98d3c8a9ba28ff7ab7f3b1adc6cc7b55.jpeg从上方俯瞰一张白色大理石台面,台面上放着四个咖啡杯。左边有两个灰色的杯子,左下角有一个白色的杯子,右侧则是另一个灰色的杯子。右上角放着一个带木质底座的金属水果篮,里面装满了橙子。左边还有一个装有水的透明玻璃水壶,画面中仅显示了部分内容。
41d75b63681d0ee00e8c554ca2365c26.jpeg一张白色书本的特写,上半部分是白色区域,底部有一条蓝色条纹。白色部分印有黑色文字,内容为: "Visual Concept Learning from User-tagged Web Video" 。黑色文字下方有一个白色框,框内包含五张小图片。最左边的图片是一名站在草地中的人,右侧紧接的是一张蓝色海洋的图片。

演示

为了演示效果,Hugging Face 团队对 PaliGemma 2 3B 模型进行了微调,输入分辨率为 448x448,数据集使用的是 VQAv2 的一小部分。我们采用了 LoRA 微调PEFT 方法,具体细节将在微调部分进行讲解。

下面的演示展示了最终结果。您可以自由查看 Space 中的代码了解其工作原理,或者克隆代码以适配您的自定义微调需求。

outside_default.png

如何与 Transformers 一起使用

您可以使用 🤗 Transformers 库对 PaliGemma 2 模型进行推理,通过 PaliGemmaForConditionalGenerationAutoProcessor APIs 实现操作。请确保您安装的 Transformers 版本为 4.47 或更高:

pip install transformers>=4.47

在安装完成后,您可以按照以下示例运行推理。同样重要的是,请确保遵循用于训练模型的任务提示格式,以获得最佳效果:

from transformers import AutoProcessor, PaliGemmaForConditionalGeneration
from PIL import Image
import requests

model_id = "google/paligemma2-10b-ft-docci-448"
model = PaliGemmaForConditionalGeneration.from_pretrained(model_id)
model = model.to("cuda")
processor = AutoProcessor.from_pretrained(model_id)

prompt = "<image>caption en"
image_file = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/cats.png"
raw_image = Image.open(requests.get(image_file, stream=True).raw).convert("RGB")

inputs = processor(prompt, raw_image, return_tensors="pt").to("cuda")
output = model.generate(**inputs, max_new_tokens=200)

input_len = inputs["input_ids"].shape[-1]
print(processor.decode(output[0][input_len:], skip_special_tokens=True))
# A medium shot of two cats laying on a pile of brown fishing nets. The cat in the foreground is a gray tabby cat with white on its chest and paws. The cat is laying on its side with its head facing the bottom right corner of the image. The cat in the background is laying on its side with its head facing the top left corner of the image. The cat's body is curled up, its head is slightly turned to the right, and its front paws are tucked underneath its body. There is a teal rope hanging from the fishing net in the top right corner of the image.

您还可以使用 transformers 集成中的 bitsandbytes 来加载具有量化的模型。以下示例使用了 4-bit nf4 :

from transformers import BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)
model = PaligemmaForConditionalGeneration.from_pretrained(
    model_id,
    quantization_config=bnb_config,
    device_map={"":0}
)

我们快速测试了量化对性能的影响,通过评估一个 3B 微调检查点在textvqa数据集上的表现,使用 224x224 输入图像。这是我们在 5,000 个验证集条目上获得的结果:https://hf.co/datasets/lmms-lab/textvqa

  • bfloat16,无量化: 60.04% 准确率。

  • 8-bit: 59.78%

  • 4-bit,使用上面代码片段中的配置: 58.72%

这些结果非常鼓舞人心!当然,量化对于更大的检查点更有意义,我们建议您始终在您所使用的领域和任务上测量结果。

微调

如果您之前已经微调过 PaliGemma,那么用于微调 PaliGemma 2 的 API 是相同的,您可以直接使用现有代码。我们提供了微调脚本和一个notebook来帮助您微调模型,冻结模型部分参数,或应用内存高效的微调技术,如 LoRAQLoRA

  • 微调脚本https://github.com/merveenoyan/smol-vision/blob/main/paligemma.py

  • notebookhttps://github.com/merveenoyan/smol-vision/blob/main/Fine_tune_PaliGemma.ipynb

我们使用 LoRA 对 PaliGemma 2 模型在 VQAv2 验证集的一半进行了微调,以供演示。这项任务使用了 3 块 A100 显卡 (80GB VRAM),耗时半小时。

您可以在这里找到模型,此外这个 Gradio 演示展示了模型的效果。

  • 模型地址https://hf.co/merve/paligemma2-3b-vqav2

  • Gradio 演示链接https://hf.co/spaces/merve/paligemma2-vqav2

结论

新发布的 PaliGemma 2 比之前的版本更加令人兴奋,具有不同的规模以满足各种需求,并提供更强大的预训练模型。我们期待看到社区能够构建出什么样的成果!

我们感谢 Google 团队发布了这一令人惊叹且开放的模型系列。特别感谢Pablo Montalvo将模型集成到 Transformers 中,以及Lysandre、Raushan、Arthur、Yieh-Dar和团队其他成员的努力,他们迅速完成了模型的评审、测试和合并工作。

  • Pablo Montalvohttps://hf.co/Molbap

  • Lysandrehttps://hf.co/lysandre

  • Raushanhttps://hf.co/RaushanTurganbay

  • Arthurhttps://hf.co/ArthurZ

  • Yieh-Darhttps://hf.co/ydshieh

资源

  • 发布合集https://hf.co/collections/google/paligemma-2-release-67500e1e1dbfdd4dee27ba48

  • PaliGemma 博客文章https://hf.co/blog/paligemma

  • 微调脚本https://github.com/merveenoyan/smol-vision/blob/main/Fine_tune_PaliGemma.ipynb

  • 在 VQAv2 上微调模型https://hf.co/merve/paligemma2-3b-vqav2

  • 微调模型演示https://hf.co/spaces/merve/paligemma2-vqav2

  • 技术报告https://hf.co/papers/2412.03555


英文原文:https://hf.co/blog/paligemma2

原文作者: Merve Noyan, Andreas P. Steiner, Pedro Cuenca, Aritra Roy Gosthipaty

译者: xiaodouzi666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django基础 - 01入门简介

一、 基本概念 1.1 Django说明 Django发布于2005年&#xff0c; 网络框架&#xff0c; 用Python编写的开源的Web应用框架。采用了MVC框架模式&#xff0c;也称为MTV模式。官网&#xff1a; https://www.djangoproject.com1.2 MVC框架 Model&#xff1a; 封装和数据库相关…

华为OD --- 敏感字段加密

华为OD --- 敏感字段加密 题目独立实现思路源码实现 参考实现 题目 独立实现 思路 通过便利字符串把所有“关键字”找出来,然后将第N个关键字替换成******,最后再通过 “_” 拼接起来即可 源码实现 const rl require("readline").createInterface({ input: proce…

WebRTC服务质量(05)- 重传机制(02) NACK判断丢包

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…

着色器 (三)

今天&#xff0c;是我们介绍opengl着色器最后一章&#xff0c;着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序&#xff0c;因为它们之…

【Linux网络】网络基础:IP协议

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ IP协议 IP协议基本概念协议头格式分片与组装网段划分子网掩码特殊的IP地址 IP地址的数量限制…

neo4j 图表数据导入到 TuGraph

neo4j 图表数据导入到 TuGraph 代码文件说明后文 前言:近期在引入阿里的 TuGraph 图数据库&#xff0c;需要将 原 neo4j 数据导入到新的 tugraph 数据库中。预期走csv文件导入导出&#xff0c;但因为格式和数据库设计问题&#xff0c;操作起来比较麻烦&#xff08;可能是个人没…

Node.js安装(含npm安装vue-cli,安装element-ui)的详细配置

搭建前端框架 前端平台 量子计算机–10^5级别运算只需5min&#xff0c;这代表可以计算从宇宙大爆炸到现在的数据可以计算 安卓工程师–.xml node.js 下载 运行在win/linus的js——node.js 安装 建议不要动路径&#xff0c;可以避免很多问题&#xff0c;但是要保证C盘有至少1…

亚马逊云科技 re:Invent 2024重磅发布!Amazon Bedrock Data Automation 预览版震撼登场

AWS re:Invent 2024 已圆满落幕&#xff01; 在本次大会中&#xff0c;隆重推出了一项全新功能&#xff1a; Amazon Bedrock Data Automation&#xff08;预览版&#xff09;震撼登场&#xff01; New Amazon Bedrock capabilities enhance data processing and retrieval | …

JAVA:组合模式(Composite Pattern)的技术指南

1、简述 组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什么是组合模式 组合模式…

计算机基础 试题

建议做的时候复制粘贴,全部颜色改为黑色,做完了可以看博客对答案。 一、单项选择题(本大题共25小题,每小题2分,共50分〉 1.计算机内部采用二进制数表示信息,为了便于书写,常用十六进制数表示。一个二进制数0010011010110用十六进制数表示为 A.9A6 B.26B C.4D6 D.…

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数

腾讯云云开发 Copilot 深度探索与实战分享

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 一、引言 二、产品介绍 三、产品体验过程 四、整体总结 五、给开发者的复用建议 六、对 AI 辅助开发的前景展望 一、引言 在当今数字化转型加速的时代&#xff0c;…

中间件 redis安装

redis官网地址&#xff1a;Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1&#xff0c;远程下载redis压缩包&#xff0c;或去官网下载&#xff1a;Downloads …

CVE-2021-44228 漏洞复现

漏洞描述 什么是 log4j 和 log4j2 log4j 是 Apache 的一个开源日志库&#xff0c;是一个基于 Java 的日志记录框架&#xff0c;Log4j2 是 log4j 的后继者&#xff0c;其中引入了大量丰富的特性&#xff0c;可以控制日志信息输送的目的地为控制台、文件、GUI 组建等&#xff0…

SpringBoot02

1. 学习目标&#xff08;了解&#xff09; 2. Mybatis整合&数据访问&#xff08;操作&#xff09; 使用SpringBoot开发企业项目时&#xff0c;持久层数据访问是前端页面数据展示的基础&#xff0c;SpringBoot支持市面上常见的关系库产品(Oracle,Mysql,SqlServer,DB2等)对应…

答:C++需要学到什么程度再开始学 qt 比较合理?

有网友问&#xff1a;C需要学到什么程度再开始学 qt 比较合理&#xff1f; 南老师回答如下。 在我看来&#xff0c;这确实是一个好问题&#xff0c;但我的回答&#xff0c;大概很难成为一个好回答。 但我还是想回答&#xff0c;所以诚恳谢妖&#xff01; 如果有人问我&…

Elasticsearch8.17.0在mac上的安装

1、下载并安装 下载8.17版本es(目前最新版本)&#xff1a;Download Elasticsearch | Elastic 也可以通过历史版本列表页下载&#xff1a;Past Releases of Elastic Stack Software | Elastic 当然也可以指定具体版本号进行下载&#xff1a;Elasticsearch 8.17.0 | Elastic …

爬取Q房二手房房源信息

文章目录 1. 实战概述2. 网站页面分析3. 编写代码爬取Q房二手房房源信息3.1 创建项目与程序3.2 运行程序&#xff0c;查看结果 4. 实战小结 1. 实战概述 本次实战项目旨在通过编写Python爬虫程序&#xff0c;抓取深圳Q房网上的二手房房源信息。我们将分析网页结构&#xff0c;…

易语言OCR银行卡文字识别

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…

6.3.1 MR实战:计算总分与平均分

在本次实战中&#xff0c;我们的目标是利用Apache Hadoop的MapReduce框架来处理和分析学生成绩数据。具体来说&#xff0c;我们将计算一个包含五名学生五门科目成绩的数据集的总分和平均分。这个过程包括在云主机上准备数据&#xff0c;将成绩数据存储为文本文件&#xff0c;并…