©PaperWeekly 原创 · 作者 | 陈思硕
单位 | 北京大学
研究方向 | 自然语言处理
引言
多模态大模型的视觉编码器用哪种预训练 ViT?两阶段训练是否有必要?ViT 的参数应该冻结还是打开?大语言模型应该用 Base 还是 Chat 版本?是否要加入纯语言的安全对齐数据?训几个 epoch 合适?...... 随着大语言模型进入多模态时代,LLaVa、MiniGPT-4、BLIP-2、InstructBLIP 等开源视觉-语言大模型接踵而至,它们在视觉编码器、大语言模型、训练方案等关键方面各不相同,颇有“乱花渐欲迷人眼”之感。 近日,Standford 的 Percy Liang 团队在 LLaVa-v1.5 的基础上对各种视觉-语言模型的关键组件进行了系统的消融实验分析,总结成了 Prismatic VLMs: Investigating the Design Space of Visually-Conditioned Language Models 这篇文章,今天我们来进行解读,以挖掘视觉-语言模型设计中的关键要素,借鉴此文推荐的 best practice。
论文题目:
Prismatic VLMs: Investigating the Design Space of Visually-Conditioned Language Models
https://arxiv.org/abs/2402.07865
项目主页:
https://github.com/TRI-ML/prismatic-vlms
设计空间:多模态大模型的设计需要关注哪些关键要素? 目前开源多模态大模型的架构设计和训练方案逐渐趋同,典型方案如下: 模型架构 上,以 CLIP 或者其他方式预训练的 ViT 编码图像特征,通过 MLP/Q-Former 等桥接模块后得到了和语言空间对齐的特征,作为图像表征输入 LLaMa 等主干大语言模型(下图给出了 LLaVa-v1.5 的架构); 训练方案 上,先冻结住 ViT 和语言大模型,在大规模图像-文本对上训练桥接模块进行特征的对齐,第二阶段则打开桥接模块和大语言模型的参数,在高质量的视觉 SFT 数据上进行 Instruction Tuning。
在这套框架之下,存在诸多可以变换的关键要素,本文将它们归纳为以下四个部分: 优化策略: 视觉编码器的参数应该冻结还是打开?两阶段训练是否有必要? 视觉表征和图片处理: 使用哪一类预训练 ViT 最好?图像如何进行预处理效果最好? 大语言模型的选择: 应该使用 base 模型还是 chat 模型?和纯语言的对齐数据联合训练是否有用?Scaling 性质: 最佳训练 epochs 和数据量。
评测数据集与训练设定 为了评价各关键组件的不同选择的优劣,本文构建了一套全面的视觉-语言下游任务评测数据集,以采用不同关键组件选择的模型在它们上面的 zero-shot 测试性能评价不同组件选择的好坏。这套 benchmark 包含以下数据集: Open-Ended VQA: VizWiz、VQAv2、GQA 和 TextVQA; Localization: RefCOCO、RefCOCO+、RefCOCOg、OCID-Ref; Challeng Sets: VSR(空间关系推理)、TallyQA(物体计数)和 POPE(幻觉程度)。
训练数据方面,本文则遵从 LLaVa-v1.5 使用的训练数据,第一阶段对齐训练数据为从 CC3M 和 LAION 等大规模图文预训练数据集中选取的 558K 图文对,第二阶段 SFT 数据由 LLaVa Synthetic Data、Standard VQA Data、Multiple Choice VQA Data、Captioning Data、Referring Expression Data、ShareGPT(Language-Only)等混合而成,总数据量为 665K。 模型方面,本文在 LLaVa-v1.5 7B 和 13B 两个规模的模型设定下对各设计要素进行了充分的消融实验分析,下文详细解读。 设计要素1:优化策略 首先回顾 LLaVa-v1.5 的优化策略:如下图所示,第一阶段只打开桥接 MLP(Projection)的参数,进行图生文训练,对齐视觉编码器和 LLM 的表示;第二阶段则打开桥接 MLP 和 LLM 的参数,进行多模态 SFT。作者提了两个问题: Q2:视觉编码器的参数(ViT)应该打开还是冻结? A1:第一阶段图文对齐训练是冗余的,可以省去以提升训练效率。 如下图所示,在 7B 和 13B 两种规格下,只有第二阶段 SFT 训出的模型(橙色)在各测试集上的性能都与两阶段训出的模型(绿色)相当或略好,说明第一阶段图文对齐训练是冗余的,去掉它不会导致性能下降,还能省略 20%-25% 的训练时间 。 ▲ SFT 单阶段训练 v.s. 模态对齐+ SFT 两阶段训练 A2:打开视觉编码器(ViT)参数有害,尤其是导致定位任务掉点严重 如下图所示,采用单阶段训练、冻结住视觉编码 ViT 参数的模型(橙色)在大多数任务上性能最好,打开所有 ViT 参数训练会导致 RefCOCO 等视觉定位任务严重掉点 。笔者猜想:可能是 SFT 训练数据中包含的需要定位能力的部分较少,全量训练破坏了定位所需的视觉特征,如果 SFT 数据中有定位类型的数据,可能结论会有变化。
设计要素2:视觉表征和图片处理 首先回顾 LLaVa-v1.5 的视觉表征和图片处理策略:使用图文对比学习预训练的 CLIP ViT 抽取视觉表征,图片输入时使用 letterbox padding(把非正方形的图像 padding 成方形)。作者提了两个问题: A1:CLIP 和 SigLIP 明显优于 DINO-v2 和 ImgaNet-1k ViT;SigLIP+DINO-v2 组合最好 作者首先做了了只有单个预训练 ViT 模型做视觉编码器时的对比实验,测试了图文对比学习预训练的 CLIP、SigLIP(使用 Sigmoid Loss 优化的 CLIP)、纯视觉自监督预训练的 DINO-v2 和 ImageNet-1k上纯视觉有监督预训练的 ViT,模型规模都是 ViT-Large。 结果如下图所示,使用大规模图文对对比学习预训练的 CLIP 和 SigLIP 作为 LLaVa-v1.5 的视觉编码器时,对应的下游任务性能显著好于纯视觉预训练的 DINO-v2 和 ImageNet-1k ViT 。 作者进一步探究了集成两个预训练模型作为视觉编码器时哪种组合效果较好(集成的方式是在 channel,也就是 hidden dim 维度直接拼接特征),发现 DINO-v2 和 SigLIP 组合的效果最好 。作者猜测该现象是由于 DINO-v2 编码 low-leve 特征和 SigLIP 编码的 high-level 语义特征可以较好地互补。 ▲ DINO-v2+CLIP 和 DINO-v2+SigLIP 的效果对比 A2:对 CLIP 而言 Naive Resize 最好,对 SIigLIP 而言 Naive Resize 与 Letterbox Padding 相当 作者在使用 CLIP、SigLIP 作为视觉编码器的模型上分别比较了各种图像预处理策略的好坏,发现如下图左所示,对 CLIP 而言,简单的 Naive Resize 最好,而对 SigLIP 而言 Naive Resize 与 Letterbox Padding 的效果相当,对两种视觉编码器而言 resize & crop 的性能是最差的,因为 crop 部分区域会导致信息损失 。
另外,作者还探究了图像分辨率对下游任务效果的影响。如上图右所示,将图片分辨率从 224 开大到 384 对许多任务都能带来显著提升,当然相应的视觉 token 数目和计算代价也会显著上升。 设计要素3:基座大语言模型的选择 首先回顾 LLaVa-v1.5 的基座大模型选择和训练数据选取策略:使用从 LLaMa-2 SFT 而来的 Vicuna-v1.5 作为基座大模型,训练时加入纯语言的安全对齐数据。作者对此提了两个问题: Q1:使用 base 模型好还是经过 SFT 的 instruct-tuned 模型好? Q2:纯语言的安全对齐数据是否能增强模型在图文任务上的安全性? A1:base 模型和 instruct-tune 模型在下游任务上效果接近,但 base 模型幻觉更少 如下面的雷达图所示,LLaMa-2 base 充当基座的模型在各下游任务上和 Vicuna-v1.5 这个 instruct-tuned 版本充当基座的模型效果基本相当 ,而且在 VSR(Visual Spatial Reasoning)上 LlaMa-2 base 对应的性能明显更好。在可量化的下游任务指标之外,作者还定性评估了两类模型的幻觉程度,发现 base 模型产生的幻觉更少 : Instruct-tuned LMs lead to VLMs that are more verbose, prone to hallucination, and generally less specific in their response.
因此作者推荐在构建多模态大模型时使用 base 版本的 LLM 作为文本侧的基座 。
▲ LLaMa-2 base 充当基座的模型在各下游任务上和 Vicuna-v1.5 这个 instruct-tuned 版本充当基座的模型效果基本相当
▲ LLaMa-2 base 充当基座的模型比 Vicuna-v1.5 这个 instruct-tuned 版本充当基座的模型幻觉更少
A2:在纯语言的安全数据上联合训练有助于提升多模态任务的安全性 LLaVa-v1.5 使用的训练数据包括纯文本数据集 ShareGPT 中的 40K 样本,含有大量恶意 prompt 和对应的 ChatGPT 产生的较安全的回复。作者对这部分训练数据进行了消融实验,发现纯语言的安全数据几乎不影响各种多模态下游任务的量化指标(下图左),但能增强对话的安全性,降低种族主义等有害倾向(下图右)。
▲ 纯语言的安全数据几乎不影响各种多模态下游任务的量化指标(左),但能增强对话的安全性,降低种族主义等有害倾向(右)。
设计要素4:Scaling性质 作者在最后探究了训练 epoch 数、训练数据量等 scaling 相关的性质,关键结论有:
小结 优化策略: 打开桥接模块和语言模型的参数进行单阶段训练,冻结视觉编码器的参数; 视觉表征: 使用 SigLIP 或者 SigLIP+DINO-v2 当视觉编码器,图像预处理用 naive resize; 语言模型: base 模型比 instrcut-tuned 模型好,加入纯语言的安全对齐数据可以增强在多模态任务上的安全性; Scaling 性质: 训练 2 个 epoch 比较合适,添加图像多样的多模态 SFT 能带来显著收益。 作者采用以上的 best practice 训练了 7B 和 13B 版本的Prism模型,从下图可以看出性能显著优于同等参数量的 LLaVa-v1.5 和 InstructBLIP,代码和模型开源在 GitHub-TRI-ML/prismatic-vlms: A flexible and efficient codebase for training visually-conditioned language models(VLMs)( https://github.com/TRI-ML/prismatic-vlms )。
这里顺便为初入 NLP 和大模型领域的同学推荐一本宝藏技术书籍:《大模型应用解决方案 基于 GPT-3、ChatGPT、GPT-4 等 Transformer 架构的自然语言处理》 ,昵称叫“大模型黑书”:
▲《大模型应用解决方案 基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》 这本宝藏”大模型黑书“对 Transformer 架构及其在 NLP 任务中的应用介绍得很深入,覆盖了文本分类、序列标注、语义角色标注、少样本和零样本学习等应用场景和 BERT、RoBERTa、ELECTRA、T5、GPT-3、GPT-4 等一系列基于Transformer 架构的代表性预训练模型,而且每章都包含 Huggingface Transformers 代码实例,非常适合新入行者快速上手,资深 NLPer 们备一本随时参考也是极好哒~
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读 ,也可以是学术热点剖析 、科研心得 或竞赛经验讲解 等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品 ,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬 ,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱: [email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02 )快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」 也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」 订阅我们的专栏吧