知识截至2024年6月。
1 Tasks
现代机器学习的Tasks基本可以划分成以下16个方向:
- Computer Vision
- Natural Language Processing
- Medical
- Miscellaneous
- Methodology
- Time Series
- Graphs
- Speech
- Audio
- Reasoning
- Computer Code
- Playing Games
- Adversarial
- Robots
- Knowledge Base
- Music
多模态AI主要针对以下几个方向:
- Computer Vision(计算机视觉,如Visual Question Answering、Visual Grounding、Image-Text Matching、Image Captioning)
- Miscellaneous(杂项,如SciQA、Cross-Modal Retrieval)
- Reasoning(推理,如Visual Commonsense Reasoning)
一个特定Task的模型像是搭积木:选择什么样的Encoder?选择哪个LLM作为主干?模态融合用什么算法?选择什么数据集训练?有没有LoRA?有趣的是,这些组件大多都有现成的资源,只是尚未被整合成一个完整的产品。
当今AI面临的挑战大多可分为6个方向:Underexplored Modalities(尚未发掘的模态)、Weak Multimodal Evaluation(不足的基准测试)、Lack of Theoretical Multimodal Understanding(理论知识的欠缺)、Absence of Multimodal Trust Framework(模型可信度的缺失)、Misaligned Modality Encodings(错误的模态对齐策略)、High Computational Effort(望而生畏的算力)。
2 Architecture
2.1 Introduction
2.1.1 MM
多模态模型分为典型(Conventional)和通用(Generalist)两种类别[1]。
其中,通用多模态模型(Generalist Multimodal Model)简称GMM。
Attributes | Typical Multimodal learning | Generalist Multimodal learning |
---|---|---|
Modality | Limited set of input modalities, primarily vision, text, or audio | Large set of more diverse modalities, including vision, language, audio, video, time series, sensor, graph, etc. |
Objective | Focus on cross modal learning | Equal importance to both unimodal and cross-modal learning |
Flexibility | Rigid architecture in regard to encoding and decoding. | Modular architecture that allows flexible combination of modules for unimodal and multimodal tasks. |
Adaptability | Discrepancy between pretraining and finetuning tasks lead to low zero/few shot capability | High zero/few shot capability with being adaptive to new downstream tasks |
Generalizability | High discriminative but low generative capability | Low discriminative and high generative capability |
Popular models | VATT, ALBEF, BLIP, LF-VILA, BriVL, OmniVL, LLaVA, mPLUG-owl, Kosmos-1, etc. | GATO, OFA, OFA+, MPLUG-2, META-TRANSFORMER, NEXT-GPT, etc. |
2.1.2 GMM
根据统一性(Unifiability),可分为仅输入序列化(Input-Only Sequencing)、输入-输出序列化(Input-Output Sequencing)和均一化编码(Homogenized Encoding)。
- 仅输入序列化:将不同模态的数据都转换为各自的Token,映射到共享空间中,如PERCEIVER。
- 输入-输出序列化:将输入数据序列化为Token,映射到共享空间中,再用Token输出,如MPLUG-2。
- 均一化编码:使用统一的编码器将不同模态的数据直接映射到一个共享的表示空间,如META-TRANSFORMER。
根据模块性(Modularity),可分为模块化架构(Mixing and Matching Modules)、模块化训练(Multiple Training Configurations)和模块化检索增强(Multimodal Retrieval Augmented Generation)。
- 模块化架构:通过即插即用的方式组合不同类型的组件(编解码器、通用模型等),确保模型架构的模块化,如MPLUG-2。与LangChain不同的是,后者更强调通过管道化处理构建应用程序。
- 模块化训练:采用两阶段方法先对齐图像和文本,再用多模态数据集训练,不同阶段冻结不同组件,如MPLUG-OWL。
- 模块化检索增强:RAG由两个模块化组件组成,即检索器和语言模型,如RA-CM3。
根据适应性(Adaptability),可分为训练目标(Effective Training Objectives)、指令微调(Instruction Tuning)、提示微调(Prompt Tuning)、扩展(Scaling)、统一架构(Unified Architecture)和模块化配置(Modular Configuration)。
- 训练目标:常见的预训练目标之一是语言建模损失的掩码语言建模(即Mask法),以及跨模态目标的模态匹配损失(动量蒸馏),如OFA。
- 指令微调:在微调期间提供给模型一组指令,这些指令指导其行为和决策过程。这些指令可以由领域专家手工编写,也可以通过强化学习等技术自动生成,如NEXT-GPT。
- 提示微调:以自然语言指令作为输入,提升输入参数的效率,如UNI-PERCEIVER。
- 扩展:增加模型参数与数据集,提高模型性能,如GATO。
- 统一架构:类似输入-输出序列化,将每个输入和输出同质化为离散的词汇序列,如OFA。
- 模块化配置:类似模块化架构支持的部分替换,模块化训练支持的细粒度微调,以及模块化检索增强提升适应性,如ONELLM。
2.1.3 Instruction-Following
代理指的是具有自主性的软件实体。指令遵循型的代理(Agent)又可以分为端到端(End-to-End)和语言链(LangChain)两种类别[2]。
Category | Description | Examples |
---|---|---|
End-to-end trained models | Models that are separately explored for each specific research topic. | Vision-language navigation tasks like Habitat, image editing like InstructPix2Pix |
Coordinated systems | Systems that coordinate various models via LangChain or LLMs. | Visual ChatGPT, X-GPT, MM-REACT, VisProg, ViperGPT |
注意视觉指令微调(Instruction Tuning)不同于与视觉提示微调(Prompt Tuning),前者通过训练提高模型的指令遵循能力,而后者只是提示工程的文字游戏。
2.2 Basic
2.2.1 Seq2Seq
Seq2Seq最初在2014年提出,由编码器和解码器组成。
编码器接收输入序列并编码为固定大小的上下文向量,上下文向量只是输入序列压缩的全局表示;解码器使用编码器生成的上下文向量生成输出序列,一个时间步一个时间步地进行。
编码器和解码器通常由RNN构成,如LSTM或GRU等变体。
2.2.2 Transformer
Transformer最初在2017年提出,是更先进的Seq2Seq架构。
Encoder
Transformer的Encoder在对输入的自然语句完成嵌入和位置编码后,由多个相同的Block组成,每个Block包括两个主要的Layer:多头自注意力Layer和前馈网络Layer。
Encoder的每个Block的输入是一个隐状态序列(不同于Seq2Seq的上下文向量,这里多了自注意力值和位置编码)。每个Block的输入交给自注意力机制计算,经过残差连接和层归一化后,送至前馈网络,再经过一次残差连接和层归一化。Encoder每个Block输出处理后的更好的隐状态序列,可以给下一个Block使用。第一个Block输入的隐状态序列就是位置编码后的嵌入向量。
Encoder的目的是将原始的嵌入序列转换为一系列上下文增强的隐状态序列。
Decoder
Transformer的Decoder在对已经生成的词语完成嵌入和位置编码后,由多个相同的Block组成,每个Block包括三个主要的Layer:掩蔽多头自注意力Layer、编码器-解码器注意力Layer和前馈网络Layer。
Decoder的每个Block的输入是一个隐状态序列。每个Block先经过掩蔽多头自注意力计算,经过残差连接和层归一化后,然后交给编码器-解码器注意力Layer,继续残差连接和层归一化,送至前馈网络,再一次残差连接和层归一化。Decoder的每一个Block输出处理后的更好的隐状态序列,可以给下一个Block使用。最后,整个Decoder通过Softmax概率分布预测下一个词。
Decoder的目的是在每一步预测目标序列中的下一个词。
2.3 Pipeline
2.3.1 Pre-processor
\[\mathbf{e_t} = \text{Encoder}_\text{text}(\mathbf{t})\in \mathbb{R}^{d_{t}}, \quad \mathbf{e_i} = \text{Encoder}_\text{image}(\mathbf{i})\in \mathbb{R}^{d_{i}} \]\[\mathbf{e_t'} = \mathbf{W_t} \mathbf{e_t} + \mathbf{b_t} \in \mathbb{R}^{d}, \quad \mathbf{e_i'} = \mathbf{W_i} \mathbf{e_i} + \mathbf{b_i} \in \mathbb{R}^{d} \]预处理器包括Serialization/Tokenization、Encoding和Projection。
-
Serialization/Tokenization:在文本模态中,输入文本被解析成令牌,每个令牌被映射到词汇表中的一个数值ID;在视觉模态中,图像被调整为固定大小的Patch,并将相应的像素值存储在数值张量中;在音频模态中,原始音频被转换成频谱图表示,然后进一步分割成小的时间/频率帧。这一步的主要目的是将数据离散化以供编码器使用。
-
Encoding:LLM分为Decoder型(如OPT)和Encoder-Decoder型(如FlanT5)。对于文本模态,任何在大规模文本语料库上训练的LLM的Encoder都可以作为有效的嵌入模型;CLIP和CLIP-VIT系列模型是编码视觉信息的强有力候选者;大规模音频模型如WHISPER被用于音频模态的编码。不同的模态的Encoder通常是分开训练的,因此通常需要在其后加上Projection对齐这些向量的维度。
-
Projection:投影不仅包括从简单的全连接线性层到复杂的卷积操作,还包括其他精巧机制。由于现代LLMs开始发力,大部分模型会选择在Projection阶段把其他模态向文本空间投影,使得所有模态维度相同后,再进入下一步Universal Module的Interaction阶段。模态对齐是必要的,因为预加载的LLM只能接受hidden size大小的隐状态序列。传统意义上,也有不经过Projection直接到Interaction的(比如MCAN),不过2020年后基本被淘汰了。
2.3.2 Interaction
\[\mathbf{Q} = \mathbf{W_q} \mathbf{e_t'} \in \mathbb{R}^{d} , \quad \mathbf{K} = \mathbf{W_k} \mathbf{e_i'} \in \mathbb{R}^{d}, \quad \mathbf{V} = \mathbf{W_v} \mathbf{e_i'} \in \mathbb{R}^{d} \]\[\mathbf{e} = \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) \in \mathbb{R}^{d} \]Interaction输出融合后的隐状态序列。
无论是MPLUG-OWL2的模态适配器,还是MM-CoT的门控融合算法,都属于这一部分。其核心在于设计一个合理的网络结构,使新增的多模态部分能够与预加载的LLM参数协同工作。
四种基本Fusion组件分别是CoAttention、Merged Attention、Modality Specific Attention、Asymmetric Attention。
-
CoAttention:查询来自一个模态,键和值来自另一个模态。
-
Merged Attention:简单地合并所有输入tokens的键和值,而不管模态类型。
-
Modality Specific Attention:查询、键和值都来自同一模态,这种单独的注意力称为模态特定注意力。
-
Asymmetric Attention:相当于半个CoAttention,比如视觉查询-文本键值或文本查询-视觉键值的非对称注意力。
2.3.3 Post-processor
\[\mathbf{y} = \text{Decoder}(\mathbf{e}) \in \mathbb{R}^{d} \]后处理包括对预加载的LLM权重的微调(如Instruction Tuning),并将学到的多模态向量转换为特定任务的输出。
对于仅文本输出,最简单的是标准的Transformer Decoder;对于图像生成,常用扩散解码模型,如Stable Diffusion;对于音频合成,则首选AudioLDM。
2.4 Paradigm
NLP工作的四个范式[3]:
2.4.1 Pre-Training
预训练LLM所需的FLOPs远远多于微调阶段。实际上,进行预训练的模型并不多,如OpenAI的GPT系列、Google的AI系列和Meta AI系列。
预训练方法通常结合自回归式与噪声(如Mask、Replace、Delete、Permute),可以分为以下几种:
- Left-to-Right LM:从左到右训练,所有的隐状态序列都只与前文有关。
- Masked LM:遮蔽掩码训练,随机掩盖输入序列的一些标记。
- Prefix LM:前缀训练,结合了从左到右和掩码语言模型的元素。
- Encoder-Decoder:编码器-解码器训练,适合Seq2Seq任务。
2.4.2 Fine-Tuning
现代的各种模型基本上都属于Fine-Tuning范畴,例如Visual ChatGPT、MM-COT、LLaVA、mPLUG、MM-REACT等。虽然OpenAI的GPT系列不开源,但可以通过API实现有限的Fine-Tuning。
对于Instruction-Following Agent,许多Fine-Tuning采用两个阶段的范式:
- Alignment/Projection(对齐/投影)阶段
- Instruction Tuning(指令调优)阶段
在Alignment阶段,各模态统一到和LLM相同维度的空间中,这个阶段在论文中也常称为“Fine-Tuning中的预训练”。对齐时有两种思路可供选择:一种是将视觉信息投影到文本空间,例如InstructBLIP、LLAVA、MPLUG-OWL和MiniGPT-4;另一种是将各模态投影到一个新的空间中,例如CLIP、MPLUG-2、MPLUG-OWL2。
在Instruction Tuning阶段,通常会更新LLM内部的参数,如各种注意力机制和优化器的参数。在实际冻结模型参数时,通常会选择冻结编码器和LLM中的不同部分。常见策略包括完全冻结模型,只训练一个投影层(如MiniGPT-4);第一阶段只训练投影层,第二阶段调优LLM(如LLAVA);另一种策略是联合训练视觉编码器和语言模型(如MPLUG-OWL)。
3 Models
3.1 Unimodal Foundation
3.1.1 Language
-
BERT(2018):是NLP历史上的大突破。BERT主要用于文本理解,它只有Encoder(双向带Mask的Bidirectional Encoder)而没有Decoder。
-
GPT-3(2020):2022年向公众开放。GPT主要用于文本生成,它只有Decoder而没有Encoder。
-
T5(2020):T5是一种将所有自然语言处理任务统一为文本到文本格式的模型,它包括Encoder和Decoder。
-
T0(2021):结合代码片段和自然语言的Instruction Tuning。
-
Ernie(2021):百度的文心一言,2023年向公众开放。
-
Flan-T5(2022):原始T5模型基础上加入额外的Instruction Tuning,强化对少量样本的学习能力。
-
LLAMA(2023):是开源的大语言模型,在一些领域取得SoTA效果。
-
MISTRAL(2023):同样是开源模型,在一些领域达到SoTA。
3.1.2 Vision
-
ResNet(2015):引入残差学习显著提高性能。
-
Fast R-CNN(2015):引入ROI池化层来显著提高目标检测的速度和精度,常用ResNet作为特征提取网络的部分。
-
YOLO(2016):专用目标检测算法。
-
MCAN(2019):引入协同注意力机制,是Transformer的变体。
-
ViT(2020):Vision Transformer将图像分割成多个Patch,然后将这些Patch视为序列的元素,类似于在自然语言处理中处理单词。每个Patch首先被转换为一维的嵌入向量(Linear Projection,线性投影),然后输入到一个标准的Transformer Encoder中。
-
Swin-T(2021):是2021年ICCV最佳论文。它打败了ViT和DeiT,核心是Patch合并和滑动Window机制。
-
CLIP(2021):采用对比学习(Contrastive Learning)策略。正样本对的嵌入向量相似度高且负样本对的嵌入向量相似度低时,损失值减小。
-
InternVideo(2022):整合两个具有生成和判别能力的大型视频模型来实现其功能。
-
FLAVA(2022):用一种新的注意力机制增强语义对齐。
-
Visual ChatGPT(2023):这是第一个ChatGPT结合图像VFM(Visual Foundation Models)的模型,本质上是把VFM提取的图片特征用Prompt Manager转换为文本格式发送给GPT。GPT-4也采用类似的技术。
-
SCI-TUNE(2023):主要针对视觉文本对齐的科学任务。
3.1.3 Time Series
-
INFORMER(2021):引入概率注意机制,捕捉时间序列预测中的长序列依赖性,是第一个多模态时序模型。
-
SPACETIMEFORMER(2021):将多变量预测形式化为一个时空序列问题,每个输入令牌代表特定时间点上一个变量的值。
-
TIMEGPT(2023):基于标准的Transformer编码器-解码器架构,使用一段历史值窗口来生成预测,并添加局部位置编码,有相当高的零样本性能。
3.1.4 Graph
-
GROVER(2020):图神经网络(GNN)模型,主要用于预测分子性质。
-
AUTO-SSL(2021):为任务分配权重来自动有效地利用多个预训练任务。
-
U-SSL(2023):将预训练能力从单个图扩展到特定家族的多个图,展示了多图学习的优势。
3.2 General Series
3.2.1 MPLUG
- MPLUG(2022):采用Asymmetric Attn和Merged Attn结合的方式,以一定的Stride跳过文本部分的Asymmetric Attn作为LLM的模态交互部分。
-
MPLUG-2(2023):与MPLUG类似,主要针对Video模态。
-
MPLUG-OWL(2023):典型的双阶段微调的模块化训练模型,并在Instruction Tuning阶段采用LoRA降秩。核心是联合训练策略,2024年3月重新修订。
- MPLUG-OWL2(2023):与初版OWL相比,增加了模态适应模块(MAM,Modality-Adaptive Module)。
3.2.2 LLAVA
- LLAVA(2023):首次引入GPT-4作为教师模型,生产图片-文本对的数据集用于Instruction Tuning的训练。
- LLAVA-1.5(2023):与初版LLAVA相比,把对齐过程的线性Projection替换成了MLP,并Scaling up了各种新的数据集。2024年5月重新修订。
3.2.3 Pathways
-
PALM(2022):这是纯文本模型。第一次使用Pathways框架,在基本的Transformer Decoder上作出训练上的优化,极大地提高参数量和扩大训练集,发现Scaling带来的“不连续的改进”。
-
PALI(2023):采用Vanilla ViT Architecture(ViT-e)作为视觉提取器,LLM选用mT5。
- PALI-X(2023):核心是Scaling的贡献。视觉提取部分使用了最大的22B的ViT,语言的Encoder与Decoder部分共计32B。是截至目前VQAv2、GQA、VisWiz、TextVQA的SoTA模型。
3.2.4 CoT
-
CoT(2022):这是纯文本模型。提出语言链思路处理逻辑推理问题。
-
MM-CoT(2023):引入Gated Fusion Mechanism,是ScienceQA的SoTA模型。
3.2.5 Bootstrap
- BLIP-2(2023):首次提出Q-Former机制融合模态。在表示学习阶段,模型学习如何高效表示图像和文本特征。在生成学习阶段,模型学习如何根据输入生成相关输出。这种逐步改进的方法类似于Bootstrap。
- InstructBLIP(2023):在BLIP-2上作扩展,提出指令感知的Q-Former模块,将指令文本标记作为额外输入。
Benchmarks
在各种基准测试中的最新SoTA模型和性能比较可以在Papers With Code网站上找到。
References
[1] Munikoti, S., Stewart, I., Horawalavithana, S., Kvinge, H., Emerson, T., Thompson, S. E., & Pazdernik, K. (2024). Generalist multimodal AI: A review of architectures, challenges and opportunities. arXiv. https://doi.org/10.48550/arXiv.2406.05496
[2] Liu, H., Li, C., Wu, Q., & Lee, Y. J. (2023). Visual instruction tuning. arXiv. https://doi.org/10.48550/arXiv.2304.08485
[3] Liu, P., Yuan, W., Fu, J., Jiang, Z., Hayashi, H., & Neubig, G. (2021). Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing. arXiv. https://doi.org/10.48550/arXiv.2107.13586
标签:模态,mathbf,Tuning,模型,Encoder,编年史,2023,荟萃 From: https://www.cnblogs.com/Arcticus/p/18265500