欢迎关注我的CSDN:https://spike.blog.csdn.net/
免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。
多模态大语言模型 (Multimodal Large Language Models, MLLM) 框架包括 3 个部分:预训练的模态编码器、预训练的 大语言模型(LLM)、连接模态的 接口(Interface),也可以添加可选的 生成器(Generator) 到 LLM,用于生成除了文本之外的其他模态。
- 编码器接收图像、音频或视频,并且,输出特征,这些特征由连接器处理,以便LLM 能更好地理解。
- 连接器大致有三种类型:基于投影(Projection-Based)、基于查询(Query-Based) 和 基于融合(Fusion-Based) 的连接器。前两种类型使用 Token 级别的融合,将特征处理成 Token,与文本 Token 一起发送,而最后一种类型,在 LLM 内部实现特征级别的融合。
即:
MLLM 的 Foundation Model 是 LLM,Connector 将多模态的 Embedding 转换成 Text Like 的 Embedding。Q-Former,即 Query Former。
1. 多模态编码器 (Modality Encoder)
使用 预训练(Pretrained) 的编码器,例如 CLIP,常用的模型比较,OpenCLIP、CLIP、EVA-CLIP,即
相关论文:
- CLIP - Learning Transferable Visual Models From Natural Language Supervision
- OpenCLIP - Reproducible scaling laws for contrastive language-image learning
- EVA-CLIP: Improved Training Techniques for CLIP at Scale
- EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
- CogAgent: A Visual Language Model for GUI Agents
- CogVLM: Visual Expert for Pretrained Language Models
- Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models
提示视觉图像的分辨率,可以提升视觉编码器的效果,例如 CogAgent 使用 双编码器(Dual-Encoder) 机制,其中两个编码器分别处理高分辨率和低分辨率的图像。同时,分块(Patch-Division) 方法,将高分辨率图像切割成分块,并且,重用低分辨率编码器,也提升视觉编码器的效果,参考 Monkey。
CLIP:使用标准的图像模型,联合训练图像特征提取器,和线性分类器,来预测特定的标签,而且 CLIP 联合训练图像编码器和文本编码器,预测一批 (Batch) 图像和文本训练样本的正确配对。在测试时,学习到的文本编码器,通过嵌入目标数据集类别的名称或描述,合成零样本 (Zero-Shot) 线性分类器。对比 (Contrastive) 预训练,N 个样本一起训练,使用对角线标签进行训练。CLIP 的实验也表明,ViT 的效果要优于 ResNet。
即:
HuggingFace 的 CLIP 地址:https://huggingface.co/docs/transformers/en/model_doc/clip
CLIP 评估最优的视觉预训练模型是 ViT,即:
OpenCLIP:验证 Scaling Laws,研究使用完全开源的训练代码和数据的大型 CLIP 模型的扩展行为,研究中的所有模型都将提供,包括最大的公共 CLIP 模型。这个表格显示在224像素分辨率下的 零样本(Zero-Shot) 性能,展示在 ImageNet 上的准确度,35个 VTAB+ 数据集上的平均准确度,以及在 MS-COCO 图像检索上的 5 个召回率。数据集由 WIT-400M 扩大至 LAION-2B,数据量提升 5 倍,即:
EVA CLIP:也是验证 Scaling Laws,名称 Explore the limits of Visual representation at scAle using only publicly accessible data,使用仅可公开访问的数据,探索视觉表示在大规模的极限。
CogAgent 架构,即包括 2 个图像编码器,高分辨率(High-Resolution) 图像编码器是轻量化,低分辨率(Low-Resolution) 图像编码器,两个编码器进行 交叉注意力(Cross Attention) 实现信息交互,即:
CogVLM 使用 视觉特征和文本特征 拼接(Concat) 的方式,在多模态模型中,将视觉理解放在更优先的位置,即:
Monkey: 通过从原始图像捕获全局特征,和从分割的小块中捕获局部特征,来实现高分辨率。所有小块都通过共享的静态 ViT 编码器进行处理,例如,具有 20 亿参数的 ViT-BigG,即:
2. 预训练的大语言模型 (Pre-trained LLM)
通过在网络语料库上的大量预训练,LLM 已经嵌入丰富的 世界知识 (World Knowledge),并且,展现出强大的泛化和推理能力。
常用的大语言模型,例如 T5、LLaMA、Vicuna、LLaMA-2、Qwen,目前还包括 LLaMA-3,Casual Decoder 生成能力比较强,Encoder-Decoder 总结能力比较强,即:
中文大模型,推荐 Qwen 系列,较好的支持中文。
相关论文:
- BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation, 2022-2-15
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models, 2023-6-30
- An Empirical Study of Scaling Instruct-Tuned Large Multimodal Models, 2023-9-18
BLIP-2 : 通过两阶段策略,预训练轻量级的 查询转换器(Querying Transformer, Q-Former),以弥补模态之间的差距。
- 第一阶段,从冻结的图像编码器中,引导视觉-语言表示学习。
- 第二阶段,从冻结的 大语言模型(LLM) 中,引导视觉到语言的生成学习,这使得可以实现零样本指导的图像到文本生成。
即:
BLIP-2 中的 Q-Former 模态桥接方式: Q-Former 和 BLIP-2 的第一阶段,视觉-语言表示学习目标的模型架构。共同优化 3 个目标,这些目标,强制 查询特征 (即可学习的嵌入),提取与文本最相关的视觉表示。每个目标的自注意力 Mask 策略,以控制查询-文本交互。
- Image-Text Matching (ITM),图像文本匹配,双向自注意力 Mask (Bi-directional Self-Attention Mask)
- Image-Text Contrastive Learning (ITC),图像文本对比学习,Uni-model Self-Attention Mask (单模态自注意 Mask)
- Image-grounded Text Generation (ITG),图像定位文本生成,Multi-model Causal Self-Attention Mask (多模态因果自注意 Mask)
即:
BLIP-2 的第二阶段,视觉到语言的生成预训练,该阶段从冻结的 大语言模型(LLM) 中引导启动。 全连接层从 Q-Former 的输出维度,适应到所选 LLM 的输入维度。
- 引导启动基于解码器的 LLM,例如 GPT 系列。
- 引导启动基于编码器-解码器的 LLM,例如 FlanT5。
即:
Scaling Law for Instruct-Tuned: 多模态任务微调,对于一些语言任务也有提升,参考 LLaMA-2-70B 与 LLaVA-70B,即:
3. 模态接口 (Modality Interface)
模态接口主要包括 Token 层面的融合 (Token-Level Fusion ) 和 特征层面的融合 (Feature-Level Fusion):
- Token 层面的融合,参考 LLaVA 的 MLP 层连接,
- Feature 层面的融合,参考 BLIP2 的 Q-Former,可学习的参数。
以 Qwen-VL 的参数量为例,Interface 是 1% (0.08B),模态 Encoder 是 19.8% (1.9B),LLM 是 80.2% (7.7B),合计 9.7 B。
以 CogVLM2 的参数量 (19B) 为例,模态 Encoder 是 EVA-CLIP-E 5B,LLM 是 LLaMA3 8B,Interface (MLP Adapter) 是 6B。
再就是 专家模型 (Expert Model),例如 通过 Image Caption 模型,提取图像信息,再直接传给 LLM,好处是不需要任何训练,效果比多模态训练的效果要差一些。如果模型处理视频而不是图像,还需要考虑 时空(Spatial-Temporal) 信息。
参考 Paper:
- CogVLM2: Visual Language Models for Image and Video Understanding,2024-8-29
- Img2LLM: From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models,2023-5-8
- VideoChat: Chat-Centric Video Understanding,2024-6-4
CogVLM2: 模型接收高分辨率图像,或从给定视频中提取的帧,使用预训练的 ViT 编码器,和适配器嵌入视觉信息,嵌入的视觉特征,被发送到视觉语言解码器,CogVLM2-Video 能够回答与图像和视频相关的查询。即:
不同参数量的 CogVLM2 模型,如下:
Img2LLM: 使 大语言模型(LLM) 能够执行,视觉问答(VQA) 任务的方法,说明性比较,其中蓝色块表示内部参数被冻结,而粉色块表示内部参数是可训练的。
- Multi-modal Pretraining,多模态预训练
- In-context Few-shot Learning,上下文少样本学习
- Img2LLM: 输出 Caption Prompt 与 Exemplar Prompt (范例提示),再由 LLM 做出回答。
即:
Img2LLM 网络架构:Img2LLM 属于 即插即用(plug-and-play) 模块,使得现成的 大语言模型(LLM) 能够执行 零样本视觉问答(Zero-Shot VQA),可以利用 视觉-语言模型(例如 BLIP) 和 问题生成模型,将图像内容转换成 合成问题-答案(QA) 对,这些 QA 对作为提示的一部分输入给 LLM。这些示例 QA对通过口头描述图像内容,解决 模态断连(Modality Disconnect) 问题。即:
VideoChat:VideoChat-Text 将视频流中的内容 文本化(Textualizes),VideoChat-Embed 将视频编码为嵌入向量。这两种视频内容都可以作为输入,提供给 大语言模型(LLM),以实现多模态理解。即:
VideoChat-Embed 架构和训练范式,建立在 BLIP-2 和 StableVicuna 之上,训练包括两阶段对齐和指令调整。即: