Redian新闻
>
BLIP-2:下一代多模态模型的雏形

BLIP-2:下一代多模态模型的雏形

公众号新闻

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【多模态学习】微信技术交流群

作者:竹鼠商人  | (源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/606364639

最近ChatGPT风头正劲,但只能理解文字或多或少限制其才华的发挥。得益于Transformer在NLP和CV领域的大放异彩,多模态近几年取得了非常大的进步。但之前的工作大多数局限在几个特定的,比如VQA,ITR,VG等任务上,限制了其应用。最近,Junnan Li大佬挂出了他最新的杰作BLIP2。让我对多模态模型有了一些新的认识,希望通过本文分享一下我的想法。由于本身水平有限,加上很长时间没有survey过相关领域的论文了,里面大部分的思考可能都是闭门造车,所以不可避免有很多错误,欢迎大家指正讨论。

ALBEF,BLIP,BLIP2 都是 Junnan Li 大佬的杰作,给了我很大的启发。ALBEF去掉了笨重的Detector,BLIP统一了理解与生成,BLIP2再次刷新了我的认知,感谢大佬!

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

论文连接:https://arxiv.org/abs/2301.12597

代码仓库:https://github.com/salesforce/LAVIS/tree/main/projects/blip2

HF上的Demo:

https://huggingface.co/spaces/Salesforce/BLIP2

TL,DR


  1. 实现了开放性的多模态内容理解与生成,让我们有了更多的想象空间;

  2. 从新的视角去看待图文模态,引入了LLM模型。CV模型是传感器,负责感知,LLM模型是处理器,负责处理;

  3. 相对友好的计算资源,比起动辄几百张卡的大模型,BLIP 2 最大的模型也不过16张A100 40G;

  4. 传统图文任务上性能爆表;


从泰坦尼克号说起

BLIP2模型的多模态问答

开始前介绍论文前我们先来讨论下,实现图片中的问答,需要什么能力呢?

  1. 图片里发生了什么:一位男士在船头搂着一位女士。(感知-CV模型的能力)

  2. 问题问的什么:电影的结尾是什么?(感知-NLP模型的能力)

  3. 图片和电影有什么关系:这是泰坦尼克号里的经典镜头。(对齐融合-多模态模型的能力)

  4. 电影的结尾是什么:泰坦尼克号沉没了。(推理-LLM模型的能力)

对不同模型扮演角色的理解

从上面的问题可以看出,为了解决这个问题,需要几个模型配合一下。其实自从多模态模型(特别是图文多模态模型)出现,模态之间怎么配合就是个问题

ViLBERT

19年20年的时候,ViLBERT和Uniter采用了Object-Text对来提升模型对图片的理解能力。Object的引入,不可避免的需要一个笨重的检测器,去检测各种框,使得图像模态显得比较笨重。而且检测器模型不可避免的会存在漏检的问题,可以参考后来Open-Vocabulary一些工作,比如ViLD。这一阶段,显然对图像的理解是多模态的重头戏,文本更多是辅助图像任务的理解。

ViLT

到了21年22年,去掉检测器成了主流,ViLT,ALBEF,VLMo,BLIP 等等都抛弃了检测器,彻底摆脱了CNN网络的舒服,全面拥抱Transformer,当然这也得益于本身ViT模型在CV领域的大放光彩,让两个模态的有机融合成为了可能。在这一阶段,文本模态感觉已经可以和图像模态平起平坐了。从在各项具体下游任务(VQA、VG、ITR)的实际表现上来说,已经比较令人满意了。但总感觉差点味道,就是复杂推理。比如VQA上的问题,大多数是简单的逻辑计算或识别,感觉还不够智能。

那么如何实现更加复杂的推理呢?众所周知,NLP领域一直领先于CV领域的发展。得益于更丰富的语料库,NLP领域的已经拥有了一些具有初步推理能力模型的研究,特别是LLM大模型的出现。(今天谷歌刚刚发布了22B的ViT,而在NLP领域这个规模的模型应该已经不算新闻了。)我对于LLM能力有多强的理解,其实也是ChatGPT之后才有明确的感知。

BLIP2

23年1月,BLIP2出来了,引入了LLM。从图像上看,BLIP2大概由这么几个部分组成,图像(Image)输入了图像编码器(Image Encoder),得到的结果与文本(Text)在Q-Former(BERT初始化)里进行融合,最后送入LLM模型。我是学自动化出身的,从自动化的角度看看BLIP2。

  • 图像和文本:自然信号;

  • 图像编码器(Image Encoder):传感器(图像);

  • Q-Former:传感器(文本)+ 融合算法(Query);

  • LLM:处理器。

之前的模型大多都关注在了传感器和融合算法的设计上,但忽略了处理器的重要作用。BERT模型虽然能理解文本,但却没有世界观的概念,没有庞大的背景知识库,只能作一个传感器。只有LLM模型,才能实现这一角色,统一起各个模态的信号,从一个宏观的角度去看待这个问题。这里引用一段原文中的话。

Powered by LLMs (e.g. OPT (Zhang et al., 2022), FlanT5 (Chung et al., 2022)), BLIP-2 can be prompted to perform zero-shot image-to-text generation that follows natural language instructions, which enables emerging capabilities such as visual knowledge reasoning, visual conversation, etc.

目前看,或许LLM就是下一代多模态模型的关键一环。

言归正传,我们开始介绍论文。

如何统一多模态的表征

LLM本质上是个语言模型,自然无法直接接受其他模态的信息。所以如何把各个模态的信息,统一到LLM能理解的特征空间,就是第一步要解决的问题。为此,作者提出了Q-Former。

Q-Former的设计

为了融合特征,那Transformer架构是最合适不过的了。熟悉ALBEF或者BLIP的同学或许发现,Q-Former的结构和ALBEF其实很像,如果看代码的话,可以发现就是在ALBEF基础上改的。

相较于ALBEF,最大的不同,就是Learned Query的引入。可以看到这些Query通过Cross-Attention与图像的特征交互,通过Self-Attention与文本的特征交互。这样做的好处有两个:(1)这些Query是基于两种模态信息得到的;(2)无论多大的视觉Backbone,最后都是Query长度的特征输出,大大降低了计算量。比如在实际实验中,ViT-L/14的模型的输出的特征是257x1024的大小,最后也是32x768的Query特征。

这里其实有点疑问,也欢迎大家讨论。论文里是这样讲的:

This bottleneck architecture works together with our pre-training objectives into forcing the queries to extract visual information that is most relevant to the text.

作者通过Q-Former强制让Query提取文本相关的特征,但如果在推理时没有文本先验,那什么样的特征算是相关的呢?

针对Q-Former的三个训练任务分别是 Image-Text Contrastive Learning (ITC),Image-grounded Text Generation (ITG),Image-Text Matching (ITM)。其中 ITC 和 ITM 任务,与ALBEF中的实现类似,只不过图像特征改为了Query的特征,具体可以参考代码实现(ITC和ITM)。这里比较特别的是ITG任务,与ALBEF中的MLM不同,这里改成了生成整句Text的任务,类似Captioning,具体代码实现ITG。实际上,这几个任务都是以Query特征和文本特征作为输入得到的,只不过有不同的Mask组合,具体可以参考上图中的右图。

第一阶段,对于模型的训练,就是由以上三个任务组成,通过这几个任务,实现了对于特征的提取与融合。但现在模型还没见过LLM。我们现在用传感器完成了数据的提取与融合,下一步,我们得把数据转换成处理器能识别的格式。

变成LLM认识的样子

第二阶段的训练架构

通过第一阶段的训练,Query已经浓缩了图片的精华,现在要做的,就是把Query变成LLM认识的样子。

为什么不让LLM认识Query,而让Query变成LLM认识呢?这里的原因有两:(1)LLM模型的训练代价有点大;(2)从 Prompt Learning 的观点来看,目前多模态的数据量不足以保证LLM训练的更好,反而可能会让其丧失泛化性。如果不能让模型适应任务,那就让任务来适应模型。

这里作者针对两类不同LLM设计了不同的任务:

  1. Decoder类型的LLM(如OPT):以Query做输入,文本做目标;

  2. Encoder-Decoder类型的LLM(如FlanT5):以Query和一句话的前半段做输入,以后半段做目标;

为了适合各模型不同的Embedding维度,作者引入了一个FC层做维度变换。

至此,模型两阶段的训练方法就介绍完了。

训练细节

作为图文预训练的工作,工程问题往往是关键。BLIP2的训练过程主要由以下几个值得关注的点:

  1. 训练数据方面:包含常见的 COCO,VG,SBU,CC3M,CC12M 以及 115M的LAION400M中的图片。采用了BLIP中的CapFilt方法来Bootstrapping训练数据。

  2. CV模型:选择了CLIP的ViT-L/14和ViT-G/14,特别的是,作者采用倒数第二层的特征作为输出。

  3. LLM模型:选择了OPT和FlanT5的一些不同规模的模型。

  4. 训练时,CV模型和LLM都是冻结的状态,并且参数都转为了FP16。这使得模型的计算量大幅度降低。主要训练的基于BERT-base初始化的Q-Former只有188M的参数量。

  5. 最大的模型,ViT-G/14和FlanT5-XXL,只需要16卡A100 40G,训练6+3天就可以完成。

  6. 所有的图片都被缩放到224x224的大小。

实验部分

作者首先用了整整一页的篇幅,为我们展示了BLIP2的 instructed zero-shot image-to-text generation 能力。这里暂且按下不表,到后面一起讨论。我们先看看BLIP2在传统的一些图文任务上的效果。

Image Captioning

Captioning 实验结果

作者用图片配合文字 prompt “a photo of”作为模型的输入。训练过程中冻结LLM,训练Q-Former和CV模型。可以看到,在域内数据集(COCO)上,其表现并没有非常亮眼,但在域外数据集NoCaps上,BLIP2显示出了强大的泛化能力,相交之前的模型有明显的提升。

Visual Question Answering

VQA 实验结果

VQA 任务 Pipeline

训练的参数和IC任务一致,主要是Q-Former和ViT。不同的是,Q-Former和LLM都有Question作为文本输入。Q-Former的文本输入,保证了Query提取到的特征更加的精炼。

Image-Text Retrieval

Image-Text Retrieval 实验结果

ITR任务,作者只采用了第一阶段的Q-Former和ViT来做,没有引入LLM。具体的做法与ALBEF类似,先通过ITC任务算出点积相似度,再取Topk的匹配对,作ITM任务,得到最后的Matching Score。Flickr30K上再次刷新了SOTA,特别是I2T,基本饱和了。

Instructed Zero-shot Image-to-Text Generation

我觉得这个能力才是BLIP2最亮眼的地方。文章中是这样说的:

Selected examples of instructed zero-shot image-to-text generation using a BLIP-2 model w/ ViT-G and FlanT5XXL, where it shows a wide range of capabilities including visual conversation, visual knowledge reasoning, visual commensense reasoning, storytelling, personalized image-to-text generation, etc.

首先我们来看看BLIP2对信息的检索能力,下面几个例子都是对图片中物体的背景知识提问,可以看到,模型都给出了相应的答案。这里体现的实际上是LLM强大的背景知识库。图中有什么(ViT)+ 问的是什么(Q-Former,LLM)+ 找答案 (LLM)。

信息检索能力

下面的几个问题,都是要求模型对图片的内容进行进一步的推理。比如图二,需要建立对男人惊讶和鸡之间的因果联系。

事实推理能力

最后的几个问题是开放性的生成问题。需要模型有一定的长文本生成能力。

开放生成问题

为了进一步探索BLIP2模型的效果,我也自己测试了一些Demo,这里采用的是ViT-G和FlanT5的模型组合,Hugging Face 上提供的CKPT加起来有50G左右了,作为一个平时接触CV多一点的人来看,是想当炸裂的,一般我模型的CKPT和最后那个零头差不多。

模型参数文件

先介绍一下测试的输入格式,这里主要参考:

GitHub - NielsRogge/Transformers-Tutorials: This repository contains demos I made with the Transformers library by HuggingFace.

我测试了如下形式的输入样例,其中比较特别的是Incontext Learning,这里除了图片中的信息,我还会给出一段文本中的信息,希望模型通过综合两个模态的信息给出答案。

  • Single-question answering

    • Template:"Question: {} Answer:"

    • Input: [Query, Template]

  • Multi-questions answering

    • Context: "Question: {} Answer: {}."

    • Template: "Question: {} Answer: "

    • Input: [Query, Context, Template]

  • Incontext Learning

    • Template: "Context: {} Question: {}"

    • Input: [Query, Template]

  • Instructed Generation

    • Input: [Query, Command]

下面是一些测试样例以及有趣的发现。粗体为模型的输出结果。

样例:Airbus 380

首先,我们问几个简单的问题

Q: What type of aircraft is this?
A: a a380
Q: What are the characteristics of this type of aircraft?
A: the a380 is the largest commercial passenger airline.

可以看到BLIP2基本给出了正确的回答,但当我询问飞机载客量时,模型确依然给出了380,推测可能是这个飞机和380这个数字的联系比较紧密。

Q: How many people can this aircraft accommodate?
A: 380

于是,同样的问题,我们给出一点文字上的提示,这里摘取了一段Wiki上的介绍送入模型。

C: The Airbus A380 is a large wide-body airliner that was developed and produced by Airbus. It is the world's largest passenger airliner and only full-length double-deck jet airliner. Airbus studies started in 1988, and the project was announced in 1990 to challenge the dominance of the Boeing 747 in the long-haul market. The full-length double-deck aircraft has a typical seating for 525 passengers, with a maximum certified capacity for 853 passengers.
Q: How many people can the aircraft in this figure accommodate?
A: 853

这时,我们可以看到,模型成功的给出了回答。也就是说,模型有联合两个模态信息联合推理的能力。如果我们使点坏呢,比如给出错误的Context。

C: The Airbus A350 is a long-range, wide-body twin-engine jet airliner developed and produced by Airbus.
Q: What type of aircraft is this figure?
A: airbus a350

可以看到,模型输出了错误的答案。可能由于本身LLM对文字更加关注,而且Figure的概念可能对他来说并不熟悉,在他看来,32个Query只不过是带Visual信息的Word Token。

样例:交通标志

在这个样例中,我们直接让模型自己生成个问题。

Q: Give me several question about the figure.
A: What is the speed limit on the road?

接着,我们问问看,模型自己知道答案么?

Q: What is the speed limit on the road?
A: 40 mph.

可以看到,模型准确地给出了限速。接着我们让他做一些简单逻辑判断。

Q: Can I drive 70 mph here?
A: No.
Q: Can I drive 30 mph here?
A: Yes.

模型竟然都能够正确的给出答案。最后,来个OCR的任务,让模型输出牌子上写了什么。

Q: What is written on this sign?
A: speed limit 40.

模型同样也给出了正确的答案。可以看到,模型对于逻辑判断和图片中文字的识别,都有一定的基础。

样例:表格

这里先用文章中自己的表格做测试。

Q: What is the name of the table?
A: a comparison of the mri and ct scans.

Emmm,属于是自家人不认自家人了。问问他认识自己不?

Q: Do you know BLIP2?
A: BLIP2 is a protein that in humans is encoded by the BLIP2 gene.

好吧,不认识。接着又有一些问题,模型的回答也不是很好。

Q: Which model in the table performs best?
A: dcm vs dcm vs dcm vs dcm vs dcm vs dcm.
Q: How many training parameters does BLIP2 have?
A: BLIP2 has a total of ten training parameters.

原因的话,其实比较好理解,表格的图片相对于自然图像的Gap较大,模型本身可能缺乏相应的训练数据;其次,虽然32的Query使得信息变得精炼,但也使得模型的表达能力有了瓶颈,加上224x224的大小,这种小文字的识别其实是比较困难的。我们看下个例子。

样例:图表1

我们让模型自己问个问题。

Q: Give me several question about the figure
A: What is the percentage of survival for those with no adolescent treatment?

可以看到,模型提问的大致方向是可以的,比如存活率。但是图表中的Adjuvant Treatment却被识别成了adolescent treatment。这说明,模型有一定的OCR能力,但不多。尤其是对于这种比较小又不常见的文字,很容易识别错误。

样例:图表2

同样,先让模型自己问个问题。

C: Caption: Fig. 3. The hospitalization and ICU figures from our simulation.
Q: Give me several question about the figure
A: What is the population of the city?

自问自答一下。

C: Caption: Fig. 3. The hospitalization and ICU figures from our simulation.
Q: What is the population of the city?
A: NYC population 8 million.

从这里不难看出,模型其实对于常见的单词,即使图片比较小也能够很好地识别到。最后来个最难的。

Q: On day 20, approximately how many people were hospitalized?
A: 200, 000.

这个问题的要求其实挺高,需要模型根据坐标去推断数值,不出意外的回答错误了。

Limitation

首先,不可否认的是,这篇工作确实让我们的想象空间更多了,尤其是 Instructed Zero-shot Image-to-Text Generation 的能力,我觉得肯定还有没有发现的潜在能力。但我们从测试样例中也看到,模型还存在一些问题。在文章中,作者也给出了一些Bad Case,比如错误的建立联系,错误的推断依据以及过时的知识库。

Bad Case

作者在文中对自己模型的不足主要解释为,首先,

However, our experiments with BLIP-2 do not observe an improved VQA performance when providing the LLM with in-context VQA examples. We attribute the lack of in-context learning capability to our pretraining dataset, which only contains a single image-text pair per sample.

由于图文数据集大多数是一对一的匹配,所以很难让模型建立上下文的联系。

其次,

BLIP-2's image-to-text generation could have unsatisfactory results due to various reasons including inaccurate knowledge from the LLM, activating the incorrect reasoning path, or not having up-to-date information about new image content.

这个主要是由于LLM模型本身局限决定的。

除了作者提到的几点,我觉得一下几点也是可以探索的:

  1. 细粒度的识别,由于图像的信息都浓缩在了32个Query中,所以能否识别细粒度信息以及图像中重要的位置信息就成了疑问;

  2. 更多的任务,BLIP2强大zero-shot能力,能不能应用在更多的任务上,多模态的类似VG,单模态的类似Classification。

  3. 当然从传感器与处理器的角度去看,其他模态(比如Audio)也可以拿个传感器去测,然后送给处理器分析分析hhh

当然,BLIP2的能力应该还远远没有被挖掘完,等有新的认识了再分享。


点击进入—>CV微信技术交流群


BLIP-2 论文和代码下载


后台回复:BLIP2,即可下载论文和代码


多模态学习 交流群成立


扫描下方二维码,或者添加微信:CVer222,即可添加CVer小助手微信,便可申请加入CVer-多模态学习 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。


一定要备注:研究方向+地点+学校/公司+昵称(如多模态学习+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲扫码或加微信号: CVer222,进交流群


CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!


扫码进群

▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
NeurIPS 2022 | UCLA推出科学问答新基准,大语言模型迎来多模态新挑战!从病毒清零烂尾看大陆社会,体制和道德的沉沦ChatGPT能取代多少程序员?中文多模态模型问世!IDPChat生成图像文字,只需5步+单GPUAAAI 2023|基于多模态标签聚合的视频检索模型TABLE,多项SOTAGPT-4刷屏,这家中国AI企业多模态大模型已落地应用多年,新版本内测了(可申请)巴黎,巴黎(7)征稿 | ACM MM 23 Workshop - 基于大语言模型的多模态研究和应用AAAI 2023 | 多模态对话的SPRING来了!无需标注就能做多模态问答预训练中国人民大学卢志武:ChatGPT对多模态通用生成模型的重要启发挪威交响诗(十六)终结篇——游吟人生微软:多模态大模型GPT-4就在下周,撞车百度?谷歌最高优先级项目曝光:下一代AI搜索,誓要打败ChatGPTCVPR 2023 | 中山大学HCP实验室新突破:用因果范式再升级多模态大模型白薯,红薯,紫薯的特色?从LLM到MLLM,多模态大规模语言模型KOSMOS-1赋予了语言模型看见世界的能力李志飞:关于GPT-4的八点观察,多模态大模型竞赛开始哈工大讯飞联合实验室发布图文多模态预训练模型VLEOFA-Chinese:中文多模态统一预训练模型GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?ASML:下一代EUV光刻机将于2025年首次部署清华朱军团队开源UniDiffuser:首个基于Transformer的多模态扩散大模型抗疫,可以学习印度5620亿参数,最大多模态模型控制机器人,谷歌把具身智能玩出新高度这套SU“动态模型库”在一线设计院传疯了!(附神器下载)CVPR 2023|哈工大南洋理工提出全球首个「多模态DeepFake检测定位」模型:让AIGC伪造无处可藏中山大学HCP实验室新突破:用因果范式再升级多模态大模型清华朱军团队开源首个基于Transformer的多模态扩散大模型,文图互生、改写全拿下GPT-4震撼发布:多模态大模型,升级ChatGPT和必应,开放API,太太太强了!李开复发布“英雄帖”:亲自筹组Project AI 2.0,广召大模型、多模态等顶级人才|甲子光年清华朱军团队开源UniDiffuser:首个基于Transformer的多模态扩散大模型!文图互生、改写全拿下!7 Papers & Radios | 爆火论文打造《西部世界》雏形;OpenAI终结扩散模型AIGC玩出新花样!Stable Diffusion公司提出基于扩散模型的视频合成新模型多模态如何自监督?爱丁堡等最新「自监督多模态学习」综述:目标函数、数据对齐和模型架构浅议汉代多元化的荒政机制
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。