Back to blog

FastVLM: Efficient Vision Encoding for Vision Language Models

Apple提出的高效视觉语言模型,通过新型混合视觉编码器FastViTHD实现85×更快的首token延迟,同时保持竞争性准确率

FastVLM: Efficient Vision Encoding for Vision Language Models

一、论文概述

项目内容
标题FastVLM: Efficient Vision Encoding for Vision Language Models
作者Pavan Kumar Anasosalu Vasu, Fartash Faghri, Chun-Liang Li, Cem Koc, Nate True, Albert Antony, Gokul Santhanam, James Gabriel, Peter Grasch, Oncel Tuzel, Hadi Pouransari
机构Apple
论文https://arxiv.org/abs/2412.13303
代码https://github.com/apple/ml-fastvlm
会议CVPR 2025
发布2024-12-17 (v1), 最新 v2 (2025-05-15)

二、核心思想

问题定义

提升VLM性能的关键是提高输入图像分辨率,但带来两大挑战:

挑战说明
视觉编码器效率低ViT在高分辨率下产生大量token,编码延迟高
LLM预填充慢大量视觉token增加LLM预填充时间,提高TTFT

解决方案概述

FastVLM 是Apple提出的高效VLM,核心创新:

  • FastViTHD:新型混合视觉编码器(卷积+Transformer),专门为高分辨率VLM设计
  • 架构优化:5阶段设计,额外下采样层,生成4×更少token
  • 无需token剪枝:仅通过缩放输入图像实现最优token-分辨率平衡
  • 85×更快TTFT:相比LLaVA-OneVision,同等0.5B LLM下快85倍

Figure 1a: FastVLM速度对比 - Qwen2-0.5B

Figure 1b: FastVLM速度对比 - Vicuna-7B

三、技术架构

整体框架

Figure 2: FastVLM架构概览

FastVLM由三个组件构成:

  1. FastViTHD:新型混合视觉编码器
  2. 投影层:连接视觉编码器和LLM
  3. LLM解码器:Qwen2-0.5B/1.5B/7B或Vicuna-7B

FastViTHD架构

FastViTHD是5阶段混合架构:

阶段类型深度嵌入维度说明
Stage 1RepMixer296卷积特征提取
Stage 2RepMixer12192卷积特征提取
Stage 3RepMixer24384卷积特征提取
Stage 4Self-Attention4768Transformer细化
Stage 5Self-Attention21536Transformer细化

关键设计:

  • 额外下采样层:引入第5阶段,使自注意力在32×下采样张量上操作(而非16×)
  • 4×更少token:相比FastViT,生成4×更少视觉token
  • 16×更少token:相比ViT-L/14在336分辨率下
  • 125.1M参数:比最大FastViT变体大3.5×,但仍小于ViT-L/14(304M)

缩放策略

Figure 3: FastViTHD缩放策略

分辨率FastViT-NaiveConvNeXt-LFastViTHD
25610ms30ms5ms
512100ms70ms20ms
768300ms150ms50ms
10241000ms500ms100ms

FastViTHD在所有分辨率下均显著快于朴素缩放和ConvNeXt-L。

多尺度特征

  • 从多个阶段聚合特征
  • 使用深度卷积(而非平均池化)进行特征融合
  • 性能提升:Avg-5从62.6提升到62.9

视觉编码器-语言解码器交互

Figure 4: Pareto最优曲线

TTFT分解:

分辨率视觉编码延迟LLM预填充
2565ms50ms
51225ms70ms
76850ms90ms
1024110ms110ms
1536800ms300ms

Figure 5: 高分辨率下视觉延迟主导

关键发现:在高分辨率下,视觉编码延迟成为TTFT的主要瓶颈。

静态vs动态分辨率

Figure 6: 静态vs动态分辨率对比

  • 动态分辨率(AnyRes):仅在最高分辨率+少tile(2×2)时最优
  • 静态分辨率:在多数场景下更简单高效
  • FastVLM通过缩放输入图像实现最优平衡,无需额外token剪枝

四、核心创新

创新点说明优势
FastViTHD混合架构卷积+Transformer,5阶段设计高效高分辨率编码
额外下采样层第5阶段,32×下采样4×更少token
无需token剪枝仅通过缩放输入图像简化模型设计
多尺度特征融合深度卷积聚合多阶段特征提升VLM性能
Pareto最优分析系统研究分辨率-延迟-准确率权衡指导模型设计

五、训练流程

训练设置

Stage 1(对齐训练):

  • 数据:LLaVA-558K对齐数据集
  • 仅训练投影层
  • 批大小:256,学习率:10⁻³
  • 1个epoch

Stage 1.5(分辨率缩放):

  • 数据:15M样本
  • 训练视觉编码器+投影层
  • 输入分辨率:目标分辨率
  • 约77小时(8×H100,1024×1024)

Stage 2(视觉指令微调):

  • 数据:LLaVA-665K监督微调数据集
  • 训练所有模块
  • 约8小时(8×H100,1024×1024)

Stage 3(可选,高质量微调):

  • 数据:Mammoth-VL高质量指令微调数据集(含CoT推理)
  • 进一步提升性能

训练数据

阶段数据集样本数说明
Stage 1LLaVA-558K558K图文对齐
Stage 1.5混合预训练数据15M分辨率缩放
Stage 2LLaVA-665K665K视觉指令微调
Stage 3Mammoth-VL12.5M/23.1M高质量CoT推理

硬件需求

项目值
GPU8× NVIDIA H100-80GB
Stage 1~30分钟
Stage 1.5~77小时
Stage 2~8小时
总训练时间~85小时

六、实验结果

与Token剪枝方法对比

方法输入分辨率视觉token数GQATextVQAPOPEDocVQASeedBenchAvg-5
ViT-L/14 M3336958.0-83.4-55.4-
ViT-L/14 MQT3361657.6-80.8---
FastViTHD2561660.653.182.317.458.855.5
ViT-L/14 PruMerge+33640-57.184.0---
FastViTHD5126463.059.386.425.761.860.4
ViT-L/14 MQT33614461.4-83.9---
FastViTHD76814462.462.987.732.962.562.8

FastViTHD在相同token数下显著优于token剪枝方法。

与层次化骨干对比

方法输入分辨率编码器大小延迟GQATextVQADocVQASeedBenchAvg-5
ConvNeXT-L320200M34.4ms61.955.521.364.657.7
ConvNeXT-XXL256846M89.9ms62.756.321.665.658.3
FastViTHD256125M10.1ms60.653.117.463.755.5
ConvNeXT-L512200M71.9ms61.861.030.866.861.3
FastViTHD512125M33.5ms63.059.325.767.160.4
ConvNeXT-XXL512846M397.1ms62.365.136.268.463.9
FastViTHD1024125M235.6ms63.164.435.668.563.9

FastViTHD在更高分辨率下以更小模型和更低延迟达到相当或更好的性能。

0.5B模型对比

方法视觉编码器LLM输入分辨率视觉token编码器大小TTFTDocVQAMMMUSeedBench
nanoLLaVAViT-SO400MQw.1.5384729430M535ms-30.4-
LLaVAOV*ViT-SO400MQw.211527290430M14124ms70.031.465.5
FastVLM (R4)FastViTHDQw.21024256125M166ms70.432.969.2
FastVLM (R5)FastViTHDQw.21024256125M166ms79.133.669.3

FastVLM-0.5B在DocVQA(79.1)、MMMU(33.6)、SeedBench(69.3)上超越LLaVA-OneVision,同时:

  • TTFT快85× (166ms vs 14124ms)
  • 编码器小3.4× (125M vs 430M)
  • 视觉token少28× (256 vs 7290)

7B模型对比

方法视觉编码器LLM输入分辨率视觉tokenTTFTGQATextVQADocVQAMMMU
LLaVA-1.5ViT-L/14Vic.3365761297ms62.058.228.135.3
ConvLLaVAConvNeXT-LVic.10242561157ms-62.548.535.1
FastVLM (R29)FastViTHDVic.1024256577ms65.270.672.436.7
FastVLM (R30)FastViTHDQw.21024256641ms65.872.173.346.2
FastVLM (R40)FastViTHDQw.21024256641ms66.073.178.742.8

多视觉编码器对比

方法视觉编码器LLM视觉tokenTTFTDocVQAMMMUSeedBench
MiniGemini-HDConvNeXT-L + ViT-L/14L-3288021832ms74.637.373.2
Cambrian-14个编码器L-35765085ms77.842.774.7
FastVLM (R40)FastViTHDQw.2256641ms78.742.875.9

FastVLM单编码器超越多编码器方法,且TTFT快7.9×。

与同期工作对比

方法视觉编码器LLM视觉token编码器大小TextVQADocVQAAI2DSQA
SmolVLM2-0.5BViT-BSmolLM21088*93M60.270.559.280.0
FastVLM-0.6BFastViTHDQw.2256125M65.879.166.082.0
SmolVLM2-2.2BViT-SO400MSmolLM22106*430M73.080.070.089.6
FastVLM-1.7BFastViTHDQw.2256125M71.284.276.692.9

FastVLM用4.3×更少token和2.2×更小编码器超越SmolVLM2。

七、相关工作

大型多模态模型

  • LLaVA:视觉指令微调范式
  • InternVL:视觉基础模型缩放
  • Cambrian-1:多视觉编码器集成
  • MM1:多模态缩放研究

高效图像编码

  • SigLIP:CLIP预训练ViT
  • ConvNeXt:纯卷积视觉编码器
  • ConvLLaVA:卷积视觉编码器用于VLM
  • ViTamin:VLM专用混合架构

Token压缩方法

  • Matryoshka:多尺度token采样
  • PruMerge:动态token剪枝
  • VisionZip:视觉token压缩
  • DynamicLLaVA:动态视觉-语言上下文稀疏化

FastVLM的差异化

  • 专为高分辨率设计:非事后优化,而是架构层面优化
  • 无需token剪枝:通过架构设计自然减少token
  • 混合架构优势:卷积处理低层特征,Transformer处理高层语义
  • 移动端友好:支持Apple Silicon推理,提供iOS演示应用

八、总结

核心贡献

  1. FastViTHD混合视觉编码器:5阶段设计,额外下采样层,125M参数,生成4×更少token
  2. 系统性效率分析:研究分辨率、视觉延迟、token数、LLM大小的交互关系
  3. Pareto最优分析:建立准确率-延迟权衡曲线,指导模型设计
  4. SOTA性能:
    • 0.5B模型:85×更快TTFT,超越LLaVA-OneVision
    • 7B模型:7.9×更快TTFT,超越Cambrian-1
    • 单编码器超越多编码器方法

技术影响

  • VLM效率新标杆:证明高效视觉编码可以大幅提升VLM延迟
  • 移动部署可行性:支持iPhone/iPad/Mac实时推理
  • 架构设计指导:混合架构+额外下采样的设计范式
  • 开源生态:提供完整代码、模型和iOS应用

局限性

  1. 分辨率上限:当前主要评估到1024×1024,更高分辨率效果待验证
  2. 训练成本:Stage 1.5需要77小时训练(8×H100)
  3. 动态分辨率限制:AnyRes仅在2×2 tile时最优,复杂场景可能不足
  4. 编码器大小:125M仍比ViT-B(86M)大,对极端资源受限场景可能过大
  5. 任务泛化:主要评估VQA和理解任务,对生成任务效果未充分验证

九、参考资源

论文

相关论文

  • LLaVA: Visual Instruction Tuning (NeurIPS 2023)
  • FastViT: Fast Hybrid Vision Transformer (ICML 2023)
  • MobileCLIP: Mobile Vision-Language Models
  • ConvLLaVA: Hierarchical Backbones for VLMs
  • Qwen2: 大型语言模型
  • Vicuna: 对话式语言模型