VLE 基于预训练文本和图像编码器的图像 - 文本多模态理解模型:支持视觉问答、图文匹配、图片分类、常识推理等
VLE 基于预训练文本和图像编码器的图像-文本多模态理解模型:支持视觉问答、图文匹配、图片分类、常识推理等
多模态预训练模型通过在多种模态的大规模数据上的预训练,可以综合利用来自不同模态的信息,执行各种跨模态任务。在本项目中,我们推出了 VLE (Vision-Language Encoder),一种基于预训练文本和图像编码器的图像-文本多模态理解模型,可应用于如视觉问答、图像-文本检索等多模态判别任务。特别地,在对语言理解和推理能力有更强要求的视觉常识推理(VCR)任务中,VLE 取得了公开模型中的最佳效果。
最近,大型语言模型(LLM)取得了巨大成功,并被用于翻译、问答、摘要等文本任务。虽然 LLM 是单模态模型,但它们的能力也可用于辅助多模态理解任务。借助 LLM 的 zero-shot 能力,我们设计了一种 VQA+LLM 方案,将大型语言模型集成到视觉问答任务中,实现了帮助视觉问答模型生成更准确和流畅的答案。
开源 VLE 相关资源以供学术研究参考。
在线演示地址:https://huggingface.co/spaces/hfl/VQA_VLE_LLM
中文LERT | 中英文PERT | 中文MacBERT | 中文MiniRBT | 中文ELECTRA | 中文XLNet | 中文BERT | 知识蒸馏工具TextBrewer | 模型裁剪工具TextPruner
查看更多哈工大讯飞联合实验室(HFL)发布的资源:https://github.com/iflytek/HFL-Anthology
1.模型结构
VLE 模型采用双流结构,与 METER 模型结构类似,由两个单模态编码器(图像编码器和文本编码器)和一个跨模态融合模块构成。VLE 与 METER 的结构上的差异在于:
VLE 使用 DeBERTa-v3 作为文本编码器,其性能优于 METER 中使用的 RoBERTa-base。
在 VLE-large 中,跨模态融合模块的隐层维度增加至 1024,以增加模型的容量。
在精调阶段,VLE 引入了额外的 token 类型向量表示。
2.预训练
VLE 使用图文对数据进行预训练。在预训练阶段,VLE 采用了四个预训练任务:
MLM (Masked Language Modeling):掩码预测任务。给定图文对,随机遮掩文本中的部分单词,训练模型还原遮掩的文本。
ITM (Image-Text Matching):图文匹配预测任务。给定图文对,训练模型判断图像和文本是否匹配。
MPC (Masked Patch-box Classification):遮掩 Patch 分类任务,给定图文对,并遮掩掉图片中包含具体对象的 patch,训练模型预测被遮掩的对象种类。
PBC (Patch-box classification):Patch 分类任务。给定图文对,预测图片中的哪些 patch 与文本描述相关。
VLE 在 14M 的英文图文对数据上进行了 25000 步的预训练,batch 大小为 2048。下图展示了 VLE 的模型结构和部分预训练任务(MLM、ITM 和 MPC)。
3.下游任务适配
3.1 视觉问答 (VQA)
我们遵循标准做法,使用 VQA 的训练集(training set)和验证集(validation set)训练模型,在 test-dev 集上进行验证。我们采用模型的融合层的 pooler 的输出进行分类任务的训练。
3.2 视觉常识推理 (VCR)
我们将 VCR 格式化为一个类似于 RACE 的选择题任务,并对于每张图像中的对象,将覆盖该对象的 patch 的表示的平均池化值添加到融合模块之前的图像特征序列中。我们还为图像和文本中的对象添加额外的 token_type_ids,以注入不同模态之间的对齐信息,提升模型的对齐性能。
3.3 模型下载
本次发布了 VLE-base 和 VLE-large 两个版本的预训练模型,模型权重为 PyTorch 格式,可以选择手动从🤗 transformers 模型库下载权重和配置文件,或者在代码中使用 from_pretrained(model_name)
以自动加载模型。详细方法参加模型使用。
3.4 预训练权重
<sup>*</sup> : 仅计算 encoder 和 emebddings 的参数。特定任务的预测层的参数量未计入。
3.5 精调权重
3.6 模型对比
在下表中,我们比较了 VLE、METER 以及其他多模态模型的参数量、预训练数据和下游任务效果。其中 VQA 展示的的是 test-dev 集上的效果;VCR 展示的是 dev 集上的效果。
<sup>†</sup> : 复现效果
<sup>‡</sup> : 精调参数: lr=7e-6, batch_size={256, 512}, num_epochs=10
<sup>§</sup> : 精调参数: lr=1e-5, batch_size=128, num_epochs=5
<sup>*</sup> : I-T: 图文对. I: 图像. T: 文本.
观察上表可以发现:
VLE 的预训练更高效:与大小相近的模型相比,VLE 使用了更少的预训练数据,并在视觉问答上取得了相当甚至更好的效果。
VLE 有更强的推理能力: 特别地,在对推理能力要求更高的视觉常识推理(VCR)任务上,VLE 显著地超过了具有相似结构的 METER。
4.结合大模型的视觉问答
最近,随着指令微调、RLHF 等技术的发展,LLM 在多种文本任务中取得了巨大的成功。尽管 LLM 是单模态模型,但它们的能力也可用于辅助多模态理解任务。具体而言,我们提出一种 VQA + LLM 方案,将多模态模型与 LLM 集成到视觉问答任务中,从而帮助 VQA 模型生成更准确和流畅的答案。下图展示了系统流程。
(a) VQA: 这是使用判别模型执行 VQA 任务的标准方式。输入问题和图像到多模态模型中,训练模型预测正确的答案标签。
(b) VQA + LLM: 首先利用 captioning 模型生成图片的描述;将图片描述、问题以及 VQA 模型的详细预测结果拼接,组合成合适的 prompt 的形式送入 LLM,最后要求 LLM 模型回复最合理的答案。
VQA+LLM 生成的答案更准确,也有更高的可读性。下面是一些例子:
Demo 地址(仅供学术研究):https://huggingface.co/spaces/hfl/VQA_VLE_LLM
4.1 模型使用
环境要求
PIL
Transformers >= 4.25
PyTorch Lightning (仅用于运行精调脚本)
模型相关代码位于models/VLE目录下的*py
文件中。因此,要使用 VLE 模型,仅需把models目录复制到你的项目代码目录即可。
要运行以下演示代码,请使用git clone
命令下载本仓库至本地,并进入仓库的根目录。
4.2 加载 VLEModel
5.推理
5.1 视觉问答 (VQA)
5.2 图文匹配(ITM)
5.3 Patch 分类(PBC)
更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。
版权声明: 本文为 InfoQ 作者【汀丶人工智能】的原创文章。
原文链接:【http://xie.infoq.cn/article/a432a6df9b06ae71e9a27c29c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论