- 引言 ========
江寒水不流,鱼嚼梅花影。小伙们好,我是卖热干面的小女孩,继续 多模态大模型系列 。紧随前文: 多模态系列 | Google最新开源多模态:PaliGemma 2 简介&实战 ,今天这篇小作文全面解读PaliGemma 2的技术细节。PaliGemma 2是基于Gemma 2语言模型的开源视觉语言模型, 通过结合不同规模的模型和分辨率,微调后的模型在多项任务上取得SOTA。它扩展了迁移任务范围,并深入研究了模型大小、分辨率与迁移性能之间的关系。
- 简介 ========
PaliGemma是一款将SigLIP视觉编码器和2B Gemma语言模型结合而得到的3B视觉-语言模型,性能可媲美之前的大型VLM。PaliGemma 2在语言模型部分使用更强大的Gemma 2语言模型家族,最终带来新的基础VLM家族,包括3种不同规模(3B、10B、28B)和3种不同分辨率(224x224px、448x448px、896x896px)。为赋予这些VLM广泛能力,采用与PaliGemma相同的三阶段训练方案。微调后的PaliGemma 2在30多个迁移任务上进行评测,在相同分辨率和模型大小下PaliGemma 2稍优于PaliGemma,而在较大模型规模下则提升显著。PaliGemma 2 VLM作为开放权重模型发布,可直接替换PaliGemma。
拥有一系列基于相似构建模块和使用统一训练方式得到的模型家族,可以让研究人员在一个可控的环境中,分析模型大小和分辨率对最终性能的影响(见4.1节)。例如,虽然几乎所有任务都能从增加计算资源中获益,但不同任务受益于计算提升的方式不同。可以进一步区分哪些迁移任务更受益于高分辨率带来的计算提升,哪些更受益于更大、更强大的语言模型带来的计算提升。此外还发现,更大的模型往往具有更低的最佳迁移学习率。
此外,还探索了一些在PaliGemma中未深入探讨的新任务,包括文本检测和识别(4.2节)、表格结构识别(4.3节)、分子结构识别(4.4节)、光学乐谱识别(4.5节)、长文本描述生成(4.6节)、空间推理(4.7节)和放射学报告生成(4.8节)。PaliGemma 2在许多这些任务上获得了最先进的结果(SOTA)。最后,评测并分析了量化后的低精度版PaliGemma 2在CPU上的部署(4.9节)。
Q1: 这篇文章想要解决什么问题?
A1: 探索视觉语言模型在不同模型规模和图像分辨率下的性能,并扩展模型在多样化任务上的迁移学习能力,包括文本识别、表格结构识别、分子结构识别、乐谱识别等复杂任务。
Q2: 这篇文章如何解决这些问题?
A2: 通过三阶段训练策略:
- 第一阶段:在多模态任务混合数据集上进行联合训练
- 第二阶段:逐步提高图像分辨率,增加输出序列长度
- 第三阶段:针对特定任务进行微调
主要创新点(主要还是延续使用PaliGemma)包括:
- 使用Gemma 2语言模型替代原始Gemma
- 提供多规模和多分辨率的模型选择
- 探索模型规模和分辨率对不同任务性能的影响
此外,这篇论文涉及的评测非常广泛且全面。
Q3: 文章所提出方法的效果如何?
A3: 在30多个学术基准任务中取得显著成果:
- 文本检测与识别:优于当前最先进的HTS方法
- 表格结构识别:在TEDS和GriTS指标上创新高
- 分子结构识别:在ChemDraw数据集上超越MolScribe
- 乐谱识别:在GrandStaff数据集上取得最佳错误率
- 长篇图像描述:生成高度事实一致的描述
- 空间推理和医学报告生成:显著提升性能
Q4: 文章所提方法还有哪些不足?
A4: 其实方法上面跟PaliGemma基本一样,这里只说PaliGemma 2的一些不足:
- 发布的多是预训练模型,只发布了2款微调模型,不利于其他研究人员复现(白嫖)
- 中文场景支持不够友好,指令遵循不足
- 实测发布的微调模型,在图片问答和表格理解方面能力不足
- 模型和训练细节 =============
图1:PaliGemma 2使用SigLIP-400m编码器(patch大小14x14px)处理224x224px/448x448px/896x896px分辨率图像,生成256/1024/4096个token。经线性投影层后,图像token与输入文本token拼接,Gemma 2自回归地使用该前缀以生成答案。
PaliGemma 2在模型设计、训练流程和数据设置上与 PaliGemma完全一致,以下是关键部分的简要总结。 使用相同的预训练SigLIP-So400m视觉编码器, 并通过线性投影将其嵌入向量映射到 Gemma 2 的输入空间。视觉嵌入向量与文本提示结合后输入 Gemma 2 语言模型(prefill预填充阶段),然后通过语言模型的自回归采样生成预测结果(详见图 1)。
PaliGemma 2 的预训练分为三个阶段进行(其中阶段 0 对应组件的单模态预训练,详见SigLIP 和Gemma)。
- 阶段 1 :将预训练的 SigLIP-So400m 和 Gemma 2 检查点(未经过后处理)结合起来,在包含 10 亿个样本的多模态任务混合数据集上进行联合训练。这一阶段旨在通过微调实现广泛的任务迁移能力。图像分辨率为 224px²,所有参数均参与训练,无冻结操作。
- 阶段 2 :首先在分辨率为 448px²的条件下训练 5000 万个样本,然后在分辨率为 896px²的条件下训练 1000 万个样本。 任务混合数据集的组成保持不变,但对高分辨率任务进行了权重提升,同时输出序列长度增加(例如,促进对长文本 OCR 的学习)。
- 阶段 3 :将阶段 1 或阶段 2(取决于分辨率)的检查点微调到目标任务上。PaliGemma 涉及了一系列学术基准任务,包括多图像和短视频相关任务。本研究沿用相同的基准任务(并使用PaliGemma中的超参数设置),此外还探索了新的应用场景,如文档相关任务、长篇字幕生成和医学影像理解。
参考Gemma 2,在阶段 1 和阶段 2 中,对 Gemma 2 的注意力权重和输出 logits 应用了 soft-capping,参数与Gemma 2保持一致。但在阶段 3 中未使用 soft-capping, 因为这会在某些迁移任务中导致性能下降。此外,整个训练过程使用 Adam 优化器,并根据模型规模调整学习率。在阶段 1 和阶段 2 中,PaliGemma 基础学习率为 2×10⁻⁵,对于 PaliGemma 2 3B,学习率乘以 0.5;对于 PaliGemma 2 10B 和 28B,学习率乘以 0.25。
表1:与大型语言模型(LLM)相比,视觉编码器参数计数较小,但LLM中视觉token占主导计算。最后三列显示每个样本的相对训练成本(根据预训练设置测量)。除28B 896x896px模型在TPUv5p上训练外,其他模型均在Cloud TPUv5e上训练,假设TPUv5p每芯片速度提升2.3倍。
关于训练数据混合的详细信息,请参考PaliGemma,这里简要概述如下:数据混合包括字幕生成、定向字幕生成、OCR、不同机器生成的视觉问答(VQA)任务、目标检测和实例分割。许多对应的标签是通过机器生成的,主要依赖于公开可用的 专业模型 ,而未使用像LLaVA等其他开源或商用大型视觉语言模型VLM。
与 PaliGemma 相似,PaliGemma 2 的训练在 Cloud TPUv5e Pod 切片上完成(28B 模型在 896x896px 分辨率下使用 TPUv5p),规模从 256 到 1024 个芯片不等,并采用完全分片的数据并行(FSDP)策略。PaliGemma 2 3B 的训练成本与 PaliGemma 相当(阶段 1 使用 256 个芯片需 3 天);其他模型和分辨率的训练成本可参考表 1。需要注意的是,增加分辨率和增大语言模型规模带来的额外成本相当。
- 实验 ========
除了考虑PaliGemma中广泛的迁移任务外,PaliGemma 2还考虑了涉及文本检测和识别(4.2节)、表格结构识别(4.3节)、分子结构识别(4.4节)、光学乐谱识别(4.5节)、长Caption生成(4.6节)、空间推理(4.7节)和放射学报告生成(4.8节)的新任务。在官方技术报告的附录A中提供了每个新任务的示例,在附录B中提供了迁移细节,感兴趣的小伙伴可以前往查阅。
4.1 研究模型大小和分辨率
为了研究模型规模和分辨率对任务性能的影响,实验对3种模型变体(3B、10B和28B)在两种分辨率(224px²和448px²)上进行了微调。这些实验基于30多个学术基准任务,这些任务涵盖了自然图像、文档、信息图表和视频中的图像描述、视觉问答(VQA)以及指代分割等广泛领域。实验复用了先前PaliGemma研究中的最优超参数,仅对学习率{0.03, 0.06, 0.1, 0.3, 0.6, 1.0, 3.0} · 10⁻⁵进行了搜索。由于先前研究在大部分任务中对224px²和448px²分辨率采用了相同的超参数,本次实验仅在224px²分辨率下进行学习率搜索,并将结果应用于两种分辨率。在每种模型规模和任务上基于验证集选择最佳学习率后,重新训练模型并报告测试指标。完整结果见表13。
4.1.1 对任务性能的影响
图像分辨率和语言模型(LM)规模的提升都会增加预测(及训练)所需的FLOPs(见表1)。因此,通常预期大多数任务会从这两方面的改进中获益。然而,不同任务的需求可能有所不同:某些任务可能更依赖输入细节(更高分辨率),而另一些任务可能更需要更强的语言理解能力和更广泛的世界知识(更大的语言模型)。为了更细致地分析这些因素,图3展示了在PaliGemma 2 3B(224px²)模型的基础上,通过增大语言模型规模至9B(FLOPs增加3.7倍)或提高分辨率至448px²(FLOPs增加4.6倍)所带来的迁移性能相对提升。
图3:选择具有更大语言模型或更高分辨率的预训练检查点进行迁移后,各项指标的相对提升情况。这些任务被分为对模型大小和分辨率都敏感的任务(绿色)、对模型大小敏感的任务(蓝色)以及对分辨率敏感的任务(黄色)。请注意,一些基准测试已经相当饱和(例如,ScienceQA 的 2.2% 的相对提升对应于 53.8% 的误差降低——见图 13)。用于创建此图表的数据可在表 13 中找到。
正如预期,大多数任务在分辨率和模型规模的提升上都表现出相似的收益(绿色标记)。同时,有一组任务(黄色标记)主要依赖于分辨率的提升,这些任务集中在文本、文档、屏幕和图表理解领域。对应基准中的图像通常具有显著高于224px²的原始分辨率,这与实验观察结果一致。另外一组任务(蓝色标记)则主要受益于语言模型规模的增加。这些任务中,一部分涉及多语言数据(如XM3600 (avg35)),另一部分需要高级视觉推理(如AI2D、CountBenchQA和NLVR2)。
图4进一步展示了分辨率和模型规模对性能的缩放行为。相比于将模型规模从3B增加到10B,进一步扩大到28B往往仅带来适度的提升,甚至没有明显改善。因此,如果目标是追求最佳性能且对计算资源或延迟没有限制,使用最大的PaliGemma 2可能是有意义的。然而,PaliGemma 2 28B在迁移性能上的相对劣势可能与其基础模型Gemma 2 27B完全从零训练有关, 而2B和9B模型则基于蒸馏技术。
图4:模型大小和分辨率对迁移性能的影响(取5次迁移运行的中位数)。阴影区域表示报告值的标准偏差。较浅的线条对应于更高的分辨率(448像素平方)。任务被分为三组:对模型大小和分辨率都敏感的任务(绿色),对模型大小敏感的任务(蓝色),以及对分辨率敏感的任务(黄色)。此图表的数据来源于技术报告表13。
4.1.2 模型大小和迁移学习率
图5展示了任务性能(归一化)随迁移学习率变化的情况。总体趋势表明,较大模型的最佳学习率通常低于较小模型(热图中的对角线模式)。因此,建议在增大模型规模时使用较小的学习率。此外,PaliGemma 2 3B相比PaliGemma,通常有较低的最佳迁移学习率。
图5:针对多个下游任务,展示了每个任务的性能如何随模型大小和学习率变化。每个任务和模型大小的数值都经过了归一化处理,颜色越深表示任务性能越好。较大的模型往往具有较低的最佳迁移学习率。零样本任务未在此图中展示,因为它们的值未被用于选择学习率。此图表所用的数据见表14。
4.1.3 使用Gemma 2替代Gemma 1
在表15中,PaliGemma 2与PaliGemma进行了比较。可以看到,在相同分辨率和模型规模(如3B)下,PaliGemma 2的表现略好于相应的PaliGemma模型。在30多个学术基准任务上的平均分数,224px²分辨率下高出0.65,448px²分辨率下高出0.85。
4.2 文本检测与识别
PaliGemma 2被用于高级OCR任务,包括从图像中定位和识别单词。具体地,输出是{转录文本, 边界框}对。遵循HierText竞赛的标准,使用词级别的精度、召回率和F1作为评价指标。当预测和真实边界框的IoU大于或等于0.5且转录文本与真实值匹配时,结果被视为正例。需要注意的是,HierText协议不对字母大小写、标点符号进行归一化,也不根据文本长度进行筛选,而是直接比较预测结果与真实值。
PaliGemma 2在ICDAR’15、Total-Text、MLT17和MLT19、HierText、TextOCR、IntelOCR等数据集的训练集上进行了微调,并在ICDAR’15和Total-Text的测试集上进行评估。这些数据集是最常用的OCR基准任务。表2显示,PaliGemma 2 3B在896px²分辨率下优于当前最先进的HTS。值得注意的是,这一结果仅通过微调一个通用视觉语言模型(VLM)实现,并没有依赖OCR领域常见的特定任务架构组件,体现了PaliGemma 2的通用性,也展示了其在第二、第三训练阶段OCR相关预训练的优势。将分辨率降低会显著降低预测质量,而增加模型规模则未带来性能提升。
表2:文本检测和识别性能。896x896px的PaliGemma 2模型在ICDAR’15 Incidental和Total-Text数据集上,性能优于目前最先进的模型HTS
4.3 表格结构识别
表格结构识别的目标是从文档图像中提取表格文本内容、相应的边界框坐标以及表格的HTML结构。为了将PaliGemma 2应用于该任务,模型在PubTabNet和FinTabNet这两个流行数据集的训练集上进行了微调。PubTabNet包含516k张来自PubMed Central开放访问子集的表格图像,FinTabNet包含113k张来自S&P 500公司年度报告的财务表格图像。训练时,去除了明显有误的样本(如边界框超出图像范围),并对FinTabNet应用了论文
Aligning benchmark datasets for table structure recognition
中的优化措施。图像被调整为目标分辨率,同时保持宽高比,并填充为方形以匹配输入分辨率。
模型评估使用了树编辑距离相似度(TEDS)和网格表格相似度(GriTS),这两类指标衡量单元格文本内容、单元格拓扑结构及边界框质量。PaliGemma 2在大多数指标上创下了新的SOTA(表3)。增加模型规模未带来额外提升,而降低图像分辨率则导致质量小幅下降。
表3
4.4 分子结构识别
PaliGemma 2还被用于分子结构识别任务,即从分子图像中推断分子的图结构(用SMILES字符串表示)。训练数据来自PubChem数据集的100万个分子,这些分子使用Indigo工具包渲染,并通过多种绘图风格和随机扰动进行增强,遵循MolScribe中的方法。模型在与MolScribe相同的评估集上进行评估,该评估集包含5.7k个使用ChemDraw库生成的合成分子图像。评估指标为精确匹率(Exact Match Percentage),结果如表4所示。在448px²分辨率下,PaliGemma 2的表现超过了当前最先进的MolScribe。进一步增加分辨率并未带来更高的精确匹配率。表4: PaliGemma 2在ChemDraw数据上识别分子结构的性能。表5: PaliGemma 2在GrandStaff数据集上识别音乐谱的性能。字符错误率(CER)、符号错误率(SER)和行错误率(LER)[%]。
4.5 光学乐谱识别
PaliGemma 2还被应用于光学乐谱识别任务,将单行钢琴谱图像翻译为 kern格式的数字乐谱表示。 kern格式编码了音高和时值,以及其他常见的乐谱信息,如连音线和小节线。使用的训练数据集为GrandStaff,包含53.7k张图片,并使用官方的训练、验证和测试集进行训练。在训练过程中,使用了原始图像和经过合成增强的图像,而评估则在未经失真的原始图像上进行。评估指标与Sheet Music Transformer相同,使用了归一化的平均编辑距离。具体地,字符错误率(CER)评估字符级别的错误,符号错误率(SER)评估符号级别的错误(结合多个字符),而行错误率(LER)则基于**kern编码中的整行进行评估。
表5展示了结果,PaliGemma 2在896px²分辨率下取得了最佳的错误率表现。将模型规模从3B增加到10B并未进一步降低错误率。
4.6 生成长篇细粒度图像描述
生成包含细粒度细节的长篇图像描述在多模态学习中有诸多应用,例如用于训练具有良好可控性的文本到图像生成模型。为此任务微调PaliGemma 2,使用DOCCI(Descriptions of Connected and Contrasting Images)数据集进行训练,该数据集包含15k张图像,每张图像配有详细的人工标注英文描述,平均长度为7.1句(639个字符,136个单词)。这些描述涵盖了物体的空间关系、物体计数、文本呈现及世界知识等信息。
首先,PaliGemma 2在DOCCI的训练集上进行微调,探索了PaliGemma中建议的超参数范围。根据测试集的困惑度(perplexity)选择最优模型,并在100张图像的
qual_dev
集上生成图像描述,最大解码长度为192。随后,进行了人工评估,评估每个生成句子与图像内容在事实上的一致性(具体见附录B.5中的评估协议)。基于这些评估,选择与事实最一致的模型,并在训练集和测试集的联合数据上重新训练,随后在qual_dev集上进行另一轮人工评估。表6中的结果表明,微调后的PaliGemma 2模型生成的句子在事实一致性上优于许多流行的VLM,这些VLM通常在比PaliGemma 2多10到100倍的大规模高质量描述数据集上进行了指令微调。可以预见的是,增加模型规模和分辨率均提升了事实一致性。
表6: PaliGemma 2在DOCCI数据上生成长标题的结果。Pali*模型是在448px2上在DOCCI上微调过的模型;其他基线是在广泛的任务上进行指令微调。平均预测长度(字符和句子数)以及非蕴含句子(NES)百分比,用于衡量事实不准确性。
4.7 空间推理
PaliGemma 2 等视觉语言模型在物体定位相关任务上表现出色,如指代表达理解和图像分割等任务。这些任务和相关的基准通常依赖机器生成的注释,容易忽略复杂的错误模式,比如涉及否定的情况。为解决这些问题,Visual Spatial Reasoning (VSR) 基准被设计出来,用来评估 PaliGemma 2 的空间推理能力。VSR 被设置为一个分类任务,模型需要判断图像中物体空间关系的描述是否正确。为了利用 PaliGemma 2 灵活的文本接口,任务被转换为一个是非问答任务。表7的结果显示,PaliGemma 2 在性能上超过了之前的微调模型,并且微调后性能显著优于文献中的强零样本模型 InstructBlip。模型规模的增加带来了显著的优势,显示出语言理解能力的提升,而超出224分辨率并未带来进一步改善。
表7: PaliGemma 2在VSR的零样本和随机测试集上的准确率。展示了来自文献的一个经过微调(LXMERT)和零样本(InstructBLIP)的基线。
表8: PaliGemma 2在MIMIC-CXR数据上进行放射学报告生成的性能。报告CIDEr(C)、BlEU4(B)、Rouge-L(R)和RadGraph F1分数(一种临床指标)。
4.8 放射学报告生成
为了探索 PaliGemma 2 在医疗领域的应用能力,将其用于自动生成胸部X光报告,这一任务可以看作是对X光图像的长篇描述生成任务。PaliGemma 2 在MIMIC-CXR数据集上进行了微调,该数据集包含37.7万张图像(来自波士顿贝斯以色列女执事医疗中心的22.8万例放射研究),并附有自由文本的放射学报告。训练、验证和测试集的划分与相关文献一致。为了提高报告质量,使用了大型语言模型(Gemini 1.5 pro)去除报告中提及的先前X光信息,因为模型无法访问这些信息。
报告质量通过RadGraph F1得分评估,即通过 RadGraph 提取参考报告和生成报告中的实体,并计算它们之间的F1值。RadGraph不仅考虑了报告中发现的异常,还分析了它们与图像特征的关系。表8显示了PaliGemma 2模型与文献中的基线模型的性能。测试集上的结果显示,PaliGemma 2 在 RadGraph 评分上达到了最新的领先水平。增大分辨率和模型规模均带来了小幅度的性能提升。
4.9 CPU推理和量化
在某些情况下,可能需要在没有加速器的设备上运行PaliGemma 2的推理。那么需要知晓CPU上运行PaliGemma 2的运行时间和质量。以下简要介绍使用gemma.cpp框架的一些实验结果。gemma.cpp是一个轻量级、可移植的C++推理引擎,支持8位切换浮点(switched-floating-point)量化。当然,CPU推理还有其他选择包括llama.cpp3、XNNPack4等。
表9:在不同架构上使用基于gemma.cpp实现的仅CPU推理的速度测量结果。测试模型为微调后的 PaliGemma 2 3B(图像大小 224x224 像素),采用贪婪解码策略。预填充(prefill阶段)260个token,然后在解码过程中调用11次extend。
为了评估仅使用 CPU 进行推理时的速度表现,使用 gemma.cpp 在四种不同的架构上运行了 PaliGemma 2 的推理测试。所用模型为在 COCOcap 上微调的 PaliGemma 2 3B(224px²)检查点,以及 gemma.cpp 中提供的 PaliGemma 示例图像。输入提示“describe this image”生成了 256 + 4 = 260 个预填充 token(图像 + 文本)。输出响应为“A large building with two towers on the water”,包含 11 个 token。所有测试均使用 batch size 为 1。结果如表 9 所示,展示了在不同处理器上(针对这一具体场景)的性能表现。
表10:TPU上Jax/f32推理与CPU上量化gemma.cpp推理的效果比较。测试模型为微调后的 PaliGemma 2 3B(图像大小 224x224 像素)的单次运行。与表 13 中 Jax 版本的显著差异,是由于在 COCOcap 和 TextCaps 任务上使用了贪婪解码造成的。相对数值基于指标值在四舍五入到一位小数之前的计算结果。
根据对 PaliGemma 的评估,已经知晓将 32 位浮点数(f32)转换为 16 位(bf16)权重是可行的, 不会导致质量损失。在这里,将其与 gemma.cpp 的混合量化方法进行比较。表 10 展示了针对五个微调数据集的质量对比(这些数据集涵盖了不同任务)。对 PaliGemma 2 3B(224px²)分别基于这五个数据集进行了微调。随后,在 Jax 和 gemma.cpp 中对微调后的模型检查点进行了评估,量化后的相对质量显示,几乎没有实际的质量差异。
- 总结 ========
PaliGemma 2是PaliGemma的升级版本,是一款基于Gemma 2语言模型系列的开源视觉语言模型。它将之前使用的SigLIP-So400m视觉编码器与不同规模的Gemma 2模型(从2B到27B)相结合。该模型在三种分辨率(224px2、448px2和896px2)下分多个阶段进行训练,赋予其广泛多样的知识,方便后续进行微调迁移。由于涵盖不同模型大小和分辨率,得到的基础模型家族可以用来研究影响迁移性能的因素(如学习率),并分析任务类型、模型大小和分辨率之间的相互作用。PaliGemma 2扩展了迁移任务的数量和范围,包括表格结构识别、分子结构识别、乐谱识别等相关任务,以及长篇细粒度文本描述和放射学报告生成等任务,并在这些任务上取得了最先进的结果(SOTA)。