构建多模态大模型trick探究及六大结论

大模型向量数据库云通信

多模态主要结构有三部分:

picture.image

Idefics2的全自回归架构

  • Vision Backbone:负责处理图像输入,通常是预训练的Vision Transformer(如CLIP-ViT、SigLIP、EVA-CLIP等)。
  • Language Backbone:负责处理文本输入,通常是预训练的大语言模型
  • Connector Modules:为了将视觉和语言模态连接起来,需要引入新的参数模块,称为:
  • Modality Projection Layers(模态投影层):将视觉编码器的输出(图像特征)映射到语言模型的输入空间(文本嵌入空间)。
  • Pooling(池化):为了减少视觉token数量,提高效率,可以使用如Perceiver Resampler等机制对视觉特征进行压缩。

VLM的关键设计探究

1、视觉/语言主干是否同等重要?

  • 固定:训练数据量、训练步数、模型大小
  • 变量:语言模型:LLaMA-1-7B vs Mistral-7B;视觉编码器:CLIP-ViT-H vs EVA-CLIP-5B vs SigLIP-SO400M

picture.image

picture.image

结论:在参数数量相同的前提下,语言模型的质量对最终VLM性能的影响比视觉编码器更大。

2、哪种架构更好?Cross-attention vs Fully autoregressive

两种架构:

  • Cross-attention(CA):在LLM中插入cross-attention层
  • Fully autoregressive(FA):将视觉token拼接到文本token前

变量:

  • 是否冻结主干(Frozen vs LoRA)
  • 是否训练视觉/语言主干参数

picture.image

结论:

  • 当主干冻结时,cross-attention更好;但当使用LoRA微调主干时,fully autoregressive架构性能反超
  • Fully autoregressive架构在解冻主干时容易训练发散,LoRA能有效稳定训练并提升性能

3、如何提高效率?

3.1、减少视觉token数量是否可行?

实验设计:(1)使用Perceiver Resampler(可学习的Transformer池化器)将图像token从729压缩到更少。(2)测试不同压缩数量:128 vs 64

picture.image

结论:将token从729压缩到64,不仅不损失性能,反而提升了效率和效果。

3.2、是否必须将图像resize成正方形?

实验设计对比:(1)强制resize为768×768正方形;(2)保持原图长宽比,最小边378,最大边768

picture.image

结论:保持原图长宽比和分辨率不会明显降低性能,但能节省显存、加快训练/推理速度

4、能否用更多计算换性能?

实验设计:图像切分:在训练时将每张图像切分为4个子图 + 原图 = 5张图,每张图仍送入模型 → 总token数从64 → 320,仅在指令微调阶段使用此策略。

picture.image

结论:在训练阶段使用图像切分(image splitting)可以显著提升需要高分辨率视觉输入的任务(如OCR、文档理解)性能,且只需在50%样本上使用即可

总览:

| 发现 | 总结 | | --- | --- | | 1 | LLM质量 > Vision Encoder质量 | | 2 | 冻结主干时CA更好;LoRA微调时FA反超 | | 3 | FA架构需LoRA防止训练发散 | | 4 | Perceiver池化压缩token数,提升效率与性能 | | 5 | 保留原图比例不损性能,节省显存 | | 6 | 图像切分策略可“用计算换性能”,适用于OCR任务 |

参考文献:What matters when building vision-language models?,https://arxiv.org/pdf/2405.02246

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论