在人工智能的璀璨星空中,视觉语言模型(Vision Language Models, VLMs)无疑是一颗冉冉升起的新星。它们如同拥有了人类般的“慧眼”和“巧舌”,能够理解图像的万千气象,并用流畅的文字娓娓道来。然而,当这些模型试图洞察越来越高清、细节越来越丰富的图像时,一场关于“效率”与“性能”的拉锯战便悄然打响。尤其是在处理那些文字密布的“天书”图像时,提升输入图像的分辨率,几乎成了提升模型理解能力的“不二法门”。
问题随之而来:目前流行的视觉编码器,例如大名鼎鼎的视觉变换器(Vision Transformers, ViTs),在面对高分辨率图像时,往往会因为产生海量的视觉“令牌”(tokens)和高昂的编码延迟而显得力不从心,仿佛一位马拉松选手在起跑阶段就背上了沉重的行囊。想象一下,每张高清图片都被切割成无数小块,每一小块都要经过细致的编码,这不仅拖慢了速度,也让后续的大语言模型(LLM)不堪重负。
在这场追求极致视觉理解的竞赛中,我们如何在提升分辨率、保证模型性能的同时,又能让模型的响应速度“快如闪电”呢?这正是我们今天要讲述的故事——关于 FastVLM 的诞生,一个在分辨率、延迟和准确性之间找到了绝妙平衡的视觉语言模型。它的核心秘密武器,便是一款名为 FastViTHD 的新型混合视觉编码器,它如同一位技艺精湛的画匠,既能捕捉到图像的精髓,又能以极简的笔触(更少的令牌)呈现,大大缩短了高分辨率图像的编码时间。
更令人兴奋的是,FastVLM 另辟蹊径,仅通过巧妙地调整输入图像的“尺寸”,就实现了视觉令牌数量和图像分辨率之间的最佳平衡,无需额外的令牌裁剪“手术”,大大简化了模型的设计。在经典的 LLaVA-1.5 基准测试中,FastVLM 展现了惊人的实力:其“首字符输出时间”(Time-To-First-Token, TTFT)——衡量模型响应速度的关键指标——提升了整整 3.2 倍,同时在各项 VLM 基准测试中与前辈们并驾齐驱,甚至更胜一筹! 当面对高达 1152x1152 分辨率的挑战时,与 LLaVa-OneVision 相比,FastVLM 在使用相同 0.5B 参数量的大语言模型的情况下,不仅在 SeedBench、MMMU 和 DocVQA 等关键基准上表现更优,其 TTFT 更是快了惊人的 85 倍,而其视觉编码器的大小仅为对方的约三分之一!
图1解读:这张图直观地展示了 FastVLM 的速度优势。无论是搭配小巧的 Qwen2-0.5B LLM(左图a)还是更强大的 Vicuna-7B LLM(右图b),FastVLM(图中以FastViTHD为视觉编码器的点)在“首字符输出时间”(X轴,越低越好)和“平均性能”(Y轴,越高越好)的权衡上,都显著优于其他基于ViT或ConvNeXT的视觉编码器。标记点的大小代表视觉编码器的参数量,FastVLM 在保持高性能的同时,编码器也更小巧。所有模型均在苹果 M1 Macbook Pro 上进行基准测试。
现在,就让我们一起深入 FastVLM 的奇妙世界,探索它是如何在这场高分辨率图像处理的效率革命中拔得头筹的。
📜 背景故事:VLM 的高分辨率“饥渴症”与效率“瓶颈”
视觉语言模型(VLMs)的魅力在于它们能够将视觉感知与语言理解无缝对接。通常,它们的构建方式是将预训练的视觉主干网络提取的视觉令牌,通过一个投影层,馈送给一个预训练的大语言模型(LLM)。 研究者们在如何训练和微调这三大组件——视觉主干、投影层和LLM——上倾注了大量心血。
多项研究 都强调,图像分辨率是影响 VLM 性能的关键因素,尤其是在处理富含文本和图表的图像数据时,高分辨率带来的细节提升至关重要。然而,提升分辨率并非易事,挑战重重:
- 预训练的局限性:许多视觉编码器在预训练阶段并未针对高分辨率图像进行优化,因为这会使得预训练过程异常低效。一种解决方案是持续预训练视觉主干以适应高分辨率,或者采用“分块处理”策略,如 Sphinx、S2 和 AnyRes 那样,将大图切分成小块,分别处理。
- 运行时的计算开销:无论是直接处理单张高分辨率图像,还是采用分块策略(本质上是多次低分辨率推理),都会在生成视觉令牌时产生显著的延迟。
- 令牌泛滥与LLM的负担:高分辨率图像自然会产生更多的视觉令牌。这不仅增加了视觉编码本身的耗时,更延长了 LLM 的“预填充时间”(LLM 处理所有上下文令牌,包括视觉令牌的前向传播时间)。这两者之和,即“首字符输出时间”(TTFT),是用户能直接感受到的延迟。
因此,本文的研究者们从运行时效率的视角出发,重新审视了 VLM 的设计与训练。他们探索了在图像分辨率不断提升的背景下,如何优化准确性与延迟(包括视觉编码器推理时间和LLM预填充时间)之间的权衡。通过在不同 LLM 规模和分辨率下进行大量实验,他们为特定的视觉主干网络描绘出了“帕累托最优曲线”——即在给定的运行时预算(TTFT)下,通过不同分辨率和 LLM 规模的选择,所能达到的最佳准确性。
🚀 初步探索:FastViT 混合架构的潜力
研究者们首先将目光投向了一种混合卷积-变换器架构——FastViT,它通过 MobileCLIP 进行了预训练,并将其作为 VLM 的视觉主干。他们发现,这种混合主干网络在生成视觉令牌的速度上,比传统的 ViT 模型快了4倍以上,并且凭借多尺度特征,在 VLM 的整体准确性上也更胜一筹。
然而,如果首要目标是构建一个高分辨率 VLM(而非像 MobileCLIP 预训练的 FastViT 那样主要用于嵌入生成),那么架构上还有进一步优化的空间。这便引出了我们故事的主角——FastViTHD。
🌟 核心创新:FastViTHD——为高效高分辨率而生的新型混合视觉编码器
FastViTHD 是一款专为在高分辨率图像上实现高效 VLM 性能而设计的新型混合视觉编码器。它被用作 FastVLM 的视觉主干,并通过视觉指令微调进行训练。FastVLM 在准确性-延迟的权衡上,显著优于基于 ViTs、纯卷积编码器以及前述 FastViT 的 VLM 们,无论输入图像分辨率和 LLM 大小如何(参见图1a, 1b 和图4)。
图2解读:这张图展示了 FastVLM 的整体架构以及其核心 FastViTHD 视觉编码器的设计。FastViTHD 通过利用额外的自注意力层和更积极的下采样策略,在高分辨率下实现了低延迟。例如,在336x336的分辨率下,它生成的令牌数量比 FastViT 少4倍,比 ViT-L/14 少16倍。
让我们深入了解 FastViTHD 的设计哲学和过人之处。
🛠️ FastViT 作为 VLM 图像编码器的尝试与启示
VLM 的三大支柱是图像编码器、视觉-语言投影层和大型语言模型(LLM)。VLM 的性能和效率在很大程度上取决于其视觉主干。在高分辨率下编码图像对于在各种 VLM 基准测试中取得优异成绩至关重要,尤其是对于文本丰富的任务。因此,具有可扩展分辨率的视觉编码器对 VLM 尤其有利。研究者们认为混合视觉编码器(卷积层后接变换器模块)是 VLM 的理想选择,因为它们的卷积部分能够实现原生的分辨率缩放,而其变换器模块则进一步提炼高质量的视觉令牌供 LLM 使用。
他们使用了经过 CLIP 预训练的混合视觉编码器,特别是来自 MobileCLIP 的 MCi2 图像编码器(拥有3570万参数,基于 FastViT 架构),简称为“FastViT”。
如表1所示,仅仅使用 FastViT 在其 CLIP 预训练分辨率(256x256)下并不能产生强大的 VLM。混合编码器(如 FastViT)的主要优势在于其良好的图像分辨率缩放特性,这意味着它产生的令牌数量比 patch 大小为14的 ViT 架构少5.2倍。令牌数量的减少为 VLM 带来了显著优势,因为它减少了变换器解码器的预填充时间和首字符输出时间(TTFT)。
当 FastViT 的输入分辨率扩展到 768x768 时,它产生的视觉令牌数量与输入分辨率为 336x336 的 ViT-L/14 相同,但在 VLM 基准测试中取得了更好的性能。这种性能差距在文本丰富的基准测试(如 TextVQA 和 DocVQA)上更为明显,尽管两种架构产生的视觉令牌数量相同。此外,即使在更高分辨率下令牌数量相同,由于高效的卷积层,它编码图像的速度也快得多。
表1:FastViT 在延迟近4倍降低的情况下,准确性高于 ViT-L/14
图像编码器 | 输入分辨率 | 视觉令牌数 | 编码延迟(ms) | GQA | TextVQA | POPE | DocVQA | SeedBench | Avg-5 I |
---|---|---|---|---|---|---|---|---|---|
ViT-L/1 |