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-hf
。OUTPUT_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_NAME
是checkpoints
下保存预训练检查点的所需文件夹名称。我们为此阶段提供的脚本在 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%免费
】