PaliGemma 视觉语言模型发布
Google 推出了 PaliGemma,这是一系列开源视觉语言模型(VLM),旨在处理图像和文本输入并生成文本输出。这些模型专为下游任务的微调而设计,而非用作通用对话代理。
模型架构与组件
PaliGemma 使用由视觉编码器和文本解码器通过线性适配器连接的组合架构:
- 图像编码器: SigLIP-So400m,最先进的模型,联合在图像和文本上进行训练。
- 文本解码器: Gemma-2B,纯解码器模型用于文本生成。
- 集成: 线性适配器将 SigLIP 的图像嵌入投射到与 Gemma 使用的 2048 维嵌入相匹配。
模型变体与规格
Google 已发布 PaliGemma 的三种主要检查点类型,提供多种分辨率和精度:
检查点类型
- 预训练 (PT): 用作特定下游任务微调的基础模型。
- Mix: 在混合任务上微调的模型,适用于通用推理和研究。
- 微调 (FT): 针对特定学术基准进行专门微调的模型,用于研究目的。
技术配置
- 分辨率: 模型提供
224x224、448x448和896x896。更高的分辨率虽能提升细粒度任务(如 OCR)的性能,但会因更长的输入序列显著增加内存需求。 - 精度: 检查点提供
bfloat16、float16和float32三种精度。
核心能力
PaliGemma 是单轮模型,使用任务前缀(例如 “detect” 或 “segment”)来调节其行为。由 “mix” 检查点展示的关键能力包括:
- 图像字幕: 根据提示为图像生成描述性文本。
- 视觉问答 (VQA): 回答关于图像内容的具体问题。
- 目标检测: 识别实体并提供边界框坐标。坐标以特殊的
<loc[value]>标记输出(归一化到 1024),表示 y_min, x_min, y_max, x_max。 - 指代表达分割: 根据自然语言描述对实体进行分割,输出边界框和分割标记。
- 文档理解: 对文档进行推理和信息提取(OCR-QA)。
性能基准
Mix 检查点
| 模型 | MMVP 准确率 | POPE 准确率(随机/流行/对抗) |
|---|---|---|
| mix-224 | 46.00 | 88.00 / 86.63 / 85.67 |
| mix-448 | 45.33 | 89.37 / 88.40 / 87.47 |
微调 (FT) 检查点
| 模型名称 | 数据集/任务 | 分数 |
|---|---|---|
| paligemma-3b-ft-vqav2-448 | 图表理解 | 85.64 在 VQAV2 上的准确率 |
| paligemma-3b-ft-cococap-448 | COCO 标题 | 144.6 CIDEr |
| paligemma-3b-ft-science-qa-448 | 科学问答 | 95.93 在 ScienceQA 图像子集上的准确率(无 CoT) |
| paligemma-3b-ft-refcoco-seg-896 | 对象引用 | 76.94 平均 IoU(refcoco)/ 72.18(refcoco+)/ 72.22(refcocog) |
| paligemma-3b-ft-rsvqa-hr-224 | 遥感 VQA | 92.61 准确率(test)/ 90.58 准确率(test2) |
推理与实现细节
数据处理流水线
- 文本处理: 输入文本被分词,前缀添加
<bos>标记,并在末尾追加换行符 (\n) 标记。 - 图像处理: 使用双三次重采样对图像进行缩放。SigLIP 编码器生成图像嵌入(1152 维),线性投影器随后将其转换为 2048 维。
- 序列构建: 模型根据分辨率在前面添加固定数量的
<image>标记:224 模型为 256,448 模型为 1024,896 模型为 4096。 - 生成: 模型对组合输入(图像 + bos + 提示 + \n)使用全块注意力,对生成的文本使用因果注意力。
部署与微调
PaliGemma 通过 PaliGemmaForConditionalGeneration 类集成到 Hugging Face transformers 库中。它支持通过 BitsAndBytesConfig 进行 4 位和 8 位加载,并兼容 PEFT 用于 LoRA 和 QLoRA 微调。对于使用原始 JAX 实现的用户,模型可通过 big_vision 代码库获取。