教你如何训练多模态理解模型

出发点:最近因为工作的需要,在研究多模态理解模型,看了最近一两年比较火的一些论文,感觉Nvidia的VILA工作可以作为比较好的多模态理解模型训练教程,也在这里介绍给大家。

多模态理解模型:也叫Large Vision-Language Model

VILA: On Pre-training for Visual Language Models VILA: On Pre-training for Visual Language Models

背景

多模态理解模型的基本定义:最近几年,随着LLM的兴起,学术界和工业界提出了一些结合LLM进行多模态理解的方法,其基本形态为:

  • 输入模态:文本、图片、视频等多模态数据。
  • 输出模态:根据多模态输入的文本理解结果。
  • 基本模型结构:输入的文本和LLM的输入文本类似,都是转换为文本token再输入到LLM中。但输入的图片和视频数据需要经过对应的多模态encoder得到embedding信息,然后经过connector将多模态embedding转换为LLM的token输入到LLM中。LLM对输入的文本token、图片和视频token进行理解,然后输出理解的文本结果。

基本的模型结构如下图所示:

图片VILA中的多模态模型结构:图片经过ViT的encoder得到embedding,然后经过projector获得对应visual token,和textual token一起输入到LLM中进行理解,最终获得文本理解结果。

为什么说VILA是一个比较好的多模态理解训练教程? 从最近两年的多模态理解模型论文中可以看到,虽然很多论文都描述了数据构成、模型结构、训练方法和训练资源,但缺少对各种训练可能性的严谨对比。例如是否需要用多模态数据对LLM进行训练,对LLM训练的方法应该是什么方法,不同方法之间效果的区别如何?对于这些问题,VILA进行了相对全面的对比和阐述。

以下开始基于VILA介绍如何训练一个多模态理解模型。

模型结构选型:

基本的多模态理解模型包括三个部分:

  • Visual Encoder:将输入的图片、视频数据转换为visual embedding。
  • Connector:将Visual Encoder输出的visual embedding转换为visual token,进一步输入到LLM中。
  • LLM:输入textual token和visual token进行理解,输出理解的文本结果。

多模态理解的模型结构选项涉及三个部分的选型。以下分别基本VILA介绍三个部分的选型。

1. Visual Encoder

Visual Encoder的选型一般选择基于开源的visual encoder,主要涉及两个方面:具体的image encoder,以及对应的输入图片分辨率和特征等操作方法。

在VILA以及之前的一系列多模态理解论文中,Visual Encoder大都选择了ViT结构的预训练CLIP模型。

对于输入图片分辨率,VILA进行了进一步的探索和对比。两种可能性:

  • • 一般基于ViT的visual encoder采用了224 * 224的图片分辨率,在patch14的设定下,一个224 * 224对应(224/14) * (224/14) = 256个visual tokens。
  • • 另一种选择是基于更高分辨率,例如336 * 336,在patch14的情况下,对应 (336/14) * (336/14) = 576个visual tokens。

更高的分辨率可以带来更好的图片细节,帮助模型更好的理解输入图片,但也会带来更长的token序列,进而增加建模难度。

对于更长token序列的问题,VILA提出了拼接相邻的4个token,然后用一个linear layer来fuse这4个token,即拼接+linear layer映射将4个token合并成1个token,因此336 * 336的token个数从576降为了144,比原始的224 * 224的256 tokens还要少。

VILA对比了不同配置的效果:

图片对于分辨率比较敏感的TextVQA任务上,224224分辨率对应41.6%的准确率,提高分辨率到336336可以直接获得49.8%的准确率,但token个数会增加一倍以上。采用拼接+映射的下采样方法,可以将token个数大幅度降低,同时也在一定程度上保持了准确率效果(45.6%)。

对于分辨率敏感的TextVQA任务,提高图片分辨率可以带来显著的准确率提升;但对于更依赖语义信息的OKVQA和COCO等任务上,提高图片分辨率并不能带来准确率的显著变化。

2. Connector

Connector的选型一般有3种可能:Linear layer、MLP以及Qformer等比较复杂的模型结构。

从最近的多模态理解论文趋势来看,Connector有越来越简单的趋势,即逐渐向着Linear layer和MLP收敛。

在VILA中,对比了Linear layer和transformer的效果,如下图的©和(d)所示:

图片对比©和(d),Connector(即表中的Projector)采用Linear时的效果略好于采用Transformer。

在VILA中,对于Linear的效果好于Transformer的解释为:采用简单的Linear映射,会迫使LLM在训练过程中更好的理解Visual Encoder的输出。

但跳出来看Connector的选型,这里其实遗留了一些问题:

  • • Linear VS. MLP
  • • 同样配置下Linear VS. Qformer等不同结果,以及Qformer中不同个数的query效果。

3. LLM

LLM一般采用开源的LLM,但LLM的选型对应着3个问题:

  • • 选择哪一种开源的LLM可以获得更好的效果?
  • • 当前的多模态理解模型结构,对不同的LLM是否都能获得足够好的效果?
  • • 不同大小的LLM对多模态理解模型而言意味着什么?

在VILA中,可能是因为资源的限制,并没有对问题1中的不同LLM进行充分的横向对比。但对于问题2和问题3都做了一定的探索和对比。

图片基于LLaMA2 7B和Vicuna 7B的多模态理解效果

对于问题2,如上图所示的LLaMA2 7B和Vicuna 7B,通过VILA的多模态训练方法,都可以获得一定的多模态理解效果。

对于问题3,除了更大的LLM可以带来更好的理解能力外,VILA还对比了在text only情况下的LLM能力下降问题。在一般的多模态理解模型中,核心目的是为了获得多模态理解能力,所以一般不会对比在text only情况下的理解能力下降问题,即LLM能力下降问题。在VILA中,发现了采用多模态数据训练LLM时,会直接导致LLM在text only情况下的能力下降(下文会具体介绍,以及保持理解能力的训练方法),但是越小的LLM能力下降越严重,越大的LLM受到的影响越小。如下图所示:

图片在MMLU等text only的LLM任务上,经过多模态数据训练后:7B VILA比7B LLaMA2 + SFT效果略差,而13B VILA超过了其他13 B的LLM模型。

训练方法

VILA展示了基本的多模态模型训练方法:如下图所示

图片

  • • Connector初始化,一般是固定visual encoder和LLM,来训练connector参数。
  • • Visual language预训练,采用多模态数据来训练多模态模型参数,和LLM预训练类似。
  • • Visual instruction tuning,采用多模态的instruction数据,来finetune多模态模型参数。

涉及两个需要回答的问题:是否需要训练visual encoder和LLM参数,以及LoRA等微调方法是否足够,是否需要全参数的训练?

对于是否需要训练visual encoder,VILA中并没有进行具体的对比。但对于是否需要训练LLM以及LLM的具体训练方法,VILA都进行了严谨的对比,如下面两个图所示:

图片对比(a)和(b),在SFT阶段训练LLM,比固定LLM可以获得显著的提升。对比(b)和©,在预训练阶段训练LLM,0-shot不会显示出明显提升,但是4-shot情况下会有明显提升。

图片对比LLM全参数训练和LoRA训练,全参数训练的效果可以获得全面的提升。

因此,预训练和instruction tuning阶段都需要训练LLM参数,而且应该是全参数训练LLM训练,这样才能获得最好的效果。

数据构造

一般的多模态理解论文中只提到了大致的多模态理解数据来源,以及数据量信息。但对于不同多模态理解数据对于最终效果的影响,缺少深入的对比。在VILA中,对比了不同image-text数据对多模态理解效果的影响,也考虑了一定的补偿措施。

图片图文交替数据示例

image-text pair数据 VS. image text交替数据

图片COYO为image-text pair数据的多模态理解效果,MMC4为image text交替数据的多模态理解效果,MMC4-pairs为基于image text交替数据构造的image-text pair数据对应的多模态理解效果。VLM acc为多模态理解任务上的准确率,MMLU acc为LLM理解任务上的准确率。

对比上图的LLaMA2和COYO,经过image-text pair训练后,在LLM的MMLU任务上准确率下降明显。但是采用了MMC4的图文交替数据训练,一方面可以获得更好的多模态理解效果(VLM acc),另一方面在MMLU任务上下降的程度降低了很多(17.2% --> 5.3%)。为了区分是因为MMC4本身的数据造成的效果,还是因为图文交替数据造成的,VILA还基于MMC4构造了MMC4-pair数据,即将图文交替数据构造成image-text pair数据(图中的MMC4-pairs),在MMLU任务上还是有一定的下降。

多模态数据+text only数据进行SFT

图片上半部分为基于多模态数据进行instrucition tuning的效果,下半部分为基于多模态数据和text only数据进行instruction tuning的效果。

为了规避或者缓解多模态数据训练过程中对LLM的text only任务的影响,VILA结合了LLM的instruction finetune方式,在instruction tuning阶段结合了text only的instruciton tuning数据,显著缓解了在只有多模态数据进行instruction tuning时对MMLU任务的影响,同时也提高了在VLM多模态任务上的表现。

训练资源

VILA采用了8 A100 GPUs * 16 nodes = 128 A100 GPUs,7B模型训练总共用了5.1k GPU hours。

如果只有8个A100,那么就需要26.5天,在一定资源的情况也是可行的。

效果评估

图片

从VILA自己展示的效果图中,相对于LLaVA-1.5、Qwen-VL-Chat以及InstructBLIP等较好的多模态理解模型都获得了比较明显的提升。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值