Multimodal AI: A Guide to Open-Source Vision Language Models
前言:人类通过视觉、语言等多种表征媒介(模态)与世界互动,每种模态都可能在某个方面的表达和交流上有它自己的优势,融合在一起帮助我们更系统、更完整地理解这个世界。随着技术的发展,大预言模型基本实现独立自然的表达,视觉编码表征能力也逐渐增强,自然而然,我们就会想要把两方面的能力结合在一起,用一个大一统的模型完成语言+视觉的综合理解&表达,这也更靠近大家所理解的AGI-通用人工智能。
视觉+语言的多模态大模型目前主流方法是:借助预训练好的大语言模型和图像编码器,用一个图文特征对齐模块 来连接,从而让语言模型理解图像特征并进行更深层的问答推理。
这样可以利用已有的大量单模态训练数据训练得到的单模态模型,减少对于高质量图文对数据的依赖,并通过特征对齐、指令微调 等方式打通两个模态的表征。
主流的多模态大语言模型主要有以下几个研究方向:
Model 基本思想 模型结构 loss函数 训练数据 CLIP 文本和图像在特征域对齐 文本编码器(BERT)
图像编码器(ViT)
对上边两enc提取的特征计算预先余弦相似性距离
Info-NCE-loss(对比学习MoCo的损失函数) 400 million的图文Pair BLIP 兼顾图文理解和生成的多模态模型 ,同时在三个视觉语言目标上联合预训练:图像文本对比学习
图像文本匹配ITM
图像条件语言建模LM
Multimodal mixture of Encoder-Decoder 共四个部分: ITC loss(偏理解,优化图&文本单模态编码器):图像文本对比学习,对齐图&文的特征空间;
ITM loss(偏理解,优化图文编码器):图像文本匹配二分类,构建图文多模态信息的相关性;
LM loss(偏生成,优化图文编码器):采用交叉熵损失函数训练模型以自回归方式生成连贯的描述。
预训练:COCO
Visua Genome
Web datasets:Conceptual Caption 3M, Conceptual 12M(噪声较大),
SBU Captions
Web datasets:LAION(115M)(噪声较大)
BLIP2 通过利用与训练好的视觉模型Image Encoder和语言模型LLM来提升多模态效果和降低训练成本 ITC loss(偏理解): 图文对比学习,对齐图&文特征空间;
ITG loss(偏生成):给定输入图像生成文本米哦啊书,迫使Query提取包含所有文本信息的视觉特征;
ITM loss(偏理解):图文匹配二分类,图文表示的细粒度的对齐
LLaVA 纯语言GPT-4生成多模态语言图像指令跟随 数据 视觉编码器+LLM+projector Layer 自回归模型损失,通过前轮问答预测当前答案的最大似然 158K指令跟随样本: mini-GPT4 用一层MLP将视觉编码器和更强大的LLM连接 视觉编码器(ViT-G/14+Q-Former)+LLM(Vicuna)+projector layer 类似BLIP2,主要是Language modeling loss 只训练投影层:5M对齐的图文对+35000个告知蓝两个图文对 InstructBLIP 指令微调训练通用视觉语言模型 类似BIP2,增加之零零输入同时给到Q-Former和LLM 类似BIP2,主要是Language modeling loss 26个数据集(指令微调格式),13个用于指令微调,13个用于Zero-Shot能力评估 趋势发展 图文特征对齐,质量微调,多任务 图像编码器Image Encoder+大语言模型LLM+对齐模型 参数对比学习探索不同的图文特征对齐方式,同时增加指令微调能力 生成过滤得到的告知力量图文对数据,使用多任务...
CLIP (Contrastive Language-Image Pre-training) 基本思想 CLIP的基本算法原理是文本和图像在特征域进行对齐。
模型结构 为了对image和text建立联系,首先分别对image和text进行特征提取,image特征提取的backbone可以是resnet系列模型也可以是VIT系列模型;text特征提取目前一般采用bert模型。 特征提取之后,由于做了normalize,直接相乘来计算余弦距离,同一pair对的结果趋近于1,不同pair对的结果趋近于0,因为就可以采用对比损失loss(info-nce-loss)【需要要比较大的batch size才能有效果,类似于维护一个大的特征相似度矩阵】
对比学习,维护一个图文特征相似度矩阵 一种是直接利用zero-shot方式进行预测,如下图所示,将text假设为 a photo of [object]
, 分别对image 和 text进行特征提取以及余弦距离计算,当object为目标类别时,相似度最高,即为预测结果(效果好); 还有一种方式是重新finetune,同样也是对类别设计几种不同的文本,这样效果能够达到SOTA的水平! 目标类别对应的图文特征余弦距离最大
训练loss 参考对比学习损失,采用了info-nce-loss。
交叉熵代价函数(cross entropy):最基础的有监督学习多分类损失函数,gt是n个类别的one-hot编码,目标是最小化gt的one-hot标签和预测logits的负对数乘积在多个类别上的加和,从信息论的角度也就是最小化模型数据分布与训练数据之间的KL散度; n个类别多分类的交叉熵损失函数 NCE(noise contrastive estimation):和交叉熵类似,但是把多分类问题转化成了二分类问题,一个类是数据类别 data sample,另一个类是噪声类别 noisy sample,目标是学习数据样本和噪声样本之间的区别,也就是“噪声对比(noise contrastive) https://zhuanlan.zhihu.com/p/506544456 噪声对比NCE-loss Info-NCE:是NCE的一个简单变体,把噪声样本从一个类别又划分为多个类看待。公式中的 是一个温度超参数(标量),如果忽略 ,那么infoNCE loss其实就是cross entropy loss,只是在cross entropy loss里, 指代的是数据集里类别的数量,而InfoNCE loss里,k指的是负样本的数量。公式分母中的 是在 个正样本和 个负样本上做的,做的是一个k+1类的分类任务,目的就是想把query这个图片分到k+这个类。 Info-NCE loss 温度系数temperature(本文固定0.07):作用是控制logits的分布形状,对于既定的logits分布的形状,当temp值变大,则(q*k)/temp变小,指数运算之后更小,导致原来的logits分布更平滑。相反,如果temp取得值小,原来的logits分布里的数值就相应的变大,指数运算之后更大,则这个分布变得更集中,更peak。需要取一个合适的数值,既不会对所有的负样本一视同仁,也不会过度关注难样本。 细节 :CLIP用了大量的训练数据以及训练资源,大力出奇迹。CLIP用了400million的image-text pair对进行训练,对于image backbone,CLIP尝试了两种结构,DN50x64 和 vit-L,分别用了592 个 V100 + 18天 的时间 和 256 个 V100 + 12天 的时间,非大公司直接劝退。
BLIP(Bootstraping language image pre-training) 基本思想 :
兼顾图文理解和生成的多模态模型(Multimodal mixture of Encoder-Decoder),同时在三个视觉语言目标上联合预训练:图像文本对比学习ITC、图像文本匹配ITM、图像条件语言建模LM;同时提出了一种高效利用网络收集的嘈杂图文对的采样+过滤机制。 bootstraping翻译成“自举”有点别扭,我还是习惯理解为有放回抽样/迭代优化。
模型结构 图像块的编码(ViT):图像打成patches块后进行编码,增加cls token来记录全局的特征(作用类似位置编码,保留patches的空间特征) 文本的编码(BERT):对句子进行编码,增加cls token记录句子的全局特征 Image-grounded text encoder:在文本embedding中注入了图像特征,通过在self-attention和FFN中间增加一层cross-attention来对齐text-encoder和img-encoder的特征。 Image-grounded text decoder:用causal self-attention层(预测下一个token)代替了双向自注意力层(建立当前输入token的表达)【和左边的encoder共享除了self-attention之外的层】 训练loss 预训练阶段同时优化3个loss项,每个图文对只过1次vision-transormer(算力消耗较大),过3次text-transormer
Image-Text Contrastive Loss (ITC)理解功能:优化vision-transormer+text-transormer,让匹配的图文对有较高相似度的表达(用了soft labels),多模态中的经典loss->使其互信息最大化 ; Image-Text Matching Loss (ITM)理解功能 :优化Image-grounded text encoder,学习图文的细粒度匹配 的二分类,采用了hard negative mining strategy; Language Modeling Loss (LM)生成功能:优化image-grounded text decoder,学习如何从给定图生成连贯的文本描述,采用交叉熵代价函数以自回归方式最大化对应文本概率。 Captioning and Filtering :一种高效的数据集增强方法,从网页噪声图像文本对中学习,采样生成器+噪声过滤器,都是从相同的预训练模型初始化,并在小型人工注释数据集e.g.COCO上单独进行微调。
采样生成器captioner:基于图像的文本解码器(生成),用LM的loss进行微调 噪声过滤器filter:基于图像的文本编码器(判别),用ITC+ITM进行微调,判断图文是否匹配
效果 :从用人工标注的图文对得到的预训练模型开始初始化,captioner生成合成文本,filter过滤合成文本和网页描述文本,得到过滤后的相对干净的网页文本和合成文本->用来训练BLIP,往复进行。
CapFilt 可以通过更大的数据集和更大的视觉主干进一步提高性能,这验证了其在数据大小和模型大小方面的可扩展性。此外,通过使用 ViT-L 的大型字幕生成器和过滤器,还可以提高基础模型的性能。
在图 4 中,我们展示了一些示例字幕及其相应的图像,它们定性地展示了字幕生成器生成新文本描述的效果,以及过滤器从原始网络文本和合成文本中删除噪声字幕的效果。更多示例可以在附录中找到
数据集 图像编码器使用 ImageNet-1K 上预训练的 ViT 初始化,文本编码器以 BERT-Base 初始化,按照Vit-B 2880/ Vit-L 2400的batch-size训练 20 Epochs,预训练阶段图像尺寸224*224,微调阶段尺寸384*384. 用了以下3部分数据集预训练,加起来大概是 14M。
网络数据:Conceptual Captions,Conceptual 12M(噪声较大),SBU Captions 还尝试了一个额外的噪声文本较多的web 数据集 LAION(115M 图像)。
BLIP2 基本思想 如标题所言 Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models,分两个阶段,通过利用预训练好的视觉模型和语言模型来提升多模态效果和降低训练成本。
模型结构 BLIP-2由预训练的Image Encoder,预训练的Large Language Model,和一个可学习的 Q-Former 组成。
Image Encoder:从输入图片中提取视觉特征,尝试了两种网络结构,CLIP 训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14(去掉了最后一层)。 Large Language Model:大语言模型进行文本生成,尝试了接入decoder-based LLM 和 encoder-decoder-based LLM两种结构。 Q-Former:弥补视觉和语言两种模态的modality gap,可以理解为固定图像编码器和固定LLM之间的信息枢纽 ,选取最有用的视觉特征给LLM来生成文本。
Q-Former由Image Transformer和Text Transformer两个子模块构成,它们共享相同自注意力层。
Image Transformer:通过和image encoder交互来提取视觉特征,输入是一系列(文中用的 长度)可学习的 Queries,这些Query通过自注意力层 相互交互,并通过交叉注意力层 与冻结的图像特征交互,还可以通过共享的自注意力层 与文本进行交互;输出的query尺寸是 ,远小于冻结的图像特征 (ViT-L/14)。 Text Transformer:既作为文本编码器也作为文本解码器,它的自注意力层与Image Transformer共享,根据预训练任务,用不同的self-attention masks来控制Query和文本的交互方式。
训练过程 为了减少计算成本并避免灾难性遗忘,BLIP-2 在预训练时冻结预训练图像模型和语言模型,由于简单地冻结预训练模型参数会导致视觉特征和文本特征难以对齐,为此BLIP-2提出两阶段预训练 Q-Former 来弥补modality gap:表示学习阶段和生成学习阶段。
第一个预训练阶段,vision-language表示学习 ,将 Q-Former 连接到冻结的图像编码器image encoder,目标是Q-Former学习与文本最相关的视觉表示。和BLIP类似,通过联合优化 三个预训练loss,并在Query和Text之间采用不同的注意力掩码策略,从而控制Image Transformer和Text Transformer的交互方式 。 ITC(Image-Text Contrastive Learning):优化目标是对齐图像特征和文本特征,也就是对齐image transformer输出的query representation与来自text transformer输出的text representation。为了避免信息泄漏,ITC采用了单模态自注意掩码 ,不允许query和text看到对方。计算时先计算每个query与文本embedding之间的相似度,然后选择最高的作为图文相似度。 ITG(Image-grounded Text Generation):优化目标是给定输入图像作为条件,训练 Q-Former 生成文本,迫使query提取包含所有文本信息的视觉特征。由于 Q-Former 的架构不允许冻结的图像编码器和文本标记之间的直接交互,因此生成文本所需的信息必须首先由query提取,然后通过自注意力层传给text token。ITG采用多模态causal attention mask 来控制query和text的交互,query可以相互感知,但不能看见text token,每个text token都可以感知所有query及其前面的text标记【半矩阵,生成式任务的常见做法】 。这里将 [CLS] 标记替换为新的 [DEC] 标记,作为第一个文本标记来指示解码任务。 ITM( Image-Text Matching):优化目标是进行图像和文本表示之间的细粒度对齐,学一个二分类任务,即图像-文本对是正匹配还是负匹配。这里将image transformer输出的每个query嵌入输入到一个二类线性分类器中以获得对应的logit,然后将所有的logit平均,再计算匹配分数。ITM使用双向自注意掩码 ,所有query和text都可以相互感知。 第二个预训练阶段,vision-to-language生成学习 ,将 Q-Former 连接到冻结的大语言模型LLM,将 Q-Former 的输出给到冻结的 LLM 来执行视觉到语言的生成学习,目标是训练Q-Former使其输出的视觉表示对LLM可用。 使用全连接层 将输出的query embedding线性投影到与 LLM 的text embedding相同的维度,然后将投影的query embedding添加到输入text embedding前面。由于 Q-Former 已经过预训练,可以提取包含语言信息的视觉表示,因此它可以有效地充当信息枢纽 ,将最有用的信息提供给 LLM,同时删除不相关的视觉信息,减轻了 LLM 学习视觉语言对齐的负担(相当于soft visual prompts )。 尝试了decoder-based LLM 和 encoder-decoder-based LLM:对于decoder-based LLM,基于language modeling loss进行预训练,用Q-Former提取的视觉表示生成文本描述;对于encoder-decoder-based LLM,基于prefix language modeling loss进行预训练,把前缀和视觉表示一起输入LLM encoder,由LLM decoder生成后续文本。
VQA任务微调结构 把问题和Q-Former提取的视觉表示一起输入LLM从而得到答案,不过还多了一个把问题也加入了Q-Former的输入,使提取的图像特征和问题更相关。这种方式也用在了他们的下一篇文章InstructBLIP中,用于注入指令进行微调。
数据集 预训练数据集:
沿用BLIP的数据集,加起来总共129M:COCO, Visual Genome, Conceptual Captions 3M+12M, SBU Captions, 额外的 web 数据集 LAION400M 的一部分,该数据集包含 115M 图像,具有更多的噪声文本; 采用了 BLIP 里面提出的 CapFilt 方法从网络图像合成文本描述(选top2)。 预训练好的Image Encoder和 LLM:
视觉模型:CLIP训练的 ViT-L/14;EVA-CLIP训练的 ViT-g/14 LLM :基于解码器的LLM-OPT;基于编解码器的LLM-FlanT5 训练设定 :第一阶段预训练250k步,第二阶段预训练80k步,图像输入尺寸 ,更多细节看原文。
效果展示 :可做到视觉知识推理、视觉常识推理、视觉对话、个性化图像到文本生成等,只需在视觉提示之后附加文本提示作为 LLM 的输入。
缺点 上下文学习能力缺失:由于预训练数据集中的每个数据只包含一个图文对,LLM无法学习单个序列中多个图文对的相关性。 冻结参数的 LLM 的风险:比例输出攻击性语言,传播社会偏见,解决办法是指令微调,或者过滤掉有害的数据集。 LLaVA(Large Language and Vision Assistant) 基本思想 使用仅限语言的GPT-4生成多模态语言图像指令跟随数据,提出一种连接视觉编码器和LLM的端到端训练多模态大模型。
模型结构 使用视觉编码器CLIP ViT-L/14
语言解码器LLaMA
构成多模态大模型,然后使用生成的数据进行指令微调。输入图片 经过与训练好的视觉编码器的到图片特征 ,图片特征 经过一个映射矩阵 转化为视觉Token ,这样Vison Token 与Language Token 指令就都在同一个特征空间,拼接后一起输入大模型。这里的映射层W也可以替换为更复杂的网络来提升性能,比如Flamingo中用的gated cross-attentio,BLIP-2中用的Q-former。
训练 使用如下式所示的的方式组织每一轮的对话输入输出,训练模型预测助手的答案以及在哪里停止,因此仅使用绿色序列和标记来计算自回归模型 中的损失,即根据所有前轮的指令和回答来预测当前目标回答 ,也就是经典的next token prediction。
文中使用了两阶段的训练方式:
预训练特征对齐模块(映射层 ),冻结视觉编码器和LLM,只训练映射矩阵 得到上面公式的最大似然 ,相当于为冻结的 LLM 训练一个适配的visual tokenizer。
Table 2: The input sequence used to train the model. Only two conversation turns are illustrated here; in practice, the number of turns varies based on the instruction-following data. In our current implementation, we follow Vicuna-v0 [9] to set the system message Xsystem-message and we set
数据 什么是指令跟随数据 使用ChatGPT/GPT-4将数据转化为多模态指令跟随数据(multimodel instrustion-following data)。具体来说,为了将输入图像编码为视觉特征来作为纯文本 GPT的(soft) promt,文中用了两种类型的表达:
bbox检测框:定位场景中的对象,每个框对对象概念及其空间位置进行编码。 通过这两类符合表示,将视觉内容传达给了语言大模型,然后人工设计了3种对话方式,利用GPT-4进行生成和扩充,分别是:
最后总共收集了158K独特的语言图像指令跟随样本,包括58K对话数据、23K详细描述数据、77K复杂推理数据。
MiniGPT-4 基本思想 GPT-4 具有先进的多模态生成能力的主要原因在于利用了更先进的大型语言模型(LLM),因此提出仅用一个投影层将一个冻结的视觉编码器和一个冻结的 LLM(Vicuna)对齐。
模型结构 类似BLIP2,包括一个冻结的视觉编码器(ViT-G/14 + Q-Former), 一个冻结的 LLM(Vicuna), 一个投影层。
两阶段训练 第一阶段在大量对齐的图像文本对上对模型进行预训练,以获取基础的视觉语言知识。在第二阶段,使用规模较小但更高质量的图文对数据集和精心设计的对话模板对预训练模型进行微调,以增强模型的生成可靠性和可用性。
训练loss 关于loss设计论文没有讲太细,看代码里面应该主要是计算language modeling loss:https://github.com/Vision-CAIR/MiniGPT-4/blob/main/minigpt4/models/mini_gpt4.py#L320
InstructBLIP(Instruction Tuning) 基本思想 基于 BLIP-2 提出指令微调的范式,借助额外的 instruction 提取更有用的视觉特征。
模型结构 InstructBLIP 的架构和 BLIP-2 相似,从预训练好的 BLIP-2 模型初始化,由图像编码器、LLM 和 Q-Former 组成。为了进行指令微调,在BLIP-2的基础上把 instruction text tokens也作为输入同时给到Q-former和LLM。其中可学习的K个queries 通过Q-former中共享的 self-attention 和输入指令交互,通过 cross-attention 和输入图片的特征交互,鼓励提取与任务相关的图像特征。
训练 和BLIP-2一致,分两个阶段
第一个vision-language表示学习阶段,将 Q-Former 连接到冻结的图像编码器image encoder,目标是Q-Former学习与文本最相关的视觉表示。 第二个vision-to-language生成学习阶段,将 Q-Former 连接到冻结的大语言模型LLM,将 Q-Former 的输出给到冻结的 LLM 来执行视觉到语言的生成学习,目标是训练Q-Former使其输出的视觉表示对LLM可用。
推理 分两种情况:
对于大部分描述性任务,如 image captioning,open-ended VQA 等,InstructBLIP 可以直接使用 LLM 生成的文本作为输出; 对于选择性任务,如 classification 和 multi-choice VQA ,参考vocabulary ranking method,将LLM生成的内容词汇限制为候选列表进行排序 ,计算每个候选的对数似然,选择最高值的一个作为最终预测。 数据集 作者将11类任务的26个数据集转化成指令微调的格式,把它们分成13个 held-in 数据集用于指令微调,和13个 held-out 数据集用于 Zero-Shot 能力的评估。held-out分两种,一种是这些数据在训练期间没被模型见过,但是同类型的任务中学过,另一种是在训练和同类型的任务都不涉及(比如下图中全为白框的4个任务)。
采样策略 在训练期间,所有的 held-in 数据集的训练集混合,总数量太大且每个数据集的规模存在显着差异,均匀混合会导致模型过拟合较小的数据集,欠拟合较大的数据集。因此,文中提出根据数据集的大小的平方根 或者其他正相关比例进行采样。更多训练细节见原文。
指令模板 对于每个任务,人工制作了10-15个高质量的自然语言指令模板。对于一些偏爱简洁响应的数据集,在 instruction 中增加了 "short", "briefly" 来减小模型过拟合的风险,防止模型始终生成很短的输出。
D Instruction Templates
Task Instruction Template ImageCaptions VQA VQG
Llama 3.2 由 Meta 开发的 Llama 3.2 Vision 是多模态 LLM 的集合,旨在处理文本和图像。Llama 3.2 Vision 提供 11B 和 90B 参数大小,在图像文本任务中的性能优于许多开源和专有模型。
为了支持图像输入,Meta 使用适配器将预先训练的图像编码器集成到语言模型中,适配器将图像数据连接到文本处理层。这允许模型同时处理图像和文本输入。
主要特点:
多模态功能 :Llama 3.2 Vision 可以执行图像文本任务,包括生成字幕、回答基于图像的问题和复杂的视觉推理。强大的性能 :在涉及图表和图表理解的任务中,11B 和 90B 版本都优于 Claude 3 Haiku 等专有模型。可定制性: 您可以使用 Torchtune 为自定义应用程序微调 Llama 3.2 Vision 模型。需要注意的事项:
数学推理 :根据 Meta 的基准测试,Llama 3.2 Vision 在数学密集型任务中仍显示出改进的空间,尤其是 11B 版本。语言支持 :尽管对于纯文本任务,它支持多种语言(如德语、法语和意大利语),但对于图像 + 文本应用程序,仅支持英语。要部署 Llama 3.2 Vision,请查看博客文章,或者直接使用 OpenLLM 运行。openllm serve llama3.2:11b-vision
NVLM 1.0 NVLM 是 NVIDIA 开发的多模态 LLM 系列,代表了 VLM 的前沿方法。它在需要深入了解文本和图像的任务中取得了最先进的结果。第一个公开迭代 NVLM 1.0 可与 GPT-4o 等顶级专有模型以及 Llama 3-V 405B 等开放获取模型相媲美。
主要特点:
不同的架构 :NVLM 1.0 系列由三种独特的架构组成,适用于不同的用例。
NVLM-D :一种仅解码器架构,可提供统一的多模态推理,并在 OCR 相关任务中表现更好。NVLM-X :一种基于交叉注意力的架构,计算效率很高,尤其是在处理高分辨率图像时。NVLM-H :一种混合架构,结合了仅解码器和交叉注意力方法的优势。它在多模态推理和图像处理方面提供卓越的性能。强大的图像推理 :NVLM 1.0 在 OCR、多模态推理和高分辨率图像处理等任务中超越了许多专有和开源模型。它展示了卓越的场景理解能力。根据 NVIDIA 提供的示例图像,它能够识别潜在风险并根据视觉输入提出行动建议。
图片来源:NVLM:Open Frontier 级多模态 LLM
改进的纯文本性能 :NVIDIA 研究人员观察到,虽然开放式多模态 LLM 通常在视觉语言任务中取得很好的效果,但它们在纯文本任务中的性能往往会下降。因此,他们为 NVLM 模型开发了“生产级多模态”。这使得 NVLM 模型在视觉语言任务和纯文本任务中都表现出色(多模态训练后平均准确率提高了 4.3 分)。
需要注意的事项:
NVLM 1.0 还有更多内容需要探索。在撰写本文时, NVIDIA 仅发布了 NVLM-1.0-D-72B,这是面向社区的纯解码器模型权重和代码。 数据集
Molmo Molmo 是由 Allen Institute for AI 开发的一系列开源 VLM。Molmo 型号提供 1B、7B 和 72B 参数,提供同类产品中最先进的性能。根据基准测试,它们的性能可以与 GPT-4V、Gemini 1.5 Pro 和 Claude 3.5 Sonnet 等专有模型相媲美。
Molmo 性能的关键在于其独特的训练数据 PixMo 。这个高度精选的数据集由 100 万对图像-文本组成,包括两种主要类型的数据:
监督式微调数据,以实现各种用户交互,例如问答、文档阅读,甚至指向图像中的对象。 有趣的是,Molmo 研究人员使用了一种创新的数据收集方法:要求注释者在 60 到 90 秒内提供图像的口头描述 。具体来说,这些详细描述包括所有可见的内容,甚至是空间定位和对象之间的关系。结果表明,注释者提供详细的标题比传统方法(写下来)效率要高得多。总体而言,他们收集了 712k 张图像的高质量音频描述,这些图像是从 50 个高级主题中采样的。
主要特点:
最先进的性能 :Molmo 的 72B 型号在学术基准测试中优于 Gemini 1.5 Pro 和 Claude 3.5 Sonnet 等专有型号。即使是较小的 7B 和 1B 模型也可以在多项任务中与 GPT-4V 相媲美。指向功能 :Molmo 可以“指向”图像中的一个或多个视觉元素。指向提供了基于图像像素的自然解释。Molmo 研究人员认为,未来 POINTING 将成为 VLM 和代理之间的重要沟通渠道。例如,Web 代理可以在 VLM 中查询特定对象的位置。开放式架构 :最初的开发人员承诺发布创建 Molmo 时使用的所有工件,包括 PixMo 数据集、训练代码、评估和中间检查点。这为从头开始构建高性能多模态系统提供了新标准,并提高了可重复性。需要注意的事项:
透明图像 :Molmo 可能会遇到处理透明图像的问题。建议在使用模型处理图像之前为图像添加白色或深色背景。广播错误 :如果您在处理图像时遇到广播错误,请确保您的图像为 RGB 格式。Qwen2-VL Qwen2-VL 是 Qwen 系列中自动立体货柜的最新版本。现在,它超越了对植物和地标等对象的基本识别,可以了解场景中多个对象之间的复杂关系。此外,它还能够识别图像中的手写文本和多种语言。
Qwen2-VL 还将其功能扩展到视频内容,支持视频摘要、问答和围绕视频的实时对话。
主要特点:
最先进的性能 :Qwen2-VL 在各种视觉理解基准测试中均达到最佳性能,包括 MathVista、DocVQA、RealWorldQA 和 MTVQA。它的 72B 版本在大多数图像基准测试中优于 GPT-4o 和 Claude-3.5 Sonnet。 视频理解 :借助在线流媒体功能,Qwen2-VL 可以分析超过 20 分钟的视频并处理有关视频的问题。灵活的架构 :Qwen2-VL 提供 2B、7B、72B 参数大小,并提供不同的量化版本(例如 AWQ 和 GPTQ)。您可以根据需要将它们集成用于不同的使用案例。一些模型甚至可以在手机和机器人等设备上运行,根据视觉环境和文本指令进行自动操作。多语言支持 :Qwen2-VL 可以理解图像中各种语言的文本,包括英语、中文、大多数欧洲语言、日语、韩语、阿拉伯语和越南语。需要注意的事项:
遵循复杂的指令 :该模型需要进一步增强理解和执行复杂的多步骤指令。计数精度: 该模型在对象计数方面的精度较低,需要改进,尤其是在复杂场景中。空间推理技能 :该模型难以推断物体的位置关系,尤其是在 3D 空间中。您可以在模型的 GitHub 存储库中找到更多限制信息。
Pixtral Pixtral 是由 Mistral 开发的 120 亿参数开源模型,标志着该公司首次涉足多模态功能。Pixtral 旨在理解图像和文本,在 Apache 2.0 许可下以开放权重发布。
作为一种指令调整模型,Pixtral 在交错图像和文本文档的大规模数据集上进行了预训练。因此,它能够进行多轮次、多图像对话。与以前的开源模型不同,Pixtral 在多模态任务中表现出色,同时保持了出色的文本基准性能。
主要特点:
出色的教学跟踪能力 :基准测试结果表明,Pixtral 12B 在教学跟踪任务方面的表现明显优于 Qwen2-VL 7B、LLaVa-OneVision 7B 和 Phi-3.5 Vision 等其他开源多模态模型。Mistral 创建了新的基准测试 MM-IF-Eval 和 _MM-MT-Bench_,以进一步评估 Pixtral 在多模态环境中的性能,而 Pixtral 在这方面也表现出色。这些基准测试预计将在不久的将来为社区开源。
图片来源:Pixtral 公告博客文章
多图像处理: Pixtral 可以在单个输入中处理多个图像,并以原始分辨率处理它们。该模型支持 128,000 个令牌的上下文窗口,并且可以摄取具有不同大小和纵横比的图像。
需要注意的事项:
缺乏审核机制 :目前,Pixtral 不包含任何内置的审核功能。这意味着它可能不适用于需要受控输出的情况。要部署 Pixtral 12B,您可以使用 OpenLLM 运行。openllm serve pixtral:12b
部署 VLM 重点考虑的因素 请考虑以下因素以确保最佳性能和可用性:
基础架构要求 由于 VLM 体积大,通常需要大量的计算资源。像上面提到的这样性能最好的开源模型可以达到超过 700 亿个参数。这意味着您需要高性能 GPU 来运行它们,尤其是对于实时应用程序。
多式联运处理 并非所有模型服务和部署框架都旨在处理多模式输入,例如文本、图像和视频。为了充分利用 VLM 的潜力,请确保您的服务和部署框架可以同时容纳和处理多种数据类型。
快速扩展 自动立体货柜通常用于要求苛刻的应用,例如:
电子商务中的视觉搜索 ,用户上传图片以查找相似产品。 在这些使用案例中,流量可能会根据用户行为出现不可预测的峰值。这意味着您的部署框架应支持在高峰时段快速扩展。
Bechmark 每个基准测试都有特定的用途,可以突出模型的不同功能。以下是 VLM 的五个流行基准:
MMMU 在需要大学水平学科知识和推理的高级任务中评估多模态模型。它包含来自大学考试、测验和教科书的11.5K 问题,涉及六个学科:艺术与设计、商业、科学、健康与医学、人文与社会科学以及技术与工程。MMBench 是一个全面的基准测试,用于评估模型在各种多模态任务应用程序中的性能。它包括 3,000 多道选择题,涵盖 20 个不同的能力维度,例如对象定位、空间推理和社交互动。每个能力维度至少包含 125 个问题,确保对模型的视觉语言能力进行平衡评估。ChartQA 测试模型从各种类型的图表(例如,条形图、折线图和饼图)中提取相关信息并回答有关数据的问题的能力。它评估趋势分析、数据比较和基于视觉表示的数字推理等技能。DocVQA 侧重于理解包含文本和视觉元素的复杂文档,例如嵌入在文档中的表单、收据、图表和图表。MathVista 评估数学推理和问题解决领域的模型。它提出的问题将视觉元素(如几何图形、绘图或图表)与文本描述和问题相结合。MME多模态大模型评估体系 链接:A Comprehensive Evaluation Benchmark for Multimodal Large Language Models
基本思路 :
针对多模态大模型提出评估基准MME,在14个子任务上评估了目前比较前沿的12个大模型的感知和认知能力。
通用的全面评估基准应具备以下四个特点 :
涵盖不同层次的能力,包括感知和认知能力。前者指识别特定对象,如对象的存在、数量、位置和颜色。后者指通过组合LLM中的感知信息和知识推导出更复杂的答案(前者是后者的前提)。 数据或注释应尽可能不来自现有的公开可用数据集,以避免数据泄漏的风险。 指令应尽可能简明扼要,并符合人类的认知。所有模型应在相同统一的指令下进行测试,以进行公平比较,一个优秀的MLLM也应能够推广到这种简明扼要的指令。 对应的设计 :
MME涵盖了感知和认知能力的考察,总共有14个子任务:
感知能力:OCR能力和粗粒度识别、细粒度识别,前者识别对象的存在、数量、位置和颜色,后者识别电影海报、名人、场景、地标和艺术作品。 认知能力:包括常识推理、数值计算、文本翻译和代码推理。 所有的指令-答案对都是人工构建的。对于涉及到的少数公共数据集,也仅使用图像,而不直接依赖于其原始注释。同时,我们努力通过真实照片和图像生成来收集数据。 MME的指令设计简明扼要,以避免对模型输出的影响,基本假设是一个好的MLLM应能够适配简单且常用的指令。 根据MLLM的输出准确&客观,主要是以"是""否"问答,便于进行定量统计。需要注意的是,文中还尝试设计了带有多项选择题的指令,但发现当前的MLLM可能无法遵循复杂的指令。 在12个当前比较SOTA的方法上的评估结果:
结论 :综合感知能力和认知能力,BLIP2、mPLUG-Owl、InstructionBLIP、Mini-GPT4 总体表现更优。