8月24日,2023年TeaTalk· Online系列活动第5期——“【从视觉感知到视觉理解】-融合LLM的多模态大模型研究”主题分享线上直播活动成功举办。通过本次直播我们了解了目前融合LLM和视觉模型的方式还相对简单,多数是依赖已有的LLM和Visual encoder,并通过简单的线性层或者Q-former结构连接。此类模型的训练范式也基本为二阶段训练,着重于提升语言视觉对齐和多轮对话能力。尽管如此,目前的多模态大模型已经展现出了优秀的效果,未来多模态通用模型可能成为人工智能的下一个发展目标。视觉研究者和语言大模型研究者的研究范式呈现出越来越相近的趋势。
以下为中国移动云能力中心 PaaS产品部AI技术研究员 张燚钧博士的演讲实录。
1
什么是视觉理解大模型
首先第一部分是视觉理解大模型的基础介绍内容。
视觉理解大模型可以对图片中的场景进行描述,推理出场景中出现物体之间的关系,有利于解决依赖于场景理解的视觉问题,如越门经营。例如:
模型:一个人坐在一个餐桌旁,嘴里叼着一根烟。在他面前桌上有一杯咖啡。
这个人穿着黑色外套,手里拿着一个手机
提问:是否有人在抽烟?回答:是
视觉大模型由纯视觉能力向图文对齐的多模态能力发展,目标检测的三个层次为:
1、Zero-Shot Object Detection,即零样本目标检测,其强调的是测试集类别不在训练集中
2、Open-Vocabulary Object Detection,即开放词汇目标检测,给定图片和类别词汇表,检测所有物体
3、Grounding Object Detection,即给定图片和文本描述,预测文本中所提到的在图片中的物体位置
2
多模态对话模型
接下来是第二部分内容:多模态对话模型。
BLIP-2 通过引入一种新的视觉语言预训练范式来应对这一挑战,该范式可以任意组合并充分利用两个预训练好的视觉编码器和 LLM,而无须端到端地预训练整个架构。这使得我们可以在多个视觉语言任务上实现最先进的结果,同时显著减少训练参数量和预训练成本。此外,这种方法为多模态ChatGPT 类应用奠定了基础。
BLIP-2 通过在冻结的预训练图像编码器和冻结的预训练大语言模型之间添加一个轻量级查询Transformer (Query Transformer, Q-Former) 来弥合视觉和语言模型之间的模态隔阂 (modality gap)。在整个模型中,Q-Former 是唯一的可训练模块,而图像编码器和语言模型始终保持冻结状态。
Q-Former 是一个 transformer 模型,它由两个子模块组成,这两个子模块共享相同的自注意力层:
1、与冻结的图像编码器交互的图像 transformer,用于视觉特征提取;
2、文本 transformer,用作文本编码器和解码器。图像 transformer 从图像编码器中提取固定数量的输出特征,这里特征的个数与输入图像分辨率无关。同时,图像 transformer 接收若干查询嵌入作为输入,这些查询嵌入是可训练的。这些查询还可以通过相同的自注意力层与文本进行交互 (这里的相同是指图像 transformer 和文本 transformer 对应的自注意力层是共享的)。
Q-Former 通过以下三个损失函数进行训练:
1、图文对比损失 (image-text contrastive loss): 每个查询的输出都与文本输出的 CLS 词元计算成对相似度,并从中选择相似度最高的一个最终计算对比损失。在该损失函数下,查询嵌入和文本不会 “看到” 彼此。
2、基于图像的文本生成损失: 查询内部可以相互计算注意力但不计算文本词元对查询的注意力,同时文本内部的自注意力使用因果掩码且需计算所有查询对文本的注意力。
3、图文匹配损失 (image-text matching loss): 查询和文本可以看到彼此,最终获得一个几率 (logit) 用以表示文字与图像是否匹配。这里,使用难负样本挖掘技术 (hard negative mining) 来生成负样本。
下面是针对两类不同LLM设计了不同的任务:
Decoder类型的LLM(如OPT):以Query做输入,文本做目标;
Encoder-Decoder类型的LLM(如FlanT5):以Query和一句话的前半段做输入,以后半段做目标。
这篇工作确实让多模态的想象空间更多了,尤其是 Instructed Zero-shot Image-to-Text Generation 的能力,我觉得肯定还有没有发现的潜在能力。但我们从测试样例中也看到,模型还存在一些问题。在文章中,作者也给出了一些Bad Case,比如错误的建立联系,错误的推断依据以及过时的知识库。
目标是使用线性投影层弥合视觉编码器和LLM之间的差距。
其实模型结构和BLIP-2几乎一致。
第一个传统的预训练阶段在使用4个A100大约10小时内,使用大约500万个图像-文本对进行训练。第一阶段过后,Vicuna能够理解图像。但是其生成能力受到了严重的影响,我们观察到它难以产生连贯的语言输出的情况,例如生成重复的单词或句子、零散的句子或不相关的内容,这些问题阻碍了MiniGPT-4与人类进行流畅视觉对话的能力。为了解决这个问题和提高可用性,作者提出了一种通过ChatGPT创建高质量图像-文本对的新方法。基于此,创建了一个小型(总共3500对)但是高质量的数据集,该数据集标注尽量全面,尽可能包含图片中的所有细节。
第二个微调阶段在对话模板上使用该数据集进行训练,以显著提高其生成可靠性和整体可用性。令人惊讶的是,这个阶段具有计算效率,并且只需要使用单个A100大约7分钟的时间。
MiniGPT-4能够产生许多类似于GPT-4中展示的新兴视觉语言能力。
Visual Instruction Tuning
LLaVA: Large Language and Vision Assistant
InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
我们对视觉语言指令调优进行了全面而系统的研究。我们将 26 个数据集转换为指令调优格式,并将它们分组为 11 个任务类别。其中,13个保留数据集用于指令调优,13个保留数据集用于零样本评估。此外,还特意保留了四个任务类别,用于任务级零样本评估。详尽的定量和定性结果证明了InstructLIP在视觉语言零样本泛化方面的有效性。
我们提出了指令感知视觉特征提取,这是一种新的机制,可以根据给定的指令灵活且信息丰富的特征提取。具体来说,该指令不仅作为生成文本的条件提供给冻结的LLM,而且还提供给Q-Forder作为从冻结图像编码器中提取视觉特征的条件。
我们使用两个LLM系列评估和开源一套InstructBLIP 模型:1)FlanT5 [7],一个从T5 [33]微调的编码器-解码器LLM;2)Vicuna [2],一种仅解码器的LLM,由LLaMA [40]微调。InstructBLIP 模型在各种视觉语言任务上实现了最先进的零样本性能。此外,InstructBLIP 模型在用作单个下游任务的模型初始化时可实现最先进的微调性能。
将 26 个数据集转换为指令调优格式,并将它们分组为 11 个任务类别。13个保留数据集用于指令调优(黄色框),13个保留数据集用于零样本评估(白色框)。此外,还特意保留了四个任务类别,用于任务级零样本评估。对于每项任务,我们都会用自然语言精心制作 10 到 15 个不同的指令模板。
这些模板是构建指令调优数据的基础,这些数据阐明了任务并描绘了目标。对于本质上倾向于短响应的公共数据集,我们在它们的一些相应指令模板中使用了诸如short和briefly的术语,以降低模型过度拟合以始终生成短输出的风险。对于LLaVA-Instruct-150K数据集,我们不合并额外的指令模板,因为它自然地以指令格式结构化。
R-Former被设计用来从一个冻结的图像编码器的输出中提取视觉特征。
根据BLIP-2的论文,Q-Former已经分成两个阶段进行了预训练,通过预训练,它学会了提取可以被LLM消化的文本对齐的视觉特征。在推理过程中,一个指令被附加在视觉提示之后,就可以指导LLM按照规定执行不同的任务。
而在InstructBLIP中,指令文本不仅作为输入给到LLM,同时也给到了QFormer。
3
目标检测能力模型
接下来是本次直播的第三部分内容:具有目标检测能力的模型。
LLaVA模型训练时提供的boxes标注信息
DetGPT
1、DetGPT针对一张图片具有多轮对话交互能力
2、除了能够识别图像中的物体,还能够基于这些物体关系进行推理
DetGPT
1、冻结Vision encoder和LLM,只训练视觉和语言能力的连接层,数据准备好的情况下,训练速度很快。
2、可以继续深入的几个方向:
①调整Prompt设计,适合生产环境。
②替换LLM或者Vision Encoder降低硬件要求
③Detector部分可以使用具有专有能力,如OCR模型等进行替换,适应场景要求。
VisionLLM是集成在商汤InternGPT多模态模型中,模型主体是共享参数的通才模型,通过语言指令切换不同任务。模型使用了两种 image backbone:ResNet 和 InternImage-H。language-guided image tokenizer 是 BERT + Deformable DETR。LLM用的是 Alpaca-7B (LLaMA衍生)。这里跟大多数多模态语言大模型是不一样的,从论文中看,没有使用全连接层或者是Q-former来连接多模态,而是通过 Language-guided image tokenizer 连接多模态,然后接入LLM。整体的训练过程也是分为两阶段,第一阶段训练visual backbone 和 image tokenizer,LLM只训练一小部分 LoRA 参数,这一阶段主要关注目标检测任务和任务描述。第二阶段冻结 visual backbone,训练模型其他部分参数。
VisionLLM在处理视觉任务时,使用了特定的物体类别标志位和位置标志位(location token)进行标注处理,相对更复杂。此外,对于图片中目标位置,使用目标在图像中的绝对坐标,没有使用相对坐标。
Shikra定位图示效果
Shikra使用两种方式来表示目标坐标:四个坐标点表示bounding box或者两个坐标点表示目标中心点。Shikra的做法与VisionLLM有两个较大的不同点。第一,使用自然语言表示坐标。VisionLLM使用专用的location tokens表示坐标,Shikra则不作任何特殊处理,就按照与普通文字一致的方法处理坐标文字。第二,VisionLLM使用目标在图像中的绝对坐标表示,Shikra使用相对坐标表示,把坐标范围统一在0到1范围内。Shikra的训练过程类似LLaVA,也是两阶段训练,但是在两个阶段中,LLM和连接层的参数都随训练改变。Shikra的方法设置相对VisionLLM简单了不少,对于数据处理和模型调整都便利了许多。这种方法的缺点是,通过自然语言处理坐标字符,会占用较多token,LLM处理起来速度较慢。
本次直播的第四个内容为:多模态模型评测。
LAMM测试基准主要分为两部分,LAMM-Dataset和LAMM-Benchmark。LAMM-Dataset包括2D图像和3D点云理解。LAMM通过公开数据集中收集、self-Instruction method和GPT API生成等方法,构造了4种类型一共18万指令-响应对数据。LAMM-Benchmark包括了9种常见图像任务、共6万条样本的11个数据集。LAMM也提供了LAMM-Framework,一个可以较为通用地实现多模态大语言模型的框架。
最近上海人工智能实验室提出MMBench评测体系,提出了“CircularEval”评测概念。如图13所示,MMBench将多模态大模型的能力根据难度层级分为L1-L3。具体来说,MMBench包含了3000个选择题,从20个细分能力的角度对多模态模型能力进行较为细致的评测。值得注意的是,目前多模态大模型的推理能力依赖于LLM,所以同样存在LLM的幻觉和输出鲁棒性问题。MMBench提出使用ChatGPT来辅助“提炼”多模态大模型的输出,以此保证参与测评的大模型输出结果可以应对选择题场景。
MMBench的Circular评测图谱
从以上这些融合了LLM的多模态模型,我们可以得到一些发现。可能是受GPT4所展示的多模态能力的启发,主要的多模态大模型工作主要都是集中在23年。目前融合LLM和视觉模型的方式还相对简单,多数是依赖已有的LLM和Visual encoder,并通过简单的线性层或者Q-former结构连接。此类模型的训练范式也基本为二阶段训练,着重于提升语言视觉对齐和多轮对话能力。尽管如此,目前的多模态大模型已经展现出了优秀的效果,未来多模态通用模型可能成为人工智能的下一个发展目标。视觉研究者和语言大模型研究者的研究范式呈现出越来越相近的趋势。
诚邀加入移动云开发者社区
共筑移动云生态!
扫码进入