从纯cv进阶到multi-modality。仍旧是关注lowlevel视觉,这是今年新出的Q-instruct中的第二篇文章,Q-boost。
Q-instruct系列全称应该是Q-Future,作者团队今年出了大概4篇关于lowlevel多模态的文章。Q-Future/Q-Instruct: [IQA, Low-level Vision, MLLM] Low-level visual instruction tuning, with a 200K dataset and a model zoo for fine-tuned checkpoints. (github.com)今天来讲解一下个人对其中一篇Q-boost的理解。
首先,作者的一贯思想是认为自从GPT-4V的多模态模型出世以来,整个highlevel的多模态效果是比较理想,当时这是相对的,而lowlevel领域反而不怎么受到关注。作者首先认为最直接的原因是没有一个公开的lowlevel数据集,于是在第一篇Q-instruct文章中提出了一个datapath的数据集,基于llava和mpo(mPLUG-Owl-2)为backbone去tuning了新的模型,对于底层视觉的回答还是比较满意的。这篇有时间会单独分享,今天主要还是看boost。
而boost的出发点是作者认为lowlevel任务并没有一个很好的视觉质量估计方式。就是这个词:visual quality assessment。作者多次提到这个visual quality assessment,为了能够和highlevel之间减少差距作者提出了两种策略来实现更好的视觉质量估计visual quality assessment。
第一种策略便是:Triadic-Tone Integration 三种整合的微调方式(这个翻译是根据个人的感觉来的)
什么叫三种整合的微调方式呢?
在此之前还有两个词要说一下:IQA和VQA分别是:image / video quality assessment。图像或视频质量估计。
简单说一下视频质量估计,简单来说就是取固定的时间取帧,然后走单张image的估计方式,然后加权平均一下,所以下面主要说单张image的估计方式,video的原文公式如下:
接着说单张IQA的处理方式,首先还是上面说的第一种策略TTI。
TTI是啥呢?
我个人的理解是首先transformer的输出可以理解为对某些词token的相关程度的返回。
比如我正常的返回值是good,mid,bad。那么经过多头注意力之后的结果在不加softmax之前其实那个数字表示的就是三个词分别的关联程度,也可以理解成出现在输出文本中的概率。
然后把这样的概率先经过log函数,变成log(good,mid,bad)。然后再经过softmax返回,这样返回的值分别代表每一个评价的概率,当然如果返回文本的话直接返回概率最大的就行。但是作者想通过zeroshot的方式返回,这个zeroshot我看有很多种理解方法,比如什么不训练直接推理的结果什么什么的,但是这里作者的意思应该是zeroshot score。就是要通过一个分数来表达图像的质量。
具体的方式为:)等下,这里还要插一句关键的,作者开始就说了,之前评判图像的标准都是两种状态:good or bad,作者首先认为两种太单一了不能够充分的表达图像的好坏,因此作者加入了一个mid变成了三种状态。其实对于文本返回来说感觉没啥区别就是多了一个中间值,但是作者一直想要比较的是zeroshot score,也就是分数,这就不一样了,为啥呢?
看一下这个分数是咋生成的,刚才经过sftmax之后的good mid bad,已经是三个0-1之间的概率了,而且这三个加起来等于1,sftmax这个和等于一对于这个很重要,所以要提一下。
ok,zeroshot score就等于:1*P(good)+0.5*P(mid)+0*P(bad)。
这里的P是经过sftmax之后的分别的概率值。
原文是这样写的:
原文没有提到bad的概率,但是仔细想一下可以明白bad前面的系数是0,所以可以省略了,而正因为sftmax返回的值的和加起来等于1,所以这个公式才成立,才具有普遍性。
再其次,如果只有good和bad,然后bad还等于0,那其实很难区别出好有多好,坏有多坏,而加入一个mid,还是那句话,虽然在文本的返回上只是多了一个token罢了,但是这个token如果经过log和sftmax之后可就是一个有权重的系数了,这样的影响是远远比只有good和bad要大的。这才是为什么这个分数可以更好的表达出图像好坏的重点!
--------------------
ok,接下来是第二个策略,简单来说就是作者认为对于连续的图,ok,连续的图,为啥说是连续的图呢,因为开始作者也不确定策略2的效果啥样,然而经过试验发现,策略二只对VQA有效果,对IQA可以说不仅没有增强反而还弱化了,所以结论可以说是对于连续的图来说,就是视频。
第二个策略叫:Multi-Prompt Ensemble (MPE)
这个是啥意思呢?
看字面意思是什么多头提示词的整合。
那其实作者的出发点是觉得是否,好,不好,中等,这样的评价在横轴上是可以足够表达了,但是深度上是不是也可以考虑增加一些token呢?为此作者,在好的基础上加了更多的形容词比如:
用更多的形容词形容一种状态,但是后面根据实际试验发现,如果单张也就是IQA来说,加入了MPE的效果反而不如最原始两种的状态。就是好或坏的状态。MPE对于VQA来说确实可以给到更多的形容,更多的信息,从而更准确的评价出VQA。
然而对于IQA来说,这样的形容反而会让本来就单一的图像返回的时候更加混乱了,并没有什么好的效果。因此作者并不建议IQA使用第二种策略。
看这句话:
IQA需要的是更稳定更明确的性质,过多的提示词反而会引发混乱。
下面作者紧接着也说了对于VQA任务,更多的提示词可以给更丰富的信息,让模型更好的返回更合适的结果。
ok
end....