图文多模态大模型综述

news2024/9/21 2:50:12

自去年底ChatGPT发布后,大模型技术呈井喷式发展态势,学术界和工业界几乎每天都在刷新各个方向的SOTA榜单。随着大模型技术的发展,人们逐渐意识到多模态将是大模型发展的必经之路。其中,图文多模态大模型是一种结合了图像和文本两种模态信息的深度学习模型,本文将重点回顾这一领域的关键进展。

纵观多模态大模型的技术演进,也完全遵循了预训练-微调的整体方案。根据预训练模型中图文模态的交互方式,主要分为以下两种:

  • 双塔结构:代表架构是 CLIP。双塔即一个视觉 Encoder 建模图片信息,一个文本 Encoder 建模文本信息,图像和文本的特征向量可以预先计算和存储,模态交互是通过图像和文本特征向量的余弦相似度来处理。这类模型的优点是处理多模态检索任务,但无法处理复杂的分类任务;

  • 单塔结构:代表架构是ViLT。单塔即一个视觉-文本 Encoder 同时建模图片信息和文本信息,使用 Transformer 模型对图像和文本特征进行交互。这类模型的优点是可以充分地将多模态的信息融合,更擅长做多模态分类任务,检索任务较慢。

CLIP

CLIP由 OpenAI 构建,作为多模态领域的经典之作,被广泛应用于当今多模态模型的基础模型。CLIP通过自监督的方式,使用 4亿对(图像,文本)数据进行训练,它将图像和文本映射到一个共享的向量空间中,从而使得模型能够理解图像和文本之间的语义关系,这是一种从自然语言监督中学习视觉模型的新方法。

CLIP模型主要由两部分组成:Text Encoder 和 Image Encoder。这两部分可以分别理解成文本和图像的特征编码器。CLIP的预训练过程如下所示:

4eb75016b55503b7840a12a79a1a49e6.png

图1 CLIP的预训练过程

给定一个Batch的N个(图片,文本)对,图片输入给Image Encoder得到表征 , , ..., ,文本输入给 Text Encoder 得到表征  , , ..., ,(, ) 属于是正样本, (, ) 属于负样本。最大化 N 个正样本的 Cosine 相似度,最小化 N2 -N 个负样本的 Cosine 相似度。

CLIP是从头训练它的 Text Encoder(GPT-2) 和 Image Encoder (ViT),同时使用线性投影 (权重为, ) 将每个编码器的表征映射到多模态的嵌入空间。

ViLT

ViLT 受到 ViT 中 patch projection 技术的启发,希望最小化每个模态的特征提取,因此使用预训练的ViT来初始化交互的 Transformer,这样直接利用交互层来处理视觉特征,无需额外新增视觉 Encoder,把主要的计算量都集中在了 Transformer 的特征融合部分。

下图是ViLT的模型架构:

83e0849b46d8b647f5f8472672cd9a49.png

图1 ViLT模型架构

文本输入通过Word Embedding 矩阵 Embedding化,然后和 Position Embedding 相加,最后和 Modal-type Embedding Concate;

图像输入通过分块操作分成 C x P x P 大小的 N 个 Patch,通过线性投影矩阵Embedding化,然后和 Position Embedding 相加,最后和 Modal-type Embedding Concate;

文本和图像的 Embedding进行拼接,喂入 Transformer 模型。

ViLT 的预训练过程主要有两个优化目标:Image Text Matching (ITM) 和 Masked Language Modeling (MLM)。

Image Text Matching 就是随机以0.5的概率将对齐的图片替换为不同的图片,然后对文本标志位对应输出使用一个线性层将输出特征映射成一个二值logits。用来判断文本和图片是否匹配。

Masked Language Modeling 也就是 BERT 中的完形填空任务,随机以 0.15 的概率mask 掉 tokens,然后使用一个两层 MLP 得到输出。通过文本的上下文信息去预测mask掉的文本tokens。

VLMo

鉴于以上两类模型的优缺点,VLMo提出了一种统一的视觉语言模型——混合专家 Transformer 模型 (Mixture-of-Modality-Experts, MoME)。VLMo预训练完成后,使用时既可以是双塔结构,高效地对图像和文本进行检索;又可以是单塔结构,对融合的图像和文本的特征进行交互。

VLMo的架构如下所示:

ac0c66f76298d2aa215abc13cd50b8cb.png

图3 VLMo模型架构

VLMo模型的输入表征与ViLT一致,之后是一个 Multi-Head Self-Attention 的子模块,再串联一个 FFN 的子模块。但是和正常 Transformer 不同的是,这个 FFN 子模块是由3个并行,独立的 FFN 并联得到的。这3个 FFN 分别是 Vision-FFN,Language-FFN 和 Vision-Language-FFN。它们可以看成是3个专家模型,所有的Multi-Head Self-Attention 共享权重参数。

预训练

预训练过程采用分阶段进行,其策略为:先使用易获得的海量数据进行训练,使模型优化到一个比较好的参数值后,再在比较难获得的数据上进行微调,从而使得模型在样本数较少的数据上也能获得不错的泛化能力。整个过程如下所示:

1bd60e44a10bb4a86f697a1425f76d3d.png

图4 VLMo预训练过程

第一阶段冻结语言专家和视觉-语言专家的参数,通过MIM预训练任务在纯图像数据上练视觉专家,同事更新共享的 Self-Attention 参数;

第二阶段冻结共享的MSA参数以及视觉专家和视觉-语言专家的参数,通过MLM预训练任务在纯文本数据上训练语言专家;

第三阶段解冻所有参数,通过ITC、ITM、MLM三个预训练任务在图文数据集上训练所有的参数。

微调

5eca78291d2ad31f05686dcafac88184.png

图5 VLMo微调过程

检索任务里面 VLMo 被用作上图 (a) 的格式,即双塔结构。在微调期间,使用图像-文本对比损失(ITC)来优化。在推理过程中,计算所有图像和文本的特征向量,然后通过矩阵乘法得到图文匹配的相似度矩阵。VLMo 的这个做法可以实现更快的推理速度。

分类任务主要包括:视觉问答 (Visual Question Answering, VQA) 和视觉推理 (Natural Language Visual Reasoning, NLVR) 等。这时候 VLMO 被用作图 (b) 的格式,即单塔结构。先通过视觉专家和文本专家建模各自特征,再联合送入多模态专家完成更复杂的交互,完成分类任务。

BLIP

BLIP 提出了一种编码器-解码器混合架构 (Multimodal mixture of Encoder-Decoder, MED),因此也是一种混合模型。MED 既可以作为单模态的编码器,又可以作为基于图像的文本编码器,或者基于图像的文本解码器。模型架构如下所示:

下图是BLIP的模型架构:

329d5859227cd2f3d29bd3078e686ab8.png

图6 BLIP模型架构

单模态编码器

第1列是图像编码器(ViT),将输入图像分割成 Patch 并编码为 Image Embedding,并带有额外的 [CLS] token 来表示全局的图像特征。

第2列是文本编码器(Bert),其中 [CLS] token 附加到文本输入的开头以概括句子。作用是提取文本特征做对比学习。

基于图像的文本编码器

第3列是视觉文本编码器,通过在文本编码器的每个 Transformer 块的自注意 (SA) 层和前馈网络 (FFN) 之间插入一个 Cross-Attention 层来注入视觉信息。作用是根据图片特征和文本输入做二分类,所以使用的是编码器,且注意力部分是双向的 Self-Attention。文本附加一个额外的 [Encode] token,作为图像文本的联合表征。

基于图像的文本解码器

第4列是视觉文本解码器,将基于图像的文本编码器中的双向自注意力层替换为Casual-Attention 层。作用是根据图片特征和文本输入做文本生成的任务,所以使用的是解码器,目标是预测下一个 token。在文本开头和结尾附加额外的 [Decode] token 和 [EOS] token。

BLIP 由三个视觉语言目标联合训练:

对比学习目标函数 ( ITC):ITC 作用于视觉编码器 和文本编码器,目标是对齐视觉和文本两个模态的的特征空间。

图文匹配目标函数 (ITM):ITM 作用于视觉编码器和视觉文本编码器,目标是学习图像文本的联合表征,以捕获视觉和语言之间的细粒度对齐。

语言模型目标函数 (M):LM 作用于视觉编码器和视觉文本编码器,目标是根据给定的图像以自回归方式来生成关于文本的描述。

BLIP-2

BLIP-2 提出了一种新的图文多模态预训练范式,该范式可以任意组合并充分利用两个预训练好的视觉编码器和 LLM,而无须端到端地预训练整个架构。这使得我们可以在多个视觉语言任务上实现最先进的结果,同时显著减少训练参数量和预训练成本。此范式为之后MMBench和MME榜单中的各种SOTA模型奠定了基础。

为了解决两类冻结预训练模型在视觉特征空间和文本特征空间的不对齐问题,BLIP-2 提出了一个轻量级的 Querying Transformer,该 Transformer 分两个阶段进行预训练,如下图所示。

0cc261a4a8e58d6c3efe0a364e107262.png

图7 BLIP-2模型架构

BLIP-2 由预训练好的,冻结参数的图像编码器(CLIP)和大语言模型(OPT、FlanT5),外加可训练的 Q-Former 构成。

固定的图像编码器从输入图片中提取视觉特征,Q-Former 架构是由2个 Transformer 子模块构成,其中 Self-Attention 的参数是共享的。

59f8d96425619c784790f9114a82e452.png

图8 BLIP-2 Qformer架构

第1个 Transformer 子模块:是 Image Transformer,它与图像编码器交互,用于视觉特征提取。它的输入是可学习的 Queries,先通过 Self-Attention 建模互相之间的依赖关系,再通过 Cross-Attention 建模 Queries 和图片特征的依赖关系。因为两个 Transformer 的子模块是共享参数的,所以 Queries 也可以与文本输入做交互。

第2个 Transformer 子模块:是 Text Transformer,它既可以作为文本编码器,也可以充当文本解码器。

Q-Former的权重使用 BERT-Base 做初始化,Cross-Attention 的参数做随机初始化。Queries 随着预训练目标一起训练,促使它们提取到与文本最相关的视觉信息。

LLaVA

LLaVA的架构非常简单,其核心是构建高质量多模态数据集,利用GPT-4来生成训练数据。并验证在构建的数据集进行指令微调的有效性。

87ddc178b5ef834942ded3626a2d5a7f.png

图9 LLaVA模型架构

如上图所示,LLaVA 由三部分组成:视觉编码器(CLIP ViT-L/14)、大语言模型(Vicuna)、线性投影层(Hv = W · Zv,其中 Zv = g(Xv))。

在预训练阶段,冻结视觉编码器和大语言模型的权重参数,基于CC3M数据集的子集训练投影层(Linear Layer),此阶段目的是将i图片和文本特征对齐,使用相对简单、大量的单轮指令即可。

在精调阶段,冻结视觉编码器权重参数,精调投影层和大语言模型权重参数,此阶段目的是让大语言模型理解图片和文本,并具有多轮对话能力,是一个微调过程,需使用相对复杂、一定数量的多轮指令。

LLaVA的最大创新是构建高质量的多模式指示数据,其采用GPT-4/ChatGPT来生成数据集,这里并不是依赖GPT-4的多模态能力,而是只用GPT-4的文本理解和生成能力。模拟给GPT-4送入一张图像:用一个非常详尽的文本描述来替代图像输入。

下面的例子就是使用 Captions(从不同的维度描述图像内容)+ Boxes(用每个框定位图像中的物体,包括类别及空间位置)

9b51dcb9173d79e357ec67a9680d82c4.png

图10 LLaVA数据处理

这两方面的描述算是近似等价于图像。然后根据GPT-4产生3种类型的instruction-following data,分别是:

Conversation:构建视觉问答的多轮对话数据

Detailed description:根据图像生成详细的描述

Complex reasoning:前面的两种主要是和图像内容有关,这部分是构建复杂的推理问题,这里需要手工设计一些问题来让GPT-4来生成。

基于 COCO 数据集,与仅使用语言的 GPT-4 进行交互,总共收集了 158K 个独特的语言图像指令样本,其中对话数据58K、详细描述数据 23K 和复杂推理数据 77k。

总结

综上,图文多模态大模型的技术发展经历了多个重要阶段,现在基本形成了以大语言模型为核心,构建高质量数据集提升图文两模态融合的统一范式。多模态技术的发展,模态融合是关键,大量高质量数据将成为“胜负手”,谁能最先突破瓶颈,谁就能成为多模态大模型技术的领先者。多模态大模型已经成为深度学习领域的热点之一,其在图像和文本等多种模态信息的处理上具有广泛应用。随着不断的研究和发展,多模态大模型必将推动各领域的创新,为我们提供更多多样性的应用和解决方案。

参考

  • [1] Radford A, Kim J W, Hallacy C, et al. Learning transferable visual models from natural language supervision[C]//International conference on machine learning. PMLR, 2021: 8748-8763.

  • [2] Kim W, Son B, Kim I. Vilt: Vision-and-language transformer without convolution or region supervision[C]//International Conference on Machine Learning. PMLR, 2021: 5583-5594.

  • [3] Bao H, Wang W, Dong L, et al. Vlmo: Unified vision-language pre-training with mixture-of-modality-experts[J]. Advances in Neural Information Processing Systems, 2022, 35: 32897-32912.

  • [4] Li J, Li D, Xiong C, et al. Blip: Bootstrapping language-image pre-training for unified vision-language understanding and generation[C]//International Conference on Machine Learning. PMLR, 2022: 12888-12900.

  • [5] Li J, Li D, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint arXiv:2301.12597, 2023.

  • [6] Liu H, Li C, Wu Q, et al. Visual instruction tuning[J]. arXiv preprint arXiv:2304.08485, 2023.

8e472432e55f253b8fd2e3a846768444.png


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vivado时序分析-3时序分析关键概念

1、时钟相移 时钟相移对应于延迟时钟波形 , 此波形与因时钟路径内的特殊硬件所导致的参考时钟相关。在 AMD FPGA 中 , 时钟相移通常是由 MMCM 或 PLL 原语引入的 , 前提是这些原语的输出时钟属性 CLKOUT*_PHASE 为非零值。 时序分析期间…

解锁海外网红营销的潜力:关于KOC合作的7大建议

随着社交媒体的崛起,海外网红营销已成为全球各行业的主要趋势之一。传统的广告渠道逐渐被社交媒体平台和网红吸引了大量的广告投放,因此企业需要不断创新,以吸引受众并保持竞争力。其中,KOC合作是一个备受关注的策略,它…

openGauss学习笔记-121 openGauss 数据库管理-设置密态等值查询-使用JDBC操作密态数据库

文章目录 openGauss学习笔记-121 openGauss 数据库管理-设置密态等值查询-使用JDBC操作密态数据库121.1 连接密态数据库121.2 调用isValid方法刷新缓存示例121.3 执行密态等值查询相关的创建密钥语句121.4 执行密态等值查询相关的创建加密表的语句121.5 执行加密表的预编译SQL语…

程序员被问为什么单身的高赞回答

程序员们经常被问到为什么还单身 程序员们经常被问到为什么还单身 然后他们给出一个程序员风格的回答:“我在等待那个特殊的人,那个烧掉我的CPU,占满我的内存,并且把我的代码base都更新了的人。”#工作生活都在乎 #单身程序员的困…

MyBatis-Plus 系列

目录: 一、 Spring Boot 整合 MyBatis Plus 二、MyBatisPlus 多数据源配置 三、MybatisPlus —注解汇总 四、MyBatis Plus—CRUD 接口 五、MyBatis-Plus 条件构造器 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens …

Clickhouse 学习笔记(7)—— 查看执行计划

在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能 可以看到,并且只能真正执行 sql,在执行日志里面查看 在20.6版本之后可以通过explain语句查看执行计划 基本语法 EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [se…

构建Docker基础镜像(ubuntu20.04+python3.9.10+pytorch-gpu-cuda11.8)

文章目录 一、前置条件1.创建 ubuntu 镜像源文件【sources.list】2.下载 python 安装包【Python-3.9.10.tgz】 二、构建方法1.构建目录2.创建DockerFile3.打包镜像 一、前置条件 配置一下 ubuntu 的镜像源下载 python 安装包 1.创建 ubuntu 镜像源文件【sources.list】 内容…

粉够荣获淘宝联盟区域理事会常务理事,携手共铸淘客新生态

淘宝联盟区域理事会于2021年成立,首届成立成都、广州、武汉,服务近2000个领军淘宝客企业,作为区域生态与官方交流重要枢纽,理事会举办近百场交流分享会,带动淘客跨域跨业态交流成长。 2023年9月7日第二届淘宝联盟理事…

工作十年+的测试应该具备什么能力?

大概是2014年的时候,我开始接触面试工作,就是从应聘者转为面试官,记得印象深刻的是面试了一位做了8年的测试。对方气场很足,嗯,毕竟那时的我还只是一个3、4年经验的小测试,相反,印象深刻的并不是…

PO设计模式详解(Python+selenium+unittest)

一、什么是PO设计模式(Page Object Model) 1、Page Object是一种设计模式,它主要体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性。 2、一般PO设计模式有三层 第一层&#…

芯片设计工程师必备基本功——《设计与验证:Verilog HDL》

Verilog HDL 作为两大硬件描述语言之一,拥有很大的用户群。据调查,目前美国有 90%左右的 IC 设计人员使用 Verilog. 在中国,大概再 50% 左右的人在使用 Verilog 。 大量高校毕业生和部分软件设计人员正在不断涌入这个领域。要想尽快在 IC设计…

智能设备管理软件有什么用?如何让工厂设备维修管理更高效?

在当今这个数字化、智能化的时代,企业的生存与发展离不开高效、有序的管理。特别是在制造业中,设备报修与维修管理是关系到企业生产效益、安全和持续发展的关键环节。今天,我们就来聊聊如何通过智能化的设备管理软件,让工厂设备的…

Outlook无法显示阅读窗格

Outlook无法显示阅读窗格 故障现象 Outlook主界面不显示阅读窗格 故障截图 故障原因 阅读窗格被关闭 解决方案 1、打开Outlook - 视图 – 阅读窗格 2、选择“靠右”或者“底部”,正常显示阅读窗格

开发vue3 UI组件库,并且发布到NPM

目录 1.创建vue3工程 2.创建package文件 3.编写组件,并且导出 4.编写package.json 5.npm账号注册登录并发布 6.从npm安装使用 7.注意事项 1.创建vue3工程 (1)初始化Vue项目 cnpm create vite (2)进入文件夹…

【每日一题】307. 区域和检索 - 数组可修改-2023.11.13

题目: 307. 区域和检索 - 数组可修改 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 &#xff0c…

软件启动故障:msvcr100.dll丢失的解决方法,修复程序启动问题

在计算机技术日益发展的今天,我们经常会遇到各种各样的问题。其中,“msvcr100.dll是什么”这个问题,相信很多人都曾经遇到过。那么,msvcr100.dll究竟是什么呢?它又有什么作用呢?本文将从以下几个方面来探讨…

域名及网络地址

域名系统 可以通过 ping 命令查看域名对应的 IP 地址。 查看本机的默认 DNS 域名服务器地址可以使用 nslookup 命令。 IP地址和域名之间的转换 程序中有必要使用域名是很有必要的,系统随时可能会因为各种原因导致 IP 地址变更。而域名则比 IP 地址稳定得多&#…

力扣周赛371复盘(总结与进步)

比赛结果 第一题 2932. 找出强数对的最大异或值 I - 力扣&#xff08;LeetCode&#xff09; 这个由于是简单题&#xff0c;暴力for循环即可 通过结果如下&#xff1a; class Solution {public int maximumStrongPairXor(int[] nums) {int ans0;for(int i 0;i<nums.length;…

Minecraft开服教程:使用MCSM面板一键搭建我的世界服务器并实现远程联机

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 前言 MCSManager是一个…

微信开发者工具如何使用

首先是下载微信开发者工具 链接: https://pan.baidu.com/s/1ri-fRCUQsz9vLxbTqtdPUQ 提取码: 8rhn 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 安装完打开就是以下界面 接下来进入正题 第一步新建或导入 新建 获取AppID 第一步&#xff1a;通过微信公众平…