大模型开源项目 | 多模态大模型VILA:强大的视频理解和多图理解能力

VILA 是一种视觉语言模型 (VLM),使用大规模交错图像文本数据进行预训练,可实现视频理解多图像理解功能。

VILA 可通过AWQ 4 位量化和TinyChat框架部署在边缘端。我们发现:

(1)图文对还不够,图文交错是必要的;

(2)在交错的图文预训练期间解冻LLM可以实现上下文学习;

(3)重新混合纯文本指令数据对于提升VLM和纯文本性能至关重要;

(4)令牌压缩扩展了#video 帧。

VILA 推出了更强大的功能,包括:视频推理、情境学习、视觉思维链和更好的世界知识

项目地址:https://github.com/NVlabs/VILA

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

一、引言

大语言模型(LLMs)已经展示了在自然语言任务中的卓越能力。通过增强LLMs以支持视觉输入,最终模型可以继承一些吸引人的属性,如指令遵循、零样本泛化以及少样本上下文学习(ICL),从而赋能各种视觉语言任务。

本文研究了视觉语言模型(VLM)的预训练过程,旨在通过逐步可控的比较来增强视觉语言模型的性能。具体来说,研究了在预训练过程中冻结大型语言模型(LLM)的影响,交错预训练数据的效果,以及在微调过程中重新混合纯文本指令数据的作用。

如何在预训练过程中有效地结合视觉和文本信息,如何在不影响纯文本任务的情况下进行视觉语言任务的训练,以及如何提高模型的零样本和上下文学习(ICL)能力。

该问题的研究相关工作包括对视觉语言模型的训练方法进行研究,特别是对图像-文本对的预训练和微调过程的研究。已有工作主要集中在通过监督微调(SFT)或人类反馈强化学习(RLHF)来改进视觉语言指令调优过程,但缺乏对预训练过程的深入研究。

图1 与最近的方法相比,VILA的增强视觉语言预训练在下游任务准确性上持续提高。

二、方法概述

VILA,一种新的视觉语言模型预训练方法,用于解决视觉语言模型在零样本和上下文学习方面的性能不足问题。具体来说,

冻结LLM 的预训练:首先,研究了在预训练过程中冻结LLM的效果。冻结LLM可以实现不错的零样本性能,但缺乏上下文学习能力。为了提高上下文学习能力,需要在预训练过程中更新LLM。

在这里插入图片描述

图2 研究了自回归视觉语言模型,其中图像被分词并输入到大型语言模型的(LLMs)中。我们发现更新LLMs对于上下文学习能力至关重要,而交错语料库有助于预训练。与仅文本数据联合的SFT有助于保持仅文本能力。

交错预训练数据: 其次,研究了交错预训练数据的效果。交错图像-文本数据比单独的图像-文本对更有利于预训练,因为它提供了更准确的梯度更新,并且能够保持纯文本能力。

图4 MMC4数据集的一个样本,包括交错图像和文本片段。图像放在相应文本之前。文本对图像的条件较弱:只有彩色文本才能借助图像更好地推断出来。

联合SFT: 最后,研究了在微调过程中重新混合纯文本指令数据的效果。重新混合纯文本指令数据不仅可以弥补纯文本任务的退化,还可以提高视觉语言任务的准确性。

三、实验细节

数据收集: 使用了MMC4和COYO两种图像-文本数据集进行预训练。MMC4数据集包含交错的图像和文本段,而COYO数据集则包含较短的文本描述。为了增加数据多样性,还使用了LLaVA-1.5的SFT数据进行联合微调。

实验设置: 实验分为三个阶段:投影仪初始化、视觉语言预训练和视觉指令微调。在预训练阶段,分别使用线性层和Transformer块作为投影仪。在微调阶段,将现有的视觉语言数据集转换为FLAN风格的数据,并加入1M的纯文本指令数据进行联合微调。

参数配置: 使用了Llama-2 7B和13B两种LLM模型进行实验。预训练数据总共包含约50M张图像。微调数据来自多个视觉语言数据集,包括VQA、DocVQA、GQA等。

四、实验结果分析

冻结LLM的预训练效果: 冻结LLM在预训练过程中可以实现不错的零样本性能,但在上下文学习能力方面表现较差。更新LLM后,模型的上下文学习能力显著提高。

表1. 关于是否训练大语言模型(**LLM**)或冻结LLM并在视觉语言预训练(PreT)期间仅进行提示调优的消融研究。有趣的是,在预训练期间冻结LLM并不会降低0次尝试的准确性,但会导致上下文学习能力变差(4次尝试更差)。使用一个简单的线性投影器迫使LLM学习更多内容,并导致更好的泛化能力。本文报告了VQA数据集(OKVQA、TextVQA)的准确性和CIDEr评分,用于摘要(COCO和Flickr)。注意:仅为了消融研究使用了不同的评估设置;在这种设置中的绝对值较低,不应与其他工作进行比较。

交错预训练数据的效果: 使用交错的图像-文本数据进行预训练比单独的图像-文本对更有效。交错数据提供了更准确的梯度更新,并且能够保持纯文本能力。

在这里插入图片描述

图7 VILA通过交错图像文本预训练而不是单一的图像-文本对,具有更好的上下文学习能力。输入两个图像+文本对和第三个图像作为上下文来提示VLM。LLaVA由于OCR 能力有限而未能通过第一个样本,并且通过重复第二个样本的语义而未能通过第三个示例。

联合SFT的效果: 在微调过程中重新混合纯文本指令数据不仅可以弥补纯文本任务的退化,还可以提高视觉语言任务的准确性。联合SFT使得模型在预训练时使用短文本时也能解锁全部的好处。

在这里插入图片描述

图8 该模型能够在给定视觉输入的情况下进行连锁推理。当在提示中添加“一步步来思考”时,它能够生成正确的答案。

五、项目部署

1、安装基础环境

git clone https://github.com/NVlabs/VILA.git
./environment_setup.sh vila

2、训练

第 1 步:对齐

利用 LLaVA-CC3M-Pretrain-595K 数据集来对齐文本和视觉模式。

第一阶段脚本接受两个参数,它可以在单个 8xA100 节点上运行。BASE_MODEL_PATH指向在线或本地 Huggingface 存储库,例如NousResearch/Llama-2-7b-hfOUTPUT_NAME指向checkpoints下的目标目录,该目录将在之后保存经过训练的多模态投影仪。

bash scripts/v1_5/paper/1_mm_align.sh [BASE_MODEL_PATH] [OUTPUT_NAME]   
第 2 步:预训练

使用 MMC4 和 Coyo 数据集来训练具有交错图像文本对的 VLM。

bash scripts/v1_5/paper/2_pretrain_mmc4_coyo.sh [CODE_PATH] [BASE_MODEL_PATH] [STAGE1_PATH] [OUTPUT_NAME]   

第二阶段脚本包含四个参数。CODE_PATH是 VILA 代码库的绝对路径, BASE_MODEL_PATH与第一阶段脚本中的含义类似。STAGE1_PATH指向阶段 1 的OUTPUT_NAME (即存储阶段 1 检查点的位置)。OUTPUT_NAMEcheckpoints下保存预训练检查点的所需文件夹名称。我们为此阶段提供的脚本在 slurm 上执行,我们预计它在 16 个节点(128 个 GPU)上执行。

第 3 步:监督微调

这是 VILA 训练的最后阶段,我们调整模型以遵循 M3IT、FLAN 和 ShareGPT4V 子集上的多模式指令。该阶段在 8xA100 节点上运行。

bash scripts/v1_5/paper/3_sft.sh [STAGE2_PATH] [OUTPUT_NAME]   

3、推理

Llama-3-VILA1.5-8B 推论:

python -W ignore llava/eval/run_vila.py \
    --model-path Efficient-Large-Model/Llama-3-VILA1.5-8b-Fix \
    --conv-mode llama_3 \
    --query "<image>\n Please describe the traffic condition." \
    --image-file "av.png"

VILA1.5-40B推论:

python -W ignore llava/eval/run_vila.py \
    --model-path Efficient-Large-Model/VILA1.5-40b \
    --conv-mode hermes-2 \
    --query "<image>\n Please describe the traffic condition." \
    --image-file "av.png"

VILA1.5-3B视频推理:

python -W ignore llava/eval/run_vila.py \
    --model-path Efficient-Large-Model/VILA1.5-3b \
    --conv-mode vicuna_v1 \
    --query "<video>\n Please describe this video." \
    --video-file "demo.mp4"

六、提炼关键问题

问题1:在预训练过程中,为什么冻结大型语言模型(LLM)会导致上下文学习能力下降?

冻结LLM在预训练过程中可以实现不错的零样本性能,但缺乏上下文学习能力。这是因为LLM的深层嵌入对齐对于上下文学习至关重要。

当冻结LLM时,尽管其零样本性能不受影响,但在微调阶段进行上下文学习时,LLM无法适应新的视觉输入,导致上下文学习能力下降。具体来说,LLM的深层嵌入在预训练过程中需要与视觉输入进行对齐,以便在微调时能够更好地处理视觉任务。冻结LLM阻止了这一对齐过程,从而影响了其上下文学习能力。

问题2:交错预训练数据相比单独的图像-文本对在预训练中有哪些优势?

更准确的梯度更新: 交错预训练数据提供了更丰富的视觉和文本对,使得模型在预训练过程中能够获得更准确的梯度更新,从而更快地收敛。

保持纯文本能力: 交错数据结构允许模型在预训练过程中同时学习视觉和文本信息,而不会完全遗忘纯文本任务的能力。相比之下,单独的图像-文本对可能会导致模型在预训练过程中过度依赖视觉信息,从而遗忘纯文本任务。

更好的泛化能力: 由于交错数据提供了更多的上下文信息,模型在微调阶段能够更好地泛化到新的视觉语言任务上。

问题3:在微调过程中重新混合纯文本指令数据有哪些具体好处?

弥补纯文本任务的退化: 重新混合纯文本指令数据可以弥补在预训练过程中由于使用短文本而导致的纯文本任务退化。

提高视觉语言任务的准确性: 联合微调纯文本指令数据不仅能够恢复纯文本任务的性能,还能进一步提高视觉语言任务的准确性。这是因为纯文本指令数据提供了更强的指令跟随能力,这对于视觉语言任务非常重要。

解锁全部好处: 通过联合微调,模型在使用短文本进行预训练时也能解锁全部的好处,从而在零样本和上下文学习方面表现更好。


七、最后分享

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

### 不同开源视觉大模型的比较 #### OpenCV OpenCV 是一个广泛使用的计算机视觉库,旨在为计算机视觉应用提供通用基础设施并加速机器感知技术在商业产品中的应用。该库拥有超过2500个优化算法,涵盖了经典前沿的计算机视觉及机器学习算法[^1]。 #### AutoRT 数据集特性 AutoRT 的数据展示了更高的视觉样性,尤其是在更为样的环境下运行时表现尤为明显。具体来说,在5中展示的是对AutoRT视觉样性的可视化分析,表明远程操作(Teleop)数据的效果最好,因为这些数据远离先前的数据分布,具有更大的距离权重[^2]。 #### 深度强化学习框架下的视觉模型 深度强化学习近年来已经成功应用于个领域,包括但不限于电子游戏、棋类游戏以及连续控制等问题。在此背景下发展起来的一些视觉模型不仅依赖于深度神经网络的强大能力来处理像识别任务,还结合了强化学习的思想来进行决策制定。例如,某些工作提出了新的后继表示架构,减少了参数数量从而促进了大型动作空间内的模型收敛,并允许通过模仿学习预训练后再用RL进行微调的方式提高性能[^3]。 #### 预训练抓取模型的应用 对于特定用途机器人而言,预先训练好的抓取模型可以直接用于移动操纵场景下开放词汇表范围内的物体抓取任务,无需额外训练或调整即可实现即插即用的功能扩展。这类预训练模型通常是在大量数据基础上构建而成,具备良好的泛化能力适应性[^4]。 综上所述,不同类型的开源视觉大模型各有侧重:有的专注于基础功能的支持服务;有的则强调环境交互过程中的自适应性灵活性;还有些则是为了满足特定应用场景的需求而设计开发出来的专用工具包。选择合适的模型取决于具体的项目需求技术背景考量因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值