FastVLM
FastVLM :面向高分辨率、文本丰富图像理解的视觉-语言模型,采用一个专门为高分辨率 VLM 设计的混合式视觉编码器 FastViTHD,替代传统高成本视觉 backbone,从而在准确率—延迟之间取得更优 Pareto trade-off
本文研究目标:把encoder设计为适合高分辨率的,让视觉编码更快并且让送进 LLM 的视觉 token 更少
VLMs 工作的pipeline:
-
VLMs 通常把来自预训练vision encoder的视觉 tokens 通过一个投射层(projection layer)传入预训练的LLM
-
也就是把图像先用一个已经训练好的视觉网络编码成一串向量(visual tokens),再用一个映射层把这些向量转换成 LLM 能接受的表示,送进 LLM 做后续的联合理解或生成
-
视觉骨干(pretrained vision encoder):比如 ResNet、ViT、Swin 等,负责把原始图像转成特征向量(patch embedding、region features 等)
背景 & 研究难点
- Popular Visual Encoder 不足够去处理高分辨率的图像
- 优化visual decoder的两个方向:“reducing encoding latency” 和“minimizing the number of visual tokens passed to the LLM” 即减少编码延迟或减少tokens
- 解决vision encoder不支持高分辨率图像的思路:
- 不断预训练直到适应
- 采取 tiling strategies(将图像划分成子区域再分别单独处理)
- 由于处理高分辨率推理带来runtime computational cost,无论是单个高分辨率还是多个低分辨率都会导致显著的latency,同时高分辨率会增加LLM的prefilling时间进而增加TTFT
- TTFT(time-to-first-token),主要由两部分组成:
- vision encoder latency:图像编码花多久
- LLM prefilling time:LLM 读入这些视觉 token 花多久
相关工作
Resolution Scaling / AnyRes 路线
核心思路是:将高分辨率图切块(tile)处理,然后每个tile单独encode最后拼接
典型的有LLaVA-1.5(AnyRes)、LLaVA-OneVision 、InternVL 系列、Qwen-VL / Qwen2-VL
Token Pruning / Token Merging 路线
核心思路是:先生成很多 token → 再删掉不重要的
比如有DynamicViT、TokenLearner、Token Pruning in VLM、VisionZip
Efficient Backbone
核心思路是:直接设计一个更高效的视觉编码器
包括有 ConvNeXt、EfficientNet、MobileViT、FastViT(FastVLM 的前身)、EfficientViT
创新点
- 引入了额外的 architectural interventions, such as multi-scale vision features提高性能的同时保持效率
- 系统研究了VLM的准确率和latency之间的tradeoff
- 提出“FastViTHD” 作为FastVLM的visual encoder,专为高分辨率图像上的高效 VLM 性能而设计
Architecture
FastViTHD 是一个 hybrid vision encoder,采用 5-stage 结构,前 3 个 stage 主要用 RepMixer block,后 2 个 stage 用 self-attention block
核心思想是在编码过程中逐步下采样来减少tokens、保留有效信息
Stage 1–3
主要由 RepMixer blocks 组成,负责:高效提取局部纹理;在高分辨率下尽量减少计算开销并逐步压缩特征图大小
Stage 4–5
主要由 self-attention blocks 组成,负责建模更高层的全局语义关系;并且在 token 已经变少后再做 attention,能降低复杂度
Multi-scale Features
同时提取局部细节信息和更深层的全局语义信息