点击下方卡片,关注 「AI视界引擎」 公众号
img
本文将介绍我们的最新工作: Self-Supervised Visual Preference Alignment 。该工作首次发现并验证 了:我们能通过无监督的方式构造偏好样本对 ,来解决视觉语言模型的偏好对齐问题 。整个过程无需GPT-4或者是人类参与打标签!
paper已于4月放上arixv ,以下是论文链接:https://arxiv.org/abs/2404.10501
代码也已经整理好并开源,欢迎各位大佬多多Star:https://github.com/Kevinz-code/SeVa
本文基于的是LLaVa-1.5-7B/13B来完成的。
先直接上Demo感受一下,做偏好对齐 前后模型输出的变化:
图2 用SeVa的方法对LLaVA做Alignment前后,模型的输出变化
unset
unset0 前言unset
unset
目前视觉语言大模型(简称VLM,本文专注于多模理解)基本上在流程上非常的成熟:Pretrain + SFT + Alignment (Optional)。 去年下半年开始,工业界和学术界主要聚焦在多模态大模型的数据(数据构造,配比,打标签) 和模型结构(Connector,打开模型权重等) 的设计上,目标是提升VLM的理解能力(传统QA+多模态benchmark)。但是,我们自己发现部分开源大模型(包括内部使用的),虽然在bmk上有不错的性能,但在用户体感方面会比较欠缺:不遵循指令,产生幻觉回答,违背3H准则(helpfulness, harmless, honest)。因此,我们想聚焦于多模态大模型的Alignment方向,来探索该领域,为研究者提供一些新的insight。
我们认为,多模态对齐的一大难点在于偏好数据的构造。 目前的事实是:纯NLP领域的偏好数据非常昂贵且稀缺 (一般需要GPT-4或者人类的参与),Vision-Language领域的偏好数据还没有形成一个成熟的pipeline(数据构造方式 ,数据质量 ,数据的效果 都还没完全得到验证)。因此,本文首次提出一套自动化构造偏好数据的pipeline用于Alignment的训练。 我们通过严格的实验,从多个角度展示了该pipeline对多模理解和用户友好性的提升。
unset
unset1 简要概括SeVaunset
unset
本文发现了Vision-Language-Models (VLM)对于图像层面的augmentation非常敏感(轻微的图像增广会使得VLM对同一个Question产生错误且不同的回答 )。因此本文将原始图像产生的回答作为正样本 ,将增广后的图像产生的回答作为负样本, 用于构造DPO的数据集并训练。本文验证了,仅仅使用8k构造的无监督的数据 能够显著提高VLM的Instruction following能力(OCR, chain-of-though, helpfulness),降低幻觉,并且在多模态等benchmark上提升明显 。
图3 SeVa的6行伪代码实现
本文还进行了诸多关于SeVa的细化和分析,有很多有意思的结论 :
- SeVa能够被视作一种特殊的对比学习方法。
- SeVa构造的数据进行DPO训练后,模型会产生更长token的输出,并且抗干扰能力更强。
- 正负样本之间的margin很重要 ,过大或过小都会sup-optimal。
- alignment过程中的LoRA参数 非常关键。
unset
unset2 SeVa的动机unset
unset
我们基于之前的一些研究猜想,VLM对于图像层面的扰动会比较敏感(不同于传统视觉领域的contrastive learning,图像增广之后的两个view会拥有相似的semantic特征)。我们将多种图像层面的augmentations分别作用于LLaVA-1.5的测试阶段,并在3个常规的多模态benchmark上运行,得到的结果如下:
img
图4 在3个常规多模态bmk上对LLaVA做不同图像层面的test-time-augmentation (TTA),得到的测试准确率。
我们不难发现,图像扰动会大幅降低 模型的回答准确率,或者是叫做错误的回答。 那么,如果我们将原始图像+question产生的responses作为偏好学习中的正样本 ;将增广后的图像+question产生的responses作为偏好学习中的负样本, 就能轻而易举的构造出任意数量且廉价的偏好样本集合(不需要任何人类或者是GPT-4的标注) 用于多模态大模型的Alignment的训练**。** 因此**,** 我们随即通过实验验证了该想法的合理性,如下表所示:
img
表1 6种不同的图像增广产生的DPO正负样本数据用于训练。在MMVet,MMB,POPE上的结果。
我们发现,不同augmentation都能构造出有效的DPO数据,即使是RandomFl。同时我们也观察到,过于强或者是过于弱的augmentation都会导致sub-optimal的性能。因此,我们最终的结论是:
"self-generated augmentation pairs are suitable preference sample to improve multi-modal abilities, and hard negatives are most preferred." (来自原文, 自生成的DPO样本是能够普遍提升多模态性能,但是那些难的负样本才是最有效的 )
unset
unset3 SeVa的流程图、实现细节、与对比学习的联系unset
unset
流程图
流程图比较容易理解,之前已阐述过(见图3)。
img
图5 SeVa的流程图
实现细节:
数据:LLaVA665k (用其中的TextVQA和OCRVQA来构造DPO数据)
模型:基于LLaVA-v1.5-7B, LLaVA-v1.5-13B
训练:用LLaVA-v1.5的pretrained+SFT作为DPO的初始化权重,结合LoRA训练LLM。r默认在512/1024。
与对比学习的关系
我们系统的阐述了在DPO训练中用到的偏好分布 与对比损失 之间的关系。他们的形式在一定程度上是一致的,但是核心区别在于负样本的定义(见论文appendix和Sec3.3)。和对比学习统一之后的好处是,我们能够轻易的通过对比学习的思路,在DPO中添加更多由SeVa构建的负样本对。从而能够推导出一个更加general的DPO的形式(见appendix) 。
img
图6 SeVa与对比学习的联系
unset
unset4 SeVa主实验结果unset
unset
多模态benchmark
我们的方法在9个benchmark上都几乎能够做到稳定的提升。其中,在GPT-4评估的benchmark MMVet, LLaVA-bench上提升显著,在幻觉的指标上POPE, SHR上也有稳定的性能提升
img
表2 SeVa在多模态和VQA评估基准上的效果
SeVa与SFT的比较
这里的实验是想验证,SeVa DPO的范式比起cont. SFT微调VLM上具有更大的优势。比如,更短的训练时间,更少量的数据,无监督的pipeline,以及性能的优势。换句话说,此表也证明了Preference Alignment在某些情况会远远超过SFT的效率 。
img
表3 SeVa(DPO范式)和continual SFT的比较
unset
unset5 更多关于SeVa和DPO的探索unset
unset
更加稳定的输出
我们发现经过DPO之后,SeVa的输出会更加的与模型得到的Question更加的接近 。同时,SeVa每次回答的一致性也更高,对于不同temperature的扰动更加的鲁棒 。
表4 GPT-4评估的consistency-score
DPO带来的输出变化
通过可视化,我们发现,SeVa的输出结果比原始LLaVA(未经过DPO训练)更加的优质(在win-lose的比例上明显占优)。同时,经过DPO之后,SeVA产生了普遍比LLaVA更长更详细的回答。以上两个方面的可视化也解释了为什么SeVa能够更加的与人类的偏好对齐 。
img
图7 SeVa和LLaVA的定量对比
难的负样本是最优的
我们通过控制data augmentation中的diffusion steps的步数。我们发现,DPO需要的负样本和正样本之间需要一个非常合理的margin(过大或者过小都会导致学习的不稳定)。 换句话说,过于简单的负样本会倾向于和正样本一致,而过难的负样本可能不具备学习的意义(这种负样本可能是完全和图片不相关的回答)
图 8 Hard negative matter
欢迎大家的讨论!更多细节见原论文
论文:2404.10501 (arxiv.org)
代码:Kevinz-code/SeVa
文档作者:朱可
文档知乎链接 :[SeVa: 首个无监督范式,用于视觉语言大模型的人类偏好对齐 - 知乎 (zhihu.com)]
点击上方卡片,关注 「AI视界引擎」 公众号