发表于2025年3月6日
英伟达团队
摘要
近年来,视觉语言模型(VLMs)在准确性方面取得了显著进展。然而,其效率却较少受到关注。本文介绍了NVILA,这是一系列旨在优化效率和准确性的开源视觉语言模型。在VILA的基础上,我们通过先提高空间和时间分辨率,然后压缩视觉令牌来改进其模型架构。这种 “先缩放后压缩” 的方法使NVILA能够高效处理高分辨率图像和长视频。我们还进行了系统研究,以在NVILA从训练到部署的整个生命周期中提高其效率。在广泛的图像和视频基准测试中,NVILA的准确性与许多领先的开源和专有视觉语言模型相当,甚至超越它们。同时,它将训练成本降低了1.9 - 5.1倍,预填充延迟降低了1.6 - 2.2倍,解码延迟降低了1.2 - 2.8倍。我们提供了代码和模型,以促进可重复性研究。
https://github.com/NVlabs/VILA/
https://huggingface.co/collections/Efficient-Large-Model/nvila-674f8163543890b35a91b428
1 引言
视觉语言模型(VLMs)在处理和整合视觉与文本信息方面展现出了卓越的能力,实现了先进的视觉 - 语言交互和对话。近年来,研究界在提高其准确性[1, 2, 3, 4, 5]以及拓展其在机器人[6, 7, 8]、自动驾驶[9]和医疗应用[10, 11]等不同领域的应用方面取得了巨大进展。然而,提高其效率却较少受到关注。
视觉语言模型在多个方面成本高昂。首先,训练一个视觉语言模型非常耗时。例如,训练一个最先进的70亿参数视觉语言模型[4]可能需要长达400个GPU天的时间,更不用说更大的模型了。这给研究人员设置了巨大的进入门槛。其次,视觉语言模型在应用于特定领域(如医学成像)时通常需要进行适配,但微调一个视觉语言模型需要大量内存。例如,完全微调一个70亿参数的视觉语言模型可能需要超过64GB的GPU内存,远远超出了大多数消费级GPU的可用内存。最后,视觉语言模型常常部署在计算资源有限的边缘应用(如笔记本电脑、机器人)中,因此部署视觉语言模型存在资源限制。解决这些挑战需要一个系统的解决方案,以在所有这些方面提高视觉语言模型的效率。
在本文中,我们介绍了NVILA,这是一系列开源视觉语言模型,旨在优化效率和准确性。在VILA [2]的基础上,我们通过先提高空间和时间分辨率,然后压缩视觉令牌来改进其模型架构。“缩放” 保留了视觉输入中的更多细节,提高了准确性上限,而 “压缩” 将视觉信息压缩到更少的令牌中,提高了计算效率。这种 “先缩放后压缩” 的策略使NVILA能够高效且有效地处理高分辨率图像和长视频。此外,我们进行了系统研究,以优化NVILA在其整个生命周期(包括训练、微调、部署)中的效率。
得益于这些创新,NVILA既高效又准确。它将训练成本降低了1.9 - 5.1倍,预填充延迟降低了1.6 - 2.2倍,解码延迟降低了1.2 - 2.8倍。在广泛的图像和视频基准测试中,它的准确性与领先的开源视觉语言模型[5, 3, 2]和专有视觉语言模型[12, 13]相当,甚至超越它们。此外,NVILA还实现了包括时间定位、机器人导航和医学成像等新功能。我们发布了代码和模型以支持完全可重复性研究。我们希望我们的工作将激发对高效视觉语言模型的进一步研究。
图1 NVILA -高效前沿VLM。(a)NVILA训练图像和视频模型的速度分别比LLaVA-OneVision(OV)快5.1倍和1.9倍,后者是唯一公开披露训练成本的基准模型。(b)与Qwen 2-VL相比,NVILA在预填充阶段实现了1.6-2.2倍的测量加速比,在解码阶段实现了1.2-2.8倍的加速比。(c)NVILA的效率是在不影响精度的情况下实现的;事实上,它在图像和视频基准测试中提供了相当甚至上级的精度。本表中的所有型号均具有8B参数。(a)中的训练时间是使用NVIDIA H100 GPU测量的,而(B)中的推理速度是使用单个NVIDIA GeForce RTX 4090 GPU测量的。(c)中的准确性数字相对于每个基准的最高分数进行归一化。
2 方法
在本节中,我们首先为NVILA设计一个高效的模型架构,先提高空间和时间分辨率,然后压缩视觉令牌。接下来,我们介绍在NVILA从训练、微调到部署的整个生命周期中提高其效率的策略。除非另有说明,本节中的所有分析都将基于80亿参数的模型。
图2 定性例子
2.1 高效的模型架构
我们在VILA[2]的基础上构建NVILA。如图3所示,它是一个自回归视觉语言模型,由三个组件组成:一个从视觉输入(如图像、视频)中提取特征的视觉编码器;一个对齐视觉和语言模态嵌入的投影仪;以及一个通常由大语言模型实例化的令牌处理器,它将视觉和语言令牌作为输入,并输出语言令牌。具体来说,NVILA使用SigLIP[14]作为其视觉编码器,一个两层多层感知器作为其投影仪,并使用不同大小的Qwen2[15]作为其令牌处理器。
原始的VILA在空间和时间分辨率上非常有限:即,无论原始图像的大小或宽高比如何,它都会将所有图像调整为448×448,并从视频中最多采样14帧∗。空间调整大小和时间采样都会引入大量信息损失,限制了模型有效处理更大图像和更长视频的能力。这也可以在表8和表9中观察到,VILA在领先的视觉语言模型中表现滞后,特别是在文本密集型和长视频基准测试中。
在本文中,我们倡导 “先缩放后压缩” 的范式,即我们首先提高空间/时间分辨率以提高准确性,然后压缩视觉令牌以提高效率。提高分辨率提高了性能上限,但仅这样做会显著增加计算成本。例如,将分辨率翻倍将使视觉令牌的数量翻倍,这将使训练和推理成本增加超过2倍,因为自注意力与令牌数量呈二次方关系。然后,我们可以通过压缩空间/时间令牌来降低这种成本。压缩后的视觉令牌具有更高的信息密度,使我们能够用更少的总令牌保留甚至改善空间和时间细节。
图3 模型体系结构。
2.1.1 空间 “先缩放后压缩”
对于空间缩放,直接提高视觉编码器的图像分辨率是很自然的,例如提高到896×896。虽然这可能会提高性能,但对所有图像应用统一的高分辨率效率较低,特别是对于不需要大量细节的较小图像。为了解决这个问题,我们应用\(S^{2}\)[16]通过图像分块来高效提取多尺度高分辨率特征。例如,给定一个在\(448^{2}\)分辨率下预训练的视觉编码器和任意大小的输入图像,\(S^{2}\)首先将图像调整为多个尺度(例如,\(448^{2}\),896²,\(1344^{2}\)),对于每个尺度,它将图像分割成\(448^{2}\)的图块。然后每个图块由编码器单独处理。来自同一尺度的每个图块的特征图被拼接回该尺度下整个图像的特征图。最后,不同尺度的特征图被插值到相同大小,并在通道维度上连接起来。
\(S^{2}\)总是将图像调整为正方形,而不考虑原始宽高比。这可能会导致失真,特别是对于高而窄或短而宽的图像。为了解决这个问题,我们提出了Dynamic-\(S^{2}\),它可以自适应地处理不同宽高比的图像。Dynamic \(S^{2}\)遵循\(S^{2}\)的方法,但在最大图像尺度上,它不是将图像调整为正方形,而是将图像尺寸调整为最接近的、保持原始宽高比且能被\(448^{2}\)图块整除的大小。这是受InternVL[17]中的动态分辨率策略启发。在处理完图块后,所有尺度的特征图被插值以匹配最大尺度的大小并连接起来。
表1|空间“先缩放后压缩”。使用Dynamic-S2提高空间分辨率可以极大提高模型的准确性,尤其是在文本密集的基准测试中。利用空间池技术压缩视觉标记,可以有效地减少图像块的数量和每个图像块的标记数,且精度损失较小。通过增加额外的视觉编码器预训练(VEP)阶段,可以进一步减少这种损失。在本表和下表中,“IM-10”是指表8中列出的10个基准测试的平均验证分数。
表2|时间“缩放然后压缩”。放大时间分辨率可以提高模型的视频理解性能。压缩的视觉令牌与时间平均可以有效地减少令牌的数量,只有一个边际精度下降。
配备了Dynamic-\(S^{2}\)后,模型受益于图像的高分辨率信息,在文本密集型基准测试中准确性提高了高达30%(表1)。然后,我们的目标转向压缩空间令牌。VILA[2]发现,应用简单的2×2空间到通道(STC)重塑可以在不牺牲准确性的情况下将令牌数量减少4倍。
然而,进一步推进这一操作会导致性能显著下降:例如,在DocQA任务中,当减少最小图块数量并将STC提高到3×3时,准确性下降了近10%。我们假设更激进的减少会使投影仪的训练变得更加困难。为了解决这个问题,我们引入了一个额外的视觉编码器预训练阶段,以联合调整视觉编码器和投影仪。这有助于恢复大部分因空间令牌减少而损失的准确性,在训练和推理中实现2.4倍的加速。
对于空间令牌压缩,有许多替代设计,如RT-1[6]中的TokenLearner和MiniCPM-V[18]中的Perceiver Resampler。然而,在相同的令牌减少率下,这些可学习的压缩方法出人意料地不如简单的空间到通道设计,即使增加了一个阶段1.5。我们认为这更多是一个优化问题,超出了本文的范围。
2.1.2 时间 “先缩放后压缩”
对于时间缩放,我们简单地增加从输入视频中均匀采样的帧数。遵循先前的方法[19],我们通过额外的视频监督微调(SFT)来训练模型,以扩展其处理更多帧的能力。从表9中可以看出,将帧数从8增加到32可以使模型在Video-MME任务上的准确性提高超过5%。然而,这也会使视觉令牌的数量增加4倍。
与空间令牌压缩类似,我们随后将减少这些视觉令牌。由于视频中存在固有的时间连续性,我们采用时间平均[20]进行压缩,它首先将帧划分为组,然后在每个组内对视觉令牌进行时间池化。这将减少时间冗余(因为连续的帧通常包含相似的信息),同时仍然保留重要的时空信息。根据经验,将视觉令牌压缩4倍会导致可接受的准确性下降。与具有相同令牌数量的原始基线相比,先缩放然后扩展的结果成本几乎相同,但†具有更高的准确性。我们还使用这种方法进一步扩展帧数和压缩比,在这个基准测试中得到了一个最先进的70亿参数模型(见表9)。
2.2 高效训练
虽然最先进的视觉语言模型具有令人印象深刻的能力,但训练这样一个视觉语言模型通常成本高昂且计算密集。本节探讨系统 - 算法协同设计,以实现高效的视觉语言模型训练。在算法方面,我们研究一种新颖的无监督数据集修剪方法,以简化训练数据。在系统层面,我们研究FP8混合精度以加速训练。
2.2.1 数据集修剪
为了提高模型准确性,先前的工作[21, 4, 22]不断从各种来源获取高质量的微调数据集,并在基准测试分数上显示出改进。然而,并非所有数据对模型的贡献都相同,数据集的持续增长导致了大量冗余。在NVILA中,我们遵循 “先缩放后压缩” 的概念,首先增加我们的微调数据集混合,然后尝试压缩数据集。然而,从各种来源选择高质量的示例具有挑战性。虽然已经有对视觉输入[23, 24, 25]和纯文本输入[26, 27, 28]的探索,但很少有研究解决视觉语言模型训练中这个问题,在训练过程中图像和文本是混合的。NVILA的训练涉及超过1亿数据,因此在保持准确性的同时修剪训练集是必要的。
受最近知识蒸馏工作[29]的启发,我们利用DeltaLoss对训练集进行评分:
\[D'=\bigcup_{i = 1}^{K} top - K\left\{\log \frac{p_{large }(x)}{p_{small }(x)} | x \in D_{i}\right\}, (1)\]
其中\(D_{i}\)是完整微调数据集的第\(i\)个子集,\(D'\)是修剪后的训练集。\(p_{large }(x)\)和\(p_{small }(x)\)是答案令牌上的输出概率。主要动机是过滤掉要么太容易要么太难的示例。具体来说,
- 如果大小模型都正确或都错误地回答,\(\log \frac{p_{large }(x)}{p_{small }(x)}\)接近0。
- 当小模型正确回答但大模型失败时,\(\log \frac{p_{large }(x)}{p_{small }(x)}\)为负,表明这些示例倾向于干扰学习,最终会被更强大的模型遗忘。
- 当小模型错误回答但大模型解决了问题时,\(\log \frac{p_{large }(x)}{p_{small }(x)}\)为正,表明这些示例提供了强大的监督,对小模型来说具有挑战性,但大模型可以学习。
因此,我们可以将DeltaLoss应用于每个子数据集,并以不同的比例修剪训练集。
为了评估数据修剪标准,我们在表3中比较了DeltaLoss和随机修剪基线。对于随机修剪,数据是随机选择的,我们运行结果三次并报告平均值。对于聚类修剪,我们应用具有sigmoid特征的k-means聚类,并在每个质心均匀修剪数据。我们的实验报告了10个基准测试的平均性能,重点关注关键任务以展示该方法的有效性。我们研究了三个修剪阈值10%、30%和50%,并注意到DeltaLoss始终优于随机基线,特别是在GQA和DocVQA任务中,随机修剪显示出显著的性能下降,而DeltaLoss保持准确。我们注意到50%是一个相对安全的阈值,平均分数保持竞争力,同时训练可以加速2倍。因此,我们在后续实验中将阈值设置为50%。
我们研究了数据修剪对新添加数据集的影响。我们将不同百分比的pixmo数据[30]纳入NVILA训练集。在表??中,我们观察到直接将pixmo数据与NVILA训练集合并会降低DocVQA和TextVQA基准测试的性能,同时仅提高MMMU分数。这表明激进地增加训练集大小实际上可能会损害性能。通过应用deltaloss修剪训练数据——过滤掉太容易或太难的示例——我们发现用修剪后的molmo数据集训练的模型在实验结果中显示出普遍的改进。
2.2.2 FP8训练
FP16[31]和BF16[32]是模型训练的标准精度,因为它们在不损失准确性的情况下提供加速,并且得到NVIDIA GPU的原生支持。随着NVIDIA Hopper和Blackwell架构的出现,新的GPU(如H100和B200)现在原生支持FP8,由于其在计算和内存效率方面的潜力,FP8已成为一种有前途的精度。
许多研究人员已经将FP8应用于大语言模型训练。NVIDIA的Transformer Engine以FP8精度执行矩阵乘法(GEMM),从而实现更快的训练速度。FP8-LM[33]在此基础上进一步将梯度、权重主副本和一阶动量量化为FP8,从而减少通信开销和内存占用。COAT[34]进一步压缩激活和优化器的二阶动量,以提高内存效率,同时保持准确性。
在本文中,我们借鉴COAT[34]的FP8实现来加速NVILA的训练。大语言模型和视觉语言模型训练工作负载之间的一个关键区别在于批次中序列长度的可变性。在大语言模型训练中,样本通常具有统一的长度,并且将批次大小增加到超过某个点对训练吞吐量的影响最小。然而,在视觉语言模型训练中,样本的长度可能有很大差异:视频样本可能需要数万个令牌,图像样本可能需要数百个,而纯文本样本需要的则少得多。因此,令牌较少的工作负载通常未得到充分利用,可以从增加批次大小中受益匪浅。如表4所示,对权重和激活都应用FP8使NVILA能够将批次大小从4增加到16,从而实现2倍的加速。当启用梯度检查点时,量化激活变得不那么重要。相反,我们集成了来自Liger[35]的交叉熵内核,以减少由于Qwen的大词汇量导致的峰值内存使用。在这种情况下,与BF16训练相比,FP8训练仍然可以提供1.2倍的加速。
表4| FP 8。FP 8在保持精度的同时加快了NVILA的训练速度,尤其是在梯度检查点(GC)未启用时。在该表中,吞吐量结果是在64个H100 GPU上使用最大可实现批量大小(BS)获得的。Video-MME结果来自8帧设置并具有字幕信息。
2.3 高效微调
一旦训练了基础视觉语言模型,就需要进行特定领域的微调,以使模型适应专门的任务或领域。虽然微调有效地提高了特定领域的词汇和概念,但传统的参数高效微调主要集中在大语言模型和文本相关任务上,如何最好地微调视觉语言模型仍有待探索。在NVILA中,我们发现(i)对于视觉Transformer(ViT)和大语言模型(LLM),学习率应设置不同;(ii)应根据不同的下游任务选择调整部分。
当使用参数高效微调方法(PEFT)同时微调视觉编码器(ViT)和大语言模型(LLM)时,我们观察到ViT部分的学习率应比LLM部分的学习率小5 - 50倍。另一方面,我们还观察到,使用层归一化(Layernorm)微调视觉编码器可以实现与低秩适应(LoRA)相当的性能(表5),同时计算效率更高:与对视觉编码器应用LoRA相比,它可以将训练时间减少25%。通过精心策划的配置设置,NVILA可以在24GB内存下快速微调以适应各种下游任务,并且性能相当。
表5 | fine-tuning。我们的建议是使用LoRA或QLoRA调整LLM,并使用小得多的学习速率调整ViT的层归一化(LN)层。这种设置可实现极具竞争力的精度,同时也是内存和计算效率最高的。所有实验均使用批量大小为1的测试,禁用梯度检查点,并在单个NVIDIA A100 80 GB GPU上测量吞吐量。对于{1,5,10,50}的设置,我们从该集合中选择可为每个基准提供最佳结果的学习率比率。“FT-5”指的是AITZ [36]、ALFRED [37]、nuScenes [38]、PathVQA [39]和微件标题[40]的平均准确度。
2.4 高效部署
视觉语言模型通常集成在计算资源紧张的边缘应用(如机器人)中。在本节中,我们将介绍我们的带有量化的推理引擎,以加速部署。
我们开发了一种带有量化技术的专用推理引擎,以高效部署NVILA。推理过程分为两个阶段:预填充和解码。在计算受限的预填充阶段,我们首先应用令牌压缩技术(第2.1节)来减少大语言模型骨干的推理工作量,此后视觉塔成为主要瓶颈,占预填充延迟的90%以上。
为了解决这个问题,我们对视觉塔实施W8A8量化,以减少NVILA在这个计算受限阶段的首次令牌生成时间(TTFT)。在内存受限的解码阶段,我们遵循AWQ [41] 对大语言模型骨干进行W4A16量化以加速。我们通过在W4A16 GEMM内核中引入FP16累加,进一步优化了原始的AWQ实现,在不影响精度的情况下,内核速度总共提升了1.7倍。我们在图5中附上了详细的对比。
3 实验
3.1 训练细节
我们遵循五阶段的流程来训练NVILA:(1)投影仪初始化;(2)视觉编码器预训练;(3)令牌处理器预训练;(4)图像指令调整;(5)视频指令调整。其中,阶段1、3和4也包含在VILA的训练中。额外的阶段2用于恢复由于空间令牌压缩导致的精度损失(如表1所示),额外的阶段5有助于扩展模型对长视频的理解能力。我们在表7中提供了详细的训练方法,在表A1中提供了数据方法。
我们的实现基于PyTorch 2.3.0 [42, 43] 和Transformers 4.46.0 [44]。我们使用DeepSpeed 0.9.5 [45] 在设备间分片大型模型,并使用梯度检查点来减少内存使用。我们采用FlashAttention-2 [46] 来加速大语言模型和视觉编码器的训练。我们还实现了功能保持的即时序列打包,以融合不同长度的样本,这带来了大约30%的加速。我们使用128个NVIDIA H100 GPU在所有阶段训练所有模型,全局批次大小为2048。所有优化都使用AdamW且不进行权重衰减。我们采用余弦退火学习率衰减调度,并在前3%的调度中进行线性热身。初始学习率在不同阶段有所不同,详见表7。
3.2 准确性结果
3.2.1 图像基准测试
如表8所示,我们在各种图像基准测试中进行了全面评估:AI2D [47]、ChartQA [48]、DocVQA [49]、InfographicVQA [50]、MathVista [51]、MMMU [52](带零样本思维链)、RealworldQA [53]、SEED-Bench [54]、TextVQA [55] 和VQAv2 [56]。
我们的NVILA在每个规模类别中与顶级开源模型表现相当,包括Qwen2-VL [5]、InternVL [3] 和Pixtral。对于一般的视觉问答任务(ChartQA、DocVQA、InfoVQA、TextVQA、VQAv2、Seed),NVILA-8B和NVILA-15B与专有模型(GPT-4o、Gemini)相比,取得了有竞争力甚至更好的结果。在与科学相关的基准测试(AI2D)中,NVILA-8B在开源模型中达到了最先进的性能。当扩展到150亿参数时,NVILA与专有模型相比表现出竞争力。
此外,在推理和知识基准测试(如MMMU、RealworldQA和MathVista)中,随着模型规模的增加,分数提升更为显著。对于需要光学字符识别(OCR)能力的基准测试(如TextVQA、AI2D、ChartQA、DocVQA、InfoVQA),80亿参数的模型也能表现出色。我们还在图??中展示了一些定性示例,以展示NVILA模型的OCR、推理和多图像能力。
3.2.2 视频基准测试
我们在一系列视频理解基准测试 [57, 58, 59, 60] 上评估了我们的模型,涵盖了从几秒的短视频到长达一小时的长视频。表9展示了NVILA与基线模型 [61, 62, 5, 4, 63, 19] 相比的性能。NVILA具有长上下文能力,可以处理多达256帧。通过先缩放后压缩的设计,NVILA-8B取得了令人瞩目的结果,在所有基准测试中都创造了新的最先进性能。值得注意的是,NVILA仅用80亿参数就达到了与GPT-4o mini相当的性能水平,并且优于许多更大的模型。
3.3 效率结果
NVILA通过“先缩放后压缩”在图像和视频基准测试中实现了有竞争力的性能,同时保持了高效性。在架构方面,我们最初将分辨率提高到原生分辨率(1 - 12倍更多的图块),然后将令牌压缩2.4倍,使用比以前的解决方案稍多的令牌实现了更高的准确性。在数据集方面,我们整理了一个多样化的1000万样本数据集,使用DeltaLoss进行压缩,并修剪为一个高质量的500万子集,始终优于在800万 + 数据上训练的LLaVA-OneVision。此外,我们集成FP8进行加速,优化微调的学习率,并使用W8A8格式提高延迟和吞吐量。这些全栈优化使NVILA能够在使用更少资源的情况下实现更好的性能、更低的内存使用和更快的推理。
我们将NVILA的推理性能与Qwen2-VL [5] 进行了比较,如图5所示。为了进行公平比较,两个模型都通过采样64帧来处理视频输入,所有实验都在单个NVIDIA RTX 4090 GPU上进行。Qwen2-VL被量化为W4A16,并使用vLLM [64](一种具有最先进推理速度的大语言模型/视觉语言模型服务引擎)进行部署。对于NVILA,我们将大语言模型骨干量化为W4A16,将视觉塔量化为W8A8。通过我们的专用推理引擎,NVILA在预填充阶段实现了高达2.2倍的加速,在解码吞吐量上比Qwen2-VL高出高达2.8倍。
4 更多能力
4.1 时间定位
遵循LITA,我们还在NVILA中添加了对时间定位的支持。我们添加离散时间令牌来指示视频中的时间戳,并使用平滑交叉熵损失来训练模型。从表10的结果中,我们可以清楚地看到,在所有指标上,NVILA都大幅优于所有基线模型。
4.2 机器人导航
NVILA可以作为视觉语言导航 [65] 中机器人智能体的强大基础,并支持在资源受限的边缘设备上进行实时部署。在每个时间步t,智能体接收语言指令和视频观察,规划下一个动作,并转移到下一个状态t + 1,在那里它接收新的观察。NVILA对多帧输入的高效灵活处理,使其能够将历史和当前观察无缝集成到视觉语言模型中。NaVILA框架 [8] 引入了定制的导航提示,并使用从模拟器 [66] 整理的导航特定的微调数据对NVILA进行微调。表11中的定量结果表明,NVILA的简单设计在VLN-CE任务上取得了最先进的结果。基于NVILA-8B的导航模型在单个笔记本电脑GPU上进行导航任务的实时部署的视觉结果,如图6所示。整个系统可以以1Hz的速度无缝运行端到端(相机→GPU→动作)的管道。
4.3 医疗应用
NVILA在医疗领域也具有变革性的潜力。这种集成有望在诊断准确性、临床决策和数据解释方面取得进展。NVILA-M3框架 [11] 引入了一种新颖的方法,通过集成多个针对特定医疗任务(如图像分割和分类)定制的领域专家模型。这些专家模型旨在提取和解释一般视觉语言模型难以辨别的复杂特征。通过将这些专用模型与视觉语言学习范式相结合,NVILA-M3实现了性能提升,有助于学习视觉输入与其文本注释之间的细微关系。这种集成不仅提高了特定任务的结果,还为在医疗保健领域开发更强大、更具上下文感知的视觉语言模型奠定了基础。NVILA-M3表明,通过使用专家模型,与现有的最先进模型相比,整体性能可以提高9%,在表12中可以观察到一些关键结果。这强调了利用领域专业知识弥合通用人工智能能力与特定应用需求之间差距的重要性,展示了视觉语言模型在精度和特异性至关重要的领域进行革命的潜力。
5 相关工作
5.1 视觉语言模型
在过去两年中,视觉语言模型,尤其是专有模型,发展迅速。例如,OpenAI已从GPT-4V [67] 升级到GPT-4o [12],在图像和视频问答基准测试中性能提升了5 - 10%。谷歌将Gemini Pro 1.5 [68] 的上下文长度扩展到100万,相比Gemini 1.0 [69] 有了显著改进。它现在在Video-MME排行榜 [60] 上的长视频理解任务中排名第一。Anthropic发布了Claude 3.5 [13],其基准测试分数优于GPT-4o,展示了相比Claude 3 [70] 的显著改进。其他专有模型也有类似的进展,如苹果从MM1升级到MM1.5 [71],以及xAI从Grok-1.5 [53] 升级到Grok-2 [72]。
与此同时,开源视觉语言模型也在不断发展,在系统/框架层面 [73] 和算法/方法层面 [2] 都有所改进,逐渐缩小了专有模型和开源模型之间的性能差距 [19, 74, 75, 76, 5]。这些最新进展使得许多开源视觉语言模型声称其性能水平与领先的专有模型(如GPT-4V和GPT-4o)相当,甚至超越它们。一些代表性的例子包括InternVL2 [3]、Qwen2-VL [5]、LLaVA-OneVision [4]、Llama 3.2 Vision [77]、Molmo [30]、NVLM [76] 和MiniCPM-V [18]。
尽管模型性能取得了显著进步,但这些模型在训练、推理和微调效率方面的提升却很少受到关注。本文旨在探索如何开发不仅高度准确,而且在端到端效率方面进行优化的视觉语言模型。
5.2 效率
先前的工作 [78, 79, 80, 62, 81, 82, 83, 84] 已经在空间和时间维度上探索了令牌减少技术。然而,没有一项工作专注于减少前沿视觉语言模型(VLM)的令牌数量。对于数据集修剪,已经提出了有前景的方法来选择大语言模型(LLM)的预训练数据,如领域混合 [85]、样本级数据选择 [27, 86] 和理论驱动的最优选择 [28]。在这项工作中,我们特别关注修剪视觉语言模型的监督微调(SFT)数据集。关于低精度训练,FP8训练 [87, 88] 在大语言模型中越来越受欢迎,但之前没有工作证明其在不牺牲准确性的情况下对视觉语言模型的可行性。剪枝、蒸馏和量化等技术通常应用于大语言模型。[89, 90] 将剪枝/蒸馏应用于大语言模型。然而,它们在视觉语言模型中的应用仍是一个开放问题:是在集成视觉编码器之前先对大语言模型进行剪枝或蒸馏,还是在训练后对视觉语言模型本身进行剪枝或蒸馏?同样,像AWQ [41] 和GPTQ [91] 这样的量化技术在大语言模型中已有详细记录,VILA [2] 已经表明AWQ可以直接应用于视觉语言模型。然而,对视觉编码器进行量化却很少受到关注,在处理更高分辨率的图像或视频时,由于计算需求的增加,这一点变得至关重要。像LoRA [92]、DoRA [93]、QLoRA [94] 和GaLoRA [95] 这样的参数高效微调方法被广泛用于大语言模型以减少内存需求。然而,对于结合了视觉编码器和大语言模型的视觉语言模型来说,高效的微调技术仍未得到充分探索。解决这一差距对于在有限计算资源下推进视觉语言模型的微调至关重要。
6 结论
本文介绍了NVILA,这是一系列开源视觉语言模型,旨在在效率和准确性之间取得最佳平衡。通过采用“先缩放后压缩”的范式,NVILA可以高效处理高分辨率图像和长视频,同时保持高精度。我们还在从训练到微调再到推理的整个生命周期中系统地优化了其效率。NVILA的性能与当前领先的视觉语言模型相当或超越它们,同时资源效率显著更高。此外,NVILA为时间定位、机器人导航和医学成像等应用开辟了新的可能性。我们很快将发布我们的模型。我们希望NVILA能够赋能研究人员和开发者在广泛的应用和研究领域中充分挖掘其潜力。