【学习笔记】多模态综述

2023-11-13

前言

本篇学习笔记虽然是多模态综述,本质上是对ViLT后多模态模型的总结,时间线为2021年至2022年,在这两年,多模态领域的模型也是卷的飞起,不断刷新领域的SOTA。在模型结构和数据上提出了很多高效有用的方法,如果你对多模态近两年的发展感兴趣,不妨看一看这一篇文章~


1. CLIP & ViLT

image.png
之所以将CLIPViLT放在一起,是因为在ViLT这篇论文中对这两项工作进行了很好的总结。从(a)到(d)是文图领域特征抽取模型的发展过程(到ViLT为止),其中(b)展示的就是CLIP的模型结构。它是一个典型的双塔模型,在训练时通过对比学习,将相同的图文对距离拉得很近,对于不同图文对的距离尽量拉得更远。抽取到的图文特征只需要进行简单的点乘就可以做很多多模态的任务。但是CLIP模态交互的部分过于简单,因此很难做复杂的理解任务。为此(c)中的方法在模态融合部分加入了复杂的模型,极大提升了效果。
在ViLT之前,几乎所有的工作都是目标检测的视觉抽取任务,由于都是提前抽取好特征缓存下来,研究人员并没有把过多的注意力放在计算复杂度和推理延迟上。显然在面对未见的下游任务场景时,视觉特征抽取部分的延迟是巨大的。因此ViLT应运而生,ViLT受到ViT的启发,ViT的工作证明了基于图像块的视觉特征和基于目标区域的视觉特征没有太大区别,也能很好拿来做目标检测任务。因此ViLT的作者将图像处理成图像块,和文本以相同的embedding形式输入到模态融合Transformer中,这大大降低了计算复杂度,并且对于下游任务来说,极大降低了推理延迟。
尽管如此,ViLT训练成本巨大,并且在性能上还是和(c)中的方法有一定的差距,可能的原因是在多模态中,视觉特征要远远大于文本特征,而ViLT中文本特征通过BERT的Tokenizer有很好的表征,但是视觉特征只是简单的随机初始化。
因此从结构上,一个好的多模态模型应该更接近于(c)的形式,视觉特征抽取模型要比文本特征抽取模型大,并且在模态融合上有更大的模型。对于训练目标,应该采用ITC+ITM+MLM方法的结合,即图文对比学习,图文匹配,完形填空,高效且性能出色。

2. ALBEF

ALBEF正是上面讨论的理想的多模态模型。ALBEF这篇工作来自于NeurIPS2021,与VILT出发的动机不同,ViLT只是为了提高模型的推理速度,而ALBEF的目的是在模型融合之前,就把图像和文本的特征align起来。具体来说,ALBEF有如下的贡献:

  1. 采用图文对比学习的方法提前将图文特征进行融合。
  2. 提出动量蒸馏方法解决噪声网络数据的问题。

对于第二个改进中提到的噪声网络数据,是指从网络中爬取的图文数据,文字内容大多都是关键词,而不是真正描述图像中的内容,因此成为了noisy的图文数据,导致模型很难学习到图文特征。

image.png
上图是ALBEF的整体模型架构。从简化模型的角度分析,左边是ViT,右边是劈成两半的BERT,前半部分输出和ViT的输出进行ITC的任务,后半部分对图文的特征进行融合。具体来说,图像这边打包成patch输入到ViT中,得到768维度的序列,文本这边转换为文本token序列喂入到6层的文本编码器中,输出768维的特征序列。接着图文token序列中的cls表征通过下采样和标准化降维到256维的特征,然后进行ITC的正负样本对比,让图像和文本的特征尽可能拉进,就完成了第一阶段的学习。
第二阶段,图像特征和文本特征共同输入到multimodal encoder中来实现模态的融合,通过ITM和MLM两个任务进行学习。ITM即图文匹配任务,判断当前的图片和文本是不是同一对,但是ITM任务过于简单,因此作者利用ITC任务中计算的余弦相似度,将最相似的样本作为负样本,来加大模型训练的难度,从而更好学习到特征的信息。MLM任务对输入的文本进行随机掩码,利用上下文和图像特征来预测mask的文本。这里也可以看出,虽然ITM和MLM画在一起,但是属于不同的前向过程,因此训练时间更长。
接着我们再探讨ALBEF另一个贡献点——动量蒸馏。由于预训练的图像对从互联网上收集,因此质量很差,图文经常不匹配。对于ITC学习,即使是负样本的文本也可能与图像匹配,对于MLM来说,可能存在更好的单词能够描述图像。但是ITC和MLM的one-hot标签仍然对这些结果进行惩罚,这会让模型的学习变得困难。作者提出采用动量模型生成的伪标签来帮助模型学习。训练时,作者训练基模型使其预测结果与动量模型的预测结果相匹配。具体来说,这个过程相当于为整个训练又额外添加了两个损失,即针对伪标签的ITC和MLM损失。
image.png
上图是伪标签和原始标签的对比,可以看到伪标签有时候更能有效捕获图像的相关信息。
预训练采用的数据集和ViLT一致,都是4million数据集。此外作者又额外加入了更多噪声的CC12million数据集,将性能进一步提高。
实验在五个不同任务的数据集上进行,首先是消融实验的结果:
image.png
可以看到加入了ITC后,模型的性能有了大幅度的提升,表明融合之前的模态对齐是很有必要的。并且更难的ITM、额外的两个伪标签loss以及更大的训练数据集都对模型的性能有所提升。
image.png
上表是在Flickr30K数据集上零样本的结果,ALBEF仅在4M数据集上预训练就超过了CLIP和ALIGN,二者都是在百倍大的规模数据集上进行预训练。微调结果也是同样的趋势:
image.png
此外,在多个下游任务上与其他SOTA模型相比也是大幅领先。
image.png
文中作者还从互信息的角度对ALBEF进行了理论分析,表明不同的训练任务可以解释为生成图像文本对视图的不同方式,即数据增强。总而言之,ALBEF无论在训练速度,还是在推理速度,亦或是通用性和性能表现上都非常亮眼,属于多模态领域里程碑式的工作。

3. VLMO

VLMO这篇工作来自于微软团队,中稿于NeurIPS2022,它主要提出两个贡献点:

  1. 模型结构上的改进,Mixture-of-Modality-Experts。
  2. 训练方式的改进,采用分阶段的模型预训练。

这些贡献点的动机也很明确。对于第一个贡献点,当前的双塔模型架构应用广泛,如CLIP和ALIGN,它们采用双编码器架构,分别对文本和图像进行编码,模态交互通过图像和文本特征的余弦相似度实现的。这种方法虽然计算高效,可以提前存储特征信息,但是交互简单难以处理复杂的任务。另一种模型架构是跨模态注意力融合编码器,它可以在复杂的VL分类任务上实现卓越的性能,但是需要计算所有可能的图文对,以计算检索任务的相似度,导致推理时间过慢。
因此本文的VLMO相当于这两种模型的融合,既可以做双编码器也可以做融合编码器,它通过引入Multiway Transformer实现,该模型应用模态expert来取代标准Transformer中的前馈网络,对于不同模态的数据,切换不同的expert来捕获特定于模态的信息,并使用跨模态共享自注意力来对齐视觉和语言信息。
对于第二个贡献点,由于多模态领域常用的数据集仅有4million大小,远远不能满足大规模预训练的要求,但是在单独的文本和图像模态数据集却十分丰富。因此作者提出一种分阶段预训练策略,将vision expert在视觉领域训练好,language expert在文本领域训练好,这样初始化好的参数再在多模态数据集上训练,就会在性能上有大幅的提升。
image.png
模型结构从形式上和ALBEF一致,单个Transformer块采用的是Multiway Transformer块,相对于Transformer,它在FFN上进行了改动,变成了V-FFN,L-FFN和VL-FFN,根据训练数据模态的不同调整更新不同的FFN。训练任务目标也和ALBEF一致,包括ITC,ITM和MLM,其中ITM也使用了Hard Negative Mining,即将一个batch中最相似的样本作为负样本。ITC的过程和CLIP一致,对V-FFN和L-FFN进行更新。ITM的过程是先单模态更新后模态融合,前L-F层分别对V-FFN和L-FFN进行更新,后F层对VL-FFN进行更新,执行二分类任务。MLM模型和ITM一致,只是拿最后一层对mask的token进行预测。
image.png
接下来就是本文的第二个贡献点具体实施过程,如上图所示。首先学习图像表征,更新V-FFN和多头自注意力机制的参数,接着冻住多头自注意力和视觉参数,对语言文本进行训练,更新L-FFN,最后所有参数都打开,在多模态数据下进行训练。这里有一个有趣的现象,作者是先在图像上进行训练,再在文本上进行训练,而不是反过来,因为实验发现反过来时效果会变差。
image.png
实验部分如上表所示,可以看到无论是base模型,还是large模型,亦或是Large++模型,VLMO的性能都要好于其他模型,并且随着模型增大,训练数据增多,模型的性能也进一步提升。
总结一下,本文提出了统一的视觉语言预训练模型VLMO,它既可以作为双编码器用于高效的视觉和语言的检索,又可以作为融合编码器为跨模态交互建模。此外,作者还表明利用大规模图像和纯文本语料的分阶段预训练极大改善了视觉语言预训练。实验部分表明,VLMO在各种视觉语言分类和检索基准上都要优于先前的先进模型。
未来作者将从以下几个方面对VLMO进行改进:

  1. 进一步扩大VLMO预训练模型的规模。
  2. VLMO微调执行视觉语言生成任务是有趣的方向,比如根据图像生成字幕。
  3. 视觉-语言预训练在多大程度上可以帮助彼此,特别是Multiway Transformer自然融合了图文表征的时候。
  4. 可以尝试融入更多模态的信息(speech,video,structured knowledge),支持通用的多模态预训练。

4. BLIP

随着多模态领域的发展,近两年的工作采用了Transformer Encoder和Decoder的方法,典型的工作就有来自ICML2022的BLIP。BLIP的动机和上篇工作VLMO有异曲同工之妙。首先都是从模型角度出发,现有的方法大多数都是encoder架构的模型,可以在理解任务上有出色的表现,但是在生成任务上表现不佳。此外还有一些encoder-decoder架构的模型,它们可以做生成任务,但是又在图文检索等理解任务上表现不佳。第二个动机也是和数据有关。当前大多数模型都是在充满噪声的大规模数据集上预训练,虽然通过扩大数据集获得了性能上的提升,但是嘈杂的网络文本对视觉的学习并不是最优的。
因此,本文提出了BLIP模型,其主要贡献点如下:

  • Multimodal mixture of Encoder-Decoder(MED):一个用于有效多任务预训练和灵活迁移学习的新模型架构。联合了三个联合预训练目标ITC、ITM和LM。
  • Captioning and Filtering(CapFilt):一种新的数据集增强方法,用于从噪声文本对中学习。Captioner模块用于为图像生成描述,filter模块从原始网络文本和合成文本中删除嘈杂的标题。

image.png
上图是MED的整体架构。之前的工作如VLMO,它的MOME模型就是受到ALBEF的启发构建出来的,这里的MED模型同时受到ALBEF和VLMO启发,其Encoder就是ALBEF,其共享参数的形式就是参考了VLMO。具体来说,MED由四个模块组成,第一个模块是图像的编码器,将图像打包成patch抽取图像的特征。后面三个模块本质上是一个模型,只不过执行不同的任务,第一个模块对文本进行单独编码,和图像特征执行ITC任务,可以看成是CLIP模型。第二个模块将文本和图像的编码进行混合,执行ITM任务,学习模态融合的知识。第三个模块是解码器模块,在之前编码器基础上去除了Bi Self-Att,加入了Causal Self-Att,执行LM任务,让模型拥有生成的能力。由于这篇工作的作者都是ALBEF的原班人马,因此ALBEF中有用的trick也被搬到BLIP中,比如动量编码器,难负样本等。
image.png
接着就是BLIP第二个贡献CapFilt,如上图所示。左边部分是在原始的噪声数据集上训练并执行下游任务的模块,显然这些数据并不是最优的选择。因此作者提出了Captioning和Filtering,合成CapFilt,前者用于给定网络图像生成图像的caption,后者作为过滤器过滤噪声文本。二者都是通过相同的MED模型初始化,并在COCO数据集上微调,只不过前者基于ITC和ITM微调,后者基于LM微调。微调后的模型作用于噪声数据集,对数据集进行清洗,生成更可靠的caption。
image.png
为了进一步解释上述过程,上图展示了生成过滤的结果。第一张图生成的caption明显可以更好描述图像,因此选择生成的caption作为图像的文本,第三张图原始的文本更契合图像内容,因此保留原始的文本而丢弃生成的caption。
image.png
消融实验部分很好说明了大模型,大的更干净的数据集可以对模型性能有着更好的提升。
image.png
和别的模型相比,BLIP也是极具优越性,在COCO和Flickr30K数据集上都达到了SOTA。

5. CoCa

之前的工作证明了decoder模型的优越性,但是由于计算不同的loss需要多次前向过程,因此计算和时间成本过高。CoCa进一步简化了之前工作的设计,文本端只使用decoder模型,只需要一次的前向过程就可以计算ITC Loss和Captioning Loss。其结构和伪代码如下图所示:
image.png
可以看到整体的结构和ALBEF几乎一样,只不过在文本端全部换成了Decoder,图像特征也通过attention pooling用于模态的融合。整体的方法相当简洁,由于是decoder架构,所以作者在几十亿规模的数据集、21亿参数的模型上进行预训练,scale的能力是相当出色。
image.png
文中的多边形图也极大展示了CoCa的优势。CoCa在各个数据集以及零样本上都展现出强大的能力,刷新了各个榜单的SOTA。

6. BeiTv3

随着多模态领域的工作越来越丰富,研究人员开始追求真正的大一统模型。BeiTv3的目标非常明确,它就是为了做更大一统的多模态模型,无论是模型大小还是目标函数甚至是数据集的规模,都要求统一。这篇工作上来就卖弄它的结果,如下图所示:
image.png
image.png
性能可谓是全方位包围之前的模型。BEiTv3得出了两点结论:

  • 目标函数不是越多越好,关键还是在于loss之间能否互相弥补。
  • 数据不是越大越好,数据的质量更为关键。

为了达到大一统的目的,本篇工作本质上是融合了之前所有模型的优势,主要从以下三个方面展开:

  1. Transformer提供统一编码,实现模态模型架构的统一。
  2. mask-then-predict的训练目标,减少过多训练目标带来的效率低下和冗余。
  3. 扩大模型规模和预训练数据规模。

image.png
模型的具体结构如上图所示,其实就是VLMO的变体,并且预训练任务只做Masked Data Modeling。
image.png
在执行下游任务时,模型也能实现很好的迁移,如上图所示,通过调用模型中不同的模块来执行下游任务,而这些模块都在预训练阶段得到充分的训练,只需要简单微调甚至零样本就能得到很好的效果。

总结

image.png
上述的一系列工作可以总结为上面这张图。本文关于多模态的工作其实是从ViT出发的,之前多模态领域对于图像特征的抽取都需要借助CNN架构的模型和目标检测任务,效率低,性能差。随着ViT提出后,多模态领域终于实现文图框架上的统一,即ViLT工作的诞生。但是此时的工作还是在探索图像特征抽取模型、文本特征抽取模型和特征融合模型之间的权重,因此性能甚至还不如之前的模型。ALBEF的工作奠定了模型的权重关系,结合了CLIP的方法,在融合前先进行一次文图特征的对齐,整个训练过程设计了三个训练目标,在性能上实现了显著的提升。但是ALBEF针对不同的模态总共设计了三个模型,既然都是统一的Transformer架构的模型,为什么不能只使用一个模型呢?为此VLMO采用了Multiway Transformer,让所有的模态特征学习都在一个模型中进行,通过冻结FFN和共享自注意力机制实现,实验结果上也是优于ALBEF。但是之前这些工作都只能做多模态理解任务,BLIP开创了生成任务的先河,加入了decoder架构,执行LM任务,并且利用对图像生成caption的优势对数据进行质量上的提升,从而进一步提高模型的性能。CoCa进一步简化先前的工作,文本端只采用decoder架构模型,只需要一次的前向过程就可以计算ITC Loss和Captioning Loss。最后,BeiTv3总结前面所有的工作,目标是成为大一统的多模态模型,在模型和数据规模上都进一步scale,以搭积木的方式处理各种下游任务,结果全方位包围了多模态领域和多个单模态领域的SOTA。
上面主要是从模型结构角度来分析多模态领域方法的改进,其实数据上也有很多改进。因为多模态领域数据集和单模态比起来明显不足,于是很多工作都采用从网络中爬取的文本对进行训练,但是网络数据质量不佳。为此ALBEF提出动量蒸馏方法解决噪声网络数据的问题,VLMO利用单模态数据集进行预训练,而BLIP出色的生成能力让其可以为图像生成更准确的文本caption,从而进一步提升模型的性能。
实际上,虽然BeiTv3这篇工作的目标是成为大一统模型,并且能够做各种各样的下游任务,但都是需要通过模型的组合拼接实现的,从本质上并没有实现大一统,真正的大一统模型是不需要根据下游任务调整模型结构的,如现在的GPT-4等大模型,而这也正是当前多模态领域发展的方向。

参考链接

https://arxiv.org/pdf/2104.13921.pdf
http://proceedings.mlr.press/v139/radford21a/radford21a.pdf
https://arxiv.org/pdf/2107.07651.pdf
https://proceedings.neurips.cc/paper_files/paper/2022/file/d46662aa53e78a62afd980a29e0c37ed-Paper-Conference.pdf
https://proceedings.mlr.press/v162/li22n/li22n.pdf
https://arxiv.org/pdf/2205.01917.pdf
https://arxiv.org/pdf/2208.10442.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【学习笔记】多模态综述 的相关文章

  • decimal返回给前端是数字类型而不是字符串

    bigDecimal长度太长 返回给前端 精度会丢失 即后几位都会变成0 解决办法 给前端返回字符串类型 加注解 JsonSerialize using ToStringSerializer class 如果有些字段不要返回给前端呢 比如删
  • 循环神经网络学习笔记(基础篇)

    循环神经网络 RNN 基础篇学习笔记 一 权重共享 在CNN全连接层权重占比较多 在图像任务中 由于整个图像共享卷积核 所以实际参数量远远小于全连接层 在实际任务中 由于全连接层参数过多 我们需要使用RNN解决带有序列模式的数据 同时利用权
  • 各种排序方法的比较

    各种排序方法的比较 排序方法有很多 它们各有优缺点 没有绝对最好的和最坏的排序方法 只有最符合某个使用场景的方法 在选用排序方法的时候 我们应该综合考虑以下方面 1 时间复杂度 2 空间复杂度 3 稳定性 4 算法简单性 5 待排序记录个数
  • vscode 缩略图

    vscode 缩略图 缩略图的打开与关闭 快捷键 Ctrl Shift P 输入 minimap回车 每次为开启关闭交替 大段代码缩略图可以快速移动 分屏时关闭缩略图更好看

随机推荐

  • mysql复制数据表

    CREATE TABLE newtable LIKE oldtable INSERT newtable SELECT FROM oldtable
  • 解决问题记录4:kettle数据库连接报错时区问题

    问题 Connection failed Verify all connection parameters and confirm that the appropriate driver is installed The server ti
  • FastCGI介绍

    CGI Common Gateway Interface 公共网关接口 是HTTP服务器与其他程序通信的工具 FastCGI是一个long live型的CGI 支持分布式计算 它将CGI解释器进程保持在内存中并因此获得较高的性能 FastC
  • 多模态深度学习

    我们对世界的体验是多模态的 我们看到物体 听到声音 感受质地 闻到气味 然后做出决定 多模态学习表明 当我们的许多感官 视觉 听觉 动觉 参与信息处理时 我们理解和记忆更多 通过组合这些模态 学习者可以组合来自不同来源的信息 多模态深度学习
  • Yoga 14s电脑亮度不能调节?教你一招一下搞定。

    说一下背景 本人电脑联想yoga 14s 不知道最近那一天突然发现电脑亮度没法调节 写小论文时眼睛都要被刺瞎了 试了重装驱动 无果 升级系统 无果 最后河海大学的好朋友问了客服 客服一针见血问出 是否装过向日葵等远程软件 果然 我装了向日葵
  • 使用Python,matplotlib绘制复杂曲线,并求其交点,y=-sin(x)-x-1并求解函数的值

    写这篇博客源于博友的提问 将介绍如何使用Python matplotlib绘制复杂曲线 并求其交点 y sin x x 1并求解函数的值 1 效果图 y sin x 效果图如下 y x ln x 效果图如下 y sin x x 1 y 0
  • 线段树(java)

    线段树描述 线段树是一种二叉搜索树 与区间树相似 它将一个区间划分成一些单元区间 每个单元区间对应线段树中的一个叶结点 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数 时间复杂度为O logN 而未优化的空间复杂度为2N 实际应
  • 使用File类读取文件夹中所有文件

    在平时使用图形化界面操作计算机时 可以很方便的区分各种文件 并进行操作 但对于编程而言 需要通过一些方法才能实现区分或列出文件 在Java编程中 有一个对文件操作的类叫做File类 File类的一个对象代表一个文件或者文件夹 并且File类
  • android内存优化面试题,写给Android软件工程师的3条建议

    我的移动开发春季历程 没有稳定的工作 只有稳定的能力 春天 又到了万物复苏的季节 在程序猿这个行当里 作为 Android 开发出生的我 在经历了5年的脱发生涯后 现在更多的是称呼自己为移动开发攻城狮 Java面试题 1 GC机制 垃圾回收
  • 【使用ip地址进入百度】

    ping一下百度的地址 C Users CaiWeiTong gt ping www baidu com 正在 Ping www baidu com 36 152 44 95 具有 32 字节的数据 来自 36 152 44 95 的回复
  • ElementUI浅尝辄止21:Tree 树形控件

    树形组件 用清晰的层级结构展示信息 可展开或折叠 树组件使用挺频繁的 常见于侧边栏树形目录 树形下拉选项按钮或搜索查询树形信息选项 1 如何使用 基础的树形结构展示
  • 每天五分钟机器学习:使用主成分分析法PCA算法的注意事项

    本文重点 PCA算法能够降维数据 这会给我们带来一些好处 本节课程我们将学习一下 在应用PCA算法时的一些建议 PCA算法可以提高算法的运行 如果数据集维度特别大 10000维 算法运行的会比较慢 我们使用PCA算法能够有效的降低数据的维度
  • maven打包报错-There are test failures

    如果工程中有测试程序 需要检查测试程序的包名与主程序的包名是否一致 解决方法 将包名修改为一致的包名 如果修改后无效 则先执行一下clean命令 在执行package 修改在测试程序的注解中指定主测试类 如果出现 Failed to cle
  • Qt在linux下安装时报错:cannot execute binary file

    最近由于项目需要 得把原来的产品升级为Qt5 之前用的都是Qt4 所以学习了一下Qt5 在windows平台下安装qtcreator时很顺利 但是在ubuntu下安装时遇到了问题 具体表现是在Qt官网https download qt io
  • 【深入理解Linux内核】【分页】相关函数或宏

    PAGE SHIFT PMD SHIFT PUDSHIFT PGDIR SHIFT 指定offset字段位数 指定offset和table总位数 确定页上级目录能够映射的区域大小 确定页全局目录能够映射的区域大小 PTRS PER PTE
  • 第二讲:网线的制作方法及步骤

    这几年 网络搭建与应用 专业技能大赛所需网线需要参赛学生自己制作 所以今天讲讲网线的制作方法及步骤 所要原料 双绞线 RJ45水晶头 所需工具 双绞线压线钳 双绞线测试仪 在制作网线之前 我们先来了解双绞线的连接方法 双绞线的连接方法有两种
  • windows下redis 和 hiredis的编译与使用

    转 http www cnblogs com raker p 4368741 html 果然 高端的程序员真心是鸟都不鸟windows的 redis的客户端找了一圈愣是没有C 的windows版本 我要做个windows上的C 的服务器都没
  • ubuntu安装SSH2

    apt get install libssh2 1 dev libssh2 php service apache2 restart 安装完成之后 可以使用SCP远程复制文件 connection ssh2 connect 192 168 1
  • 读取本地文件到读出p.node涉及的函数

    这里是读取本地文件的所调用的函数 func ParseNode rawurl string Node error if m incompleteNodeURL FindStringSubmatch rawurl m nil id err H
  • 【学习笔记】多模态综述

    多模态综述 前言 1 CLIP ViLT 2 ALBEF 3 VLMO 4 BLIP 5 CoCa 6 BeiTv3 总结 参考链接 前言 本篇学习笔记虽然是多模态综述 本质上是对ViLT后多模态模型的总结 时间线为2021年至2022年