【大模型系列】mPLUG-Owl3(2024.08)
- Paper: https://arxiv.org/pdf/2408.04840
- Github: https://github.com/X-PLUG/mPLUG-Owl
- HuggingFace:https://huggingface.co/mPLUG/mPLUG-Owl3-7B-240728
- Author: Jiabo Ye et al. 阿里巴巴
文章目录
- 0 总结(省流版)
- 1 模型结构
- 1.1 Cross-attention Based Achitecture
- 1.2 HATB(Hyper Attention Transformer Block)
- 2 训练细节
- 2.1 数据处理
- 3 指标
- 3.1 图文理解指标
- 3.2 视频理解指标
- 4 Distractor Resistance Benchmark
- 5 总结
0 总结(省流版)
- 增强了处理长图片序列的能力
- 提出了一种hyper attention blocks,有效地将视觉和余元集中到一个共同的由语言引导的语义空间
- 提出了一个长视觉序列评估基准:Distractor Resistance
核心创新点:visual feature不直接作为LLM的输入,而是在LLM中间几层参与计算,再与文本特征融合到一起,因此不会因为输入的图片多而导致超出LLM的最大输入限制。
1 模型结构
- Visual encoder: Siglip-400m
- LLM: Qwen2
1.1 Cross-attention Based Achitecture
当前流行的MLLM模型(如LLaVA-Interleave,InternVL)通常将visual features直接插入embedding序列,与文本一起作为LLM输入,这种方式有2个问题:
- 当处理多图、视频等长视觉序列时,很容超过LLM的最大输入序列长度
- 视觉特征在经过LLM时,会损失视觉细节
mPLUG-Owl3的解决方案: 使用cross-attention将visual information送入LLM中。具体做法如下:
- 给定一个交错的多模态序列 S = [ T _ 1 , I _ 1 , T _ 2 , I _ 2 , . . . , T _ n , I _ n ] S = [T\_1, I\_1, T\_2, I\_2, ...,T\_n, I\_n] S=[T_1,I_1,T_2,I_2,...,T_n,I_n],其中T表示文本,I表示图像
- 先提取图像的视觉特征,并通过projector层与LLM的输入对齐,得到图像特征 H _ i m g H\_{img} H_img
- 文本序列经过word embedding得到text feature H t e x t H_{text} Htext
- 使用cross-attention融合 H i m g H_{img} Himg和LLM中不同层的文本特征 H t e x t i H_{text}^i Htexti(这就是文章中提出的:Hyper Attention Transformer Block,HATB,减少额外训的参数来,并提高训练效率;Qwen2中选择[0, 9, 17, 25]层插入HATB)
1.2 HATB(Hyper Attention Transformer Block)
传统的Flamingo Transformer Block存在的3个问题:
- 引入了大量额外的参数
- LLM学到的知识不能增强对于视觉输入的理解
- 交叉注意力没有完全考虑到图像在交错序列中的原始位置,限制了其在多图场景上的性能
HATB的结构:
- Shared Input Layernorm:共享输入的Layer Norm,虽然视觉和文本的特征来自不同的分布,但是实验证明直接使用集成在transormer block中的LN可以更好的收敛。这归功于LN输出的均值和方差与LLM输出的分布兼容(有点牵强)
- Modality-Specific Key-Value Projection:图像特征的query与self-atten共享,k-v由独立的隐射层产生
- Visual Position Modeling in Attention:开发了MI-Rope(Multimodal-Interleaved Rotary Position Embedding),对于图片n的视觉特征 I n I_n In,预先记录其在交错序列中的位置,然后计算其旋转编码Rope,这不仅能反映图片在序列中的位置关系,也能反映其在文本上下文中的位置。同时在cross-atten中使用causal attention mask
- Adaptive Gating:一个融合机制,融合cross-attn输出的图像特征和self-attn输出的文本特征,其具体做法是将图像特征送入一个全连接层,并对输出结果取sigmoid得到权重,再用这个权重来加权图像和文本特征:
g = S i g m o i d ( W g a t e T H i m g ) H f u s e d i = H i m g ∗ g + H t e x t i ∗ ( 1 − g ) g = Sigmoid(W_{gate}^T {H}^{img}) \\ H_{fused}^i = {H}_{img} * g + H_{text}^i * (1 - g) g=Sigmoid(WgateTHimg)Hfusedi=Himg∗g+Htexti∗(1−g)
核心点:visual feature不直接作为LLM的输入,而是在LLM中间几层参与计算,再与文本特征融合到一起,因此不会因为输入的图片多而导致超出LLM的最大输入限制。
2 训练细节
- Stage1: 多模态对齐训练,image-text pairs,冻结Visual encoder和LLM
- Stage2: 多图理解训练,image/video caption,冻结Visual encoder
- Stage3: 微调,混合单图、多图、视频数据,冻结Visual encoder
2.1 数据处理
- 高分辨率图像:
- 自适应裁剪,裁剪网格为 (2,2), (1,3), (1,4), (3,1), (4,1), (2,3), 和 (3,2)
- 保留全图
- 文本丰富的图片:100%裁剪
- 单图无文本:20%裁剪
- 多图和视频:不裁剪
- 视频处理:默认采样8帧,占位符为<|image|>,采样多少帧就多少个,这样可以与单图、多图的训练统
3 指标
3.1 图文理解指标
MMB-EN,MMB-CN,AI2D,MM-Vet指标均低于同量级的Qwen2vl-7B
3.2 视频理解指标
VideoQA测试时,mPLUG-Owl3抽帧128(V100-32G最大内存)
MVBench,VideoMME均低于同量级的Qwen2vl-7B。
4 Distractor Resistance Benchmark
用于评估多模态模型在长视觉context中的干扰抵抗能力,数据采样自MMBench。每个测试样本构成如下:
- 随机从MMBench-dev中采样N张图片作为干扰项
- 构建输入,其格式为Image 1: <|image|> Image 2: <|image|> … Image N: <|image|>. In Image X, {question},其中Image X表示与问题相关图片的索引,N取1, 5, 10, 20, 50, 100, 200, 400。
- 使用CircularEval来计算准确率分数
对于每个问题构造不同的测试样本:不同顺序的选项和多样化的干扰图片。干扰图片越多,其挑战越大。
实验结果证明mPLUG-Owl3具有比较强的抗干扰性。
5 总结
- mPLUG-Owl指标层面一般,与Qwen2VL-7B还有一定的差距
- 不过HATB的思路比较有趣,限制图片(视频帧)处理数量的瓶颈由之前的LLM的最大输入长度变成了GPU显存