该综述针对多模态大模型的架构、训练策略、训练数据、测评以及多模态幻觉、多模态上下文、多模态思维链和多模态视觉理解方面进行介绍。
1 MLMM架构
多模态大模型的架构一般分为:
- Modality encoder
- Pre-trained LLM
- Modality interface
1.1 Modality encoder
模态编码器,以下为主流的图像编码器。
- 图像编码器一般使用CLIP以及其变体
- 视频特征一般抽取关键帧后使用图像编码器进行编码,然后融合后作为视频特征使用。
- 音频编码器使用BEATs、Whisper、CLAP或者使用图像、视频、音频通用编码器ImageBind。
探讨图像编码器的参数:分辨率、参数量、预训练数据,
结论:分辨率对图像编码器的影响最大,参数量和预训练数据目前看来影响不大。
部分模型例如CogAgent、Monkey和SPHINX模型使用高低两个模态编码器。
1.2 Pre-trained LLM
预训练大模型大家普遍使用的系列如下:
- T5 series
- LLaMa series
- Vicuna series
- Qwen series
- MoE series
多模态大模型的LLM模态同样符合Scaling Law法则,随着LLM的增大,会出现Zero-shot涌现能力。
1.3 Modality interface
模态对齐一般使用两种策略:
- 1 需要训练的Learnable Connector
- Token-level(concate)
- Q-Former like : BLIP2…
- MLP like: LLaVA…
- Feature-level (fusion): Flagmingo, CogVLM, LLaMa-Adapter…
- Token-level(concate)
- 2 不需要训练的Expert Model(将图片、视频和音频转换成文字,和Prompt一起输入LLM)
2 MLMM训练策略
MLMM的训练三阶段为:对齐、Instruct Tuing 和Alignment Tuning。
2.1 对齐
通过Text-Modal pair 数据进行对齐模块(Q-Former or MLP)的训练。
一些方法选择冻结Visual Encoder, 另一些方法选择不冻结Visual Encoder以引入更多参数。
具体而言:
- 1 如果输入文本描述数据noisy,则低分辨率图像更适合加速对齐过程。
- 2 如输入文本描述数据很高质量,则高分辨率图像更适合缓解幻觉问题。
- 3 如果输入文本描述数据很高质量,则选择不冻结Visual Encoder可能更有益于模型性能。
对齐数据:
2.2 Instruct Tuning
2.2.1 任务形式
Instruct Tuning阶段一般来说用于教会模型遵循指令理解完成要求任务,同时提升下游任务的泛化性。
image-text Instruct Tuning数据更像是VQA任务或者图片描述任务。
任务形式如下:
2.2.2 Data Preparing
该阶段的数据集质量直接决定最后模型的性能,故此处的数据集要求高质量和多任务。该步骤的数据集质量是所有训练过程最重要的!!!!!!。
此处获取多任务指令跟随数据对的途径:data adaptation, self-instruction, and data mixture。
data adaptation: 特定任务,例如VQA、Image Caption, OCR.
self-instruction: 利用少量手工标注的数据作为Instruct prompt让LLM为我们生成符合Instruct数据。例如LLaVA将Image转化为文字和box描述,通过组合Prompt让GPT4生成需要的新数据。MiniGPT-4、ChatBrige、GPT4Tools和DetGPT都是根据此步骤生成新数据。
data mixture: 混合一定比例的纯文本数据可以保留LLM的指令遵循能力和对话理解。
如何评估数据的质量:Prompt的多样性和任务的多样性。
2.3 Alignment Tuning
stategy: RLHF, DPO
data: LLaVA-RLHF , RLHF-V, VLFeedback.
3 MLMM测评
3.1 Close-Set
ScienceQA / NoCaps / Flickr30K
MME / MMBench / Video-ChatGPT / Video-Bench / POPE
MiniCPM V的测评图:
Qwen VL:
3.2 Open-Set
pass