多模态模型结构与训练总结

人工智能
看了这么多多模态基座模型,今天来对多模态结构和训练流程做个总结。

01、模型结构

图片

一般的多模态模型架构包含5个部分,分别是:模态编码器、输入映射器、大模型骨干、输出映射器以及模态生成器。

模态编码器(Modality Encoder, ME)

将多种模态输入图片编码成特征表示图片,公式如下

图片

X表示模态,图片表示各种预训练好的编码器。

目前模态主要分为:视觉模态、语音模态、3D点云模态,其中视觉模态主要包括图像和视频,对于视频,视频通常被均匀采样成5帧图像,然后进行与图像相同的预处理。各模态常用的编码器如下:

图像编码器(Image Encoder)

  • NFNet-F6:这是一个无归一化(normalizer-free)的ResNet变体,它使用了自适应梯度裁剪技术,允许在大量增强的数据集上进行训练,同时保持了高水平的图像识别性能。
  • ViT(Vision Transformer):ViT将Transformer架构应用于图像,通过将图像分割成小块(patches),然后进行线性投影和多层Transformer编码来处理图像。
  • CLIP ViT:CLIP(Contrastive Language-Image Pre-training)结合了文本和图像,通过对比学习优化ViT,将成对的文本和图像视为正样本,其他视为负样本。
  • Eva-CLIP ViT:Eva-CLIP是CLIP的稳定版本,它通过对比学习优化了大规模CLIP的训练和优化过程,为扩展和加速昂贵的多模态基础模型训练提供了新的方向。

视频编码器(Video Encoder):

  • UL2:UL2(Universal Language Model 2)是一个编码器-解码器模型,它使用混合去噪目标进行训练,适用于视频内容的理解。

音频编码器(Audio Encoder):

  • C-Former:C-Former使用CIF(Cross-Information Flow)对序列进行转录,并结合Transformer提取音频特征。
  • HuBERT:HuBERT是一个自监督的语音表示学习框架,基于BERT,通过预测离散隐藏单元的掩蔽来实现。
  • BEATs:BEATs是一个迭代的音频预训练框架,旨在从音频Transformer中学习双向编码器表示。
  • Whisper:Whisper是一个大型的自监督语音识别模型,它使用大量的未标记数据进行训练。

3D点云编码器(3D Point Cloud Encoder)

  • ULIP-2:ULIP-2(Universal Language Image Pre-training 2)是一个点云编码器,它结合了PointBERT作为其主干,用于处理3D点云数据。

输入映射器(Input Projector, IP)

将模态编码器输出的特征图片与文本特征空间TT对齐,以便输入到LLM主干。

图片为输入映射器,图片为映射后的特征向量,即:

图片

给定模态-文本数据集图片,通过如下目标函数实现特征对齐:

图片

典型的输入映射器如下:

  • 线性投影器(Linear project)或多层感知机(MLP),现在多模态大模型中最常用的输入映射方式。
  • 交叉注意力(Cross-Attention):使用一组可训练的向量作为query, 将编码的模态特征图片作为key,将其压缩为固定长度的特征表示。压缩后的特征表示随后直接输入到LLM主干,或者用于与其他模态的交叉注意力融合。
  • Q-Former:从模态编码器的输出特征图片中提取相关特征图片,并将这些特征用作LLM主干的输入。Q-Former通常需要一个单独的预训练过程来初始化。
  • P-Former:生成“参考提示”(reference prompts),对Q-Former产生的提示施加对齐约束,同样需要一个单独的预训练过程。

大模型骨干(LLM Backbone)

处理来自不同模态的表示,进行语义理解、推理和决策。

LLM主干通常是基于预训练的文本模型,能够处理多种模态的输入,并生成文本输出 t 和其他模态的信号Token图片,指导模态生成器产生相应的多模态内容。

对于其他模态的信号Token 图片,如果用于生成多模态内容,其生成过程可表示为:

图片

图片表示其他模态的对其表征,可以看做LLM的软Prompt-tuning。

典型的LLM包括:Flan-T5、ChatGLM、UL2、Qwen、Chinchilla、OPT、PaLM、LLaMA、LlaMA2、Vicuna等。

输出映射器(Output Projector, OP)

输出映射器将LLM主干产生的信号Token图片映射成模态生成器可以理解的特征,通常由Tiny Transformer或MLP实现。

图片为输出映射器,映射过程即:

图片

在这一过程中,为了促进映射后特征图片的对齐,通过如下目标函数最小化图片和模态生成器的条件文本表示之间的距离,即:

图片

图片为模态生成器中的文本条件编码器。

模态生成器(Modality Generator,MG)

模态生成器根据LLM主干的输出从而实现不同模态的输出,如对于图像,可以使用基于扩散模型(如Stable Diffusion)的生成器;对于视频,可以使用基于时间序列的生成器(如Zeroscope);对于音频,可以使用基于音频变换器的生成器(如AudioLDM)。

由输出映射器映射的特征图片充当去噪过程中的条件输入,为了生成特定模态的内容,模态生成器首先需要将真实内容转换为潜在特征图片。这一步通过预训练的变分自编码器(VAE)完成。接着,向图片添加噪声 ϵ 以获取带有噪声的潜在特征图片。之后,通过一个预训练的U-Net模型计算出预测的噪声图片,并基于此计算模态生成器的损失函数。该损失函数定义如下:

图片


02、模型训练

在训练过程中,输入和输出映射器通常是轻量级组件,而LLM主干则是模型的核心,通常保持冻结状态,以减少训练成本。通过这种方式,MM-LLMs能够在保持高效训练的同时,实现对多模态任务的强大支持。

LMM训练考虑要素

  • 图像分辨率
    更高的图像分辨率可以包含更详细的视觉特征,有利于需要细粒度信息的任务。像LLaVA-1.5和VILA采用336*336分辨率,Qwen-VL和MiniGPT-v2采用448*448分辨率。
    大分辨率带来的较长的词元序列,需要额外的训练和推理代价。MiniGPT-v2通过拼接4个相邻的视觉词元,降低词元序列的长度。Monkey方法提出了增强输入图像分辨率而无需重训练高分辨率的视觉编码器模型的方法,使用低分辨率编码器,可以处理1300*800的图像。DocPedia方法,为了增强富文本图像、表格和文档的理解, 将视觉编码器分辨率增强到25602560。
  • 高质量SFT数据
    高质量SFT数据可显著提升特定任务的性能。
  • 在LLM骨干进行执行PEFT, 可以提升深度嵌入对齐能力,对ICL重要
  • 交替文本-图像数据更好,而仅图像文本对则是次优的
  • 在SFT中,重新混合仅文本的指令数据 与图文数据(如非自然语言指令),不仅可以解决仅文本任务的性能下降,也正提升视觉语言任务的准确性。

多模态大模型的训练主要分为两个阶段:多模态预训练(MM PT, MultiModal Pre-Training)和多模态指令微调(MM IT, MultiModal Instruction Tuning)

多模态预训练

预训练阶段,采用数据集,输入和输出映射器用于实现不同模态之间的对齐,对于LLM Backbone有时使用PEFT训练。

对于多模态理解模型,只优化文本生成损失;对于多模态生成模型,需要优化文本生成损失、模态生成损失和输出对齐损失。

典型的数据集包括:图像-文本、视频-文本、语音-文本等,其中图像文本包含两种,分别是图像文本(<img1><txt1>)和交替图像文本(<img1><txt1><txt2><img3><txt3>)。

多模态指令微调

这一阶段,通过指令格式化的数据集对预训练的MM-LLM进行微调,以提高模型遵循新指令的能力,增强其在未见任务上的性能。

指令微调包括监督微调(SFT)和人类反馈强化学习(RLHF),增强多模态大模型的交互能力,显著改善零样本性能,极大增强泛化能力。

视觉语言指令微调(VLIT)

图片

预训练阶段,MLLM需要使用大量的图像文本对作为训练数据,以在不同模态之间实现对齐,并将视觉信号转化为LMM可以理解的表征或Token。

指令微调阶段,需额外的需求以理解视觉信息。随着多模态数据越来越多地融入 LLM 中,视觉语言指令调优(VLIT)受到了越来越多的关注,与纯文本指令调优相比,它呈现出更复杂的特征。

指令微调阶段的损失函数:

图片

03、总结

最近看了很多多模态大模型相关的论文,今天对模型结构和训练进行一个简单总结,整体来看,各家的模型结构基本上一致,无非是一些模型细节上的改变。模型训练方式也大差不差,基本上都是预训练+微调。整体的模型结构了解了,后续就开始更新模型的各个模块单元了,首先从模态编码器上继续进行一个系统的学习,希望能帮助到大家。

责任编辑:庞桂玉 来源: 小白学AI算法
相关推荐

2025-03-13 09:47:29

2024-12-30 00:01:00

多模态大模型Python

2025-01-08 08:21:16

2024-12-12 00:25:09

2023-05-22 09:22:41

论文CV

2024-05-27 07:21:43

2024-03-25 12:30:18

AI训练开源

2025-03-19 09:30:00

2024-12-18 18:57:58

2024-11-13 09:39:13

2023-09-29 22:31:25

高斯混合模型机器学习

2024-11-22 08:22:58

2024-06-03 06:49:53

2024-09-25 16:08:52

2024-12-09 08:15:43

2022-08-08 09:47:09

AI算法模型

2021-12-23 10:00:38

谷歌训练技术

2024-09-25 14:53:00

2023-08-14 07:20:10

点赞
收藏

51CTO技术栈公众号