引言
PaliGemma 是谷歌推出的一款全新视觉语言模型。该模型能够处理图像和文本输入并生成文本输出。谷歌团队发布了三种类型的模型:预训练(PT)模型、混合(Mix)模型和微调(FT)模型,每种模型都有不同的分辨率和多种精度可供选择,方便用户使用。
所有模型都已在 Hugging Face Hub 模型库中发布,并附有模型卡和许可证,并与 transformers 集成。
什么是 PaliGemma?
PaliGemma 是一组视觉语言模型,其架构由 SigLIP-So400m 作为图像编码器和 Gemma-2B 作为文本解码器组成。SigLIP 是一个先进的模型,能够理解图像和文本。像 CLIP 一样,它由图像和文本编码器共同训练。类似于 PaLI-3,PaliGemma 模型预训练于图像-文本数据集上,然后可以轻松地在下游任务上进行微调,例如图像字幕生成或引用分割。Gemma 是一个仅用于文本生成的解码器模型。通过使用线性适配器将 SigLIP 的图像编码器与 Gemma 结合,使 PaliGemma 成为一个强大的视觉语言模型。
PaliGemma 发布了三种类型的模型:
- PT 检查点:预训练模型,可以微调到下游任务。
- Mix 检查点:对多任务进行微调的 PT 模型。适用于带有自由文本提示的通用推理,仅供研究用途。
- FT 检查点:一组已经微调的模型,每个模型都专注于不同的学术基准。以多种分辨率提供,仅供研究用途。
这些模型提供三种不同的分辨率(224x224
、448x448
、896x896
)和三种不同的精度(bfloat16
、float16
和 float32
)。每个模型库包含适用于给定分辨率和任务的检查点,并为每种可用精度提供三个修订版本。每个模型库的 main
分支包含 float32
检查点,而 bfloat16
和 float16
修订版本包含相应的精度版本。有适用于 🤗 transformers 和原始 JAX 实现的模型库。
模型能力
PaliGemma 是一个单轮视觉语言模型,不适合用于对话。它在微调到特定使用场景时效果最佳。
你可以通过条件化任务前缀(例如“detect”或“segment”)来配置模型解决的任务。预训练模型通过这种方式训练,以赋予它们丰富的功能(问答、字幕生成、分割等)。然而,它们不是设计用于直接使用的,而是通过微调转移到使用类似提示结构的特定任务上。对于交互式测试,可以使用经过多任务微调的 Mix 模型。
以下示例使用 Mix 检查点来展示一些能力。
图像字幕生成
PaliGemma 可以根据提示为图像生成字幕。你可以尝试使用各种字幕提示词与 Mix 检查点来查看它们的响应。
视觉问答
PaliGemma 可以回答关于图像的问题,只需将你的问题与图像一起传递即可。
检测
PaliGemma 可以使用 detect [entity]
提示词检测图像中的实体。它会输出规范化坐标形式的边界框坐标,使用特殊的 <loc[value]>
标记,其中 value
是表示规范化坐标的数字。每个检测表示为按顺序排列的四个位置坐标 y_min, x_min, y_max, x_max,然后是检测到的标签。要将值转换为坐标,首先需要将数字除以 1024,然后乘以图像高度和宽度。这将给出相对于原始图像大小的边界框坐标。
引用表达分割
PaliGemma Mix 检查点还可以在给定 segment [entity]
提示词时分割图像中的实体。这称为引用表达分割,因为我们使用自然语言描述来引用感兴趣的实体。输出是位置和分割标记的序列。位置标记表示为上文所述的边界框。分割标记可以进一步处理以生成分割掩码。
文档理解
PaliGemma Mix 检查点在文档理解和推理方面表现出色。
PaliGemma的代码案例,可进一步参考PaliGemma – 谷歌的最新开源视觉语言模型(二)。