
3.4K星Apple出品FastVLM:视觉TTFT效率提升85倍,凭啥这么牛!
VLM实际生产应用过程慢的原因
- VLMs通过结合视觉信息和文本信息,能够实现对图像内容的深入理解和生成。
- 然而,随着图像分辨率的提高,现有的视觉编码器(如Vision Transformers,ViTs)在处理高分辨率图像时面临效率瓶颈。
- 高分辨率图像虽然能够提供更丰富的细节,但会显著增加视觉编码器的延迟和计算成本,尤其是在生成视觉令牌(visual tokens)时。
- 此外,高分辨率图像产生的大量视觉令牌还会增加大型语言模型(LLM)的预填充时间(prefilling time),从而进一步延长了从图像输入到生成第一个文本令牌的时间(time-to-first-token,TTFT)。
- 因此,如何在保持高分辨率图像带来的性能提升的同时,优化视觉编码器的效率,
FastVLM的解决方案
- 通常情况下,通过动态调整输入分辨率、裁剪图像或使用多分辨率策略来解决高分辨率图像带来的效率问题。
- 例如:通过裁剪图像或使用多分辨率策略来减少视觉令牌的数量,但这可能会导致图像信息的丢失或不完整。
- 视觉编码器(如ViT)在高分辨率输入下,由于其自注意力机制的计算复杂度较高,难以在保持高效的同时处理高分辨率图像。
FastVLM要解决的问题是:能够在高分辨率输入下实现高效的视觉编码,同时减少视觉令牌的数量,以提高整体VLM的效率。
- FastVLM的核心是FastViTHD,通过减少视觉令牌的数量和降低编码延迟,实现了在高分辨率输入下的高效视觉编码。
- 与现有的ViT和卷积编码器相比,FastViTHD在保持高分辨率图像带来的性能提升的同时,显著提高了VLM的整体效率。
FastVLM架构
- 视觉编码器(Vision Encoder):
FastVLM采用FastViTHD作为视觉编码器,是一种混合卷积-变换器架构。
通过多尺度特征提取和深度可分离卷积(Depthwise Separable Convolutions)来减少视觉令牌的数量,同时保持高效的图像编码能力。
- 连接模块(Connector Module):
连接模块的作用是将视觉编码器生成的视觉令牌投影到与LLM兼容的特征空间中,以便LLM能够处理这些视觉信息。
- 大型语言模型(LLM):
FastVLM使用预训练的大型语言模型(如Vicuna或Qwen2)作为文本生成模块,负责根据输入的视觉信息和文本提示生成相应的输出文本。
FastViTHD的细节
- 多尺度特征提取:
FastViTHD通过在不同阶段提取多尺度特征,并使用深度可分离卷积将这些特征聚合到一起。
不仅保留了图像的细节信息,还减少了视觉令牌的数量。
具体来说,FastViTHD在每个阶段的输出特征图上应用深度可分离卷积,将不同尺度的特征图进行融合,从而生成包含多尺度信息的视觉令牌。
- 深度可分离卷积:
FastViTHD在卷积层中使用深度可分离卷积,这种卷积方式在保持卷积效果的同时,显著减少了计算量和参数数量。
深度可分离卷积将标准卷积分解为两个独立的操作:深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。
深度卷积对每个输入通道分别进行卷积操作,逐点卷积则对深度卷积的输出进行通道混合。
这种分解方式减少了卷积操作的计算复杂度,从而提高了编码器的效率。
- 自注意力机制的优化:
FastViTHD在自注意力层中引入了额外的下采样层,使得自注意力机制只处理经过下采样的特征图。
这种设计减少了自注意力机制的计算复杂度,同时保持了对图像细节的捕捉能力。
具体来说,FastViTHD在自注意力层之前添加了一个下采样层,将特征图的分辨率降低到原来的1/32或1/64。这样,自注意力机制只需要处理较小的特征图,从而减少了计算量和延迟。
FastVLM的训练过程
- 预训练阶段:
FastVLM使用大规模的图像-文本对数据集(如DataCompDR-1B)对视觉编码器FastViTHD进行预训练。
预训练的目标是:让视觉编码器能够生成高质量的视觉令牌,这些视觉令牌能够捕捉到图像的语义信息。
FastViTHD通过最小化图像和文本之间的对比损失(contrastive loss)来学习图像和文本的对齐关系。
- 视觉指令微调阶段:
- FastVLM使用视觉指令数据集(如LLaVA-1.5)对整个模型进行微调。
- 微调的目标是:让模型能够更好地理解和生成与视觉指令相关的文本。
- FastVLM通过最小化生成文本和目标文本之间的交叉熵损失(cross-entropy loss)来优化模型的参数。
- 此外,FastVLM还使用了多种正则化技术(如Dropout和Weight Decay)来防止过拟合。
FastVLM 性能
基础测试
主要测试图像问答、文档理解、视觉推理等多个任务
- 在GQA基准测试中,FastVLM通过回答与图像内容相关的问题,展示了其对图像语义的理解能力。
- FastVLM在使用Qwen2-0.5B LLM时,取得了60.6%的准确率,与LLaVA-OneVision在相同输入分辨率和LLM大小下的性能相当,但TTFT快85倍。
- 在TextVQA基准测试中,FastVLM在使用Qwen2-0.5B LLM时,取得了63.0%的准确率,比ConvLLaVA高8.4%,同时TTFT快22%。
- 在DocVQA基准测试中,FastVLM在使用Qwen2-0.5B LLM时,取得了59.3%的准确率,比ConvLLaVA高12.5%,同时TTFT快22%。
效率对比
主要对比指标包括时间到第一个令牌(TTFT)、视觉编码器延迟和LLM预填充时间
- 在使用Qwen2-0.5B LLM时,FastVLM的TTFT为116.3毫秒,比LLaVA-OneVision的2721.4毫秒快85倍。
- 在使用Vicuna-7B LLM时,FastVLM的TTFT为54.8毫秒,比ConvLLaVA的164.3毫秒快22%。
- FastViTHD的尺寸为125M,而ViT-L/14的尺寸为304M,ConvNeXT-L的尺寸为200M。这使得FastVLM在设备端部署时更加高效,能够快速响应用户请求。
- 这说明FastVLM在高分辨率输入下,能够显著减少视觉令牌的数量,从而降低LLM的预填充时间,并提高整体效率。
动态输入分辨率策略
通过将输入图像分割成多个子区域(tiles),并分别对每个子区域进行编码,FastVLM能够在极高分辨率下保持较好的效率和准确性。
- 在输入分辨率为1536×1536时,使用较少的子区域(如2×2网格)进行编码,比使用更多子区域(如4×4网格)更能实现有效的准确性-延迟权衡。
- 使用2×2网格的FastVLM在SeedBench基准测试上的性能为63.7%,延迟为17.4毫秒;而使用4×4网格的FastVLM在相同基准测试上的性能为62.8%,延迟为35.6毫秒。
- 这表明,动态输入分辨率策略能够在极高分辨率下保持较好的效率和准确性。
与token裁剪方法的对比
不使用任何token裁剪技术,FastVLM通过简单的输入分辨率调整,就能实现比现有令牌裁剪方法更好的准确性-延迟权衡。
- 在输入分辨率为256×256时,FastViTHD生成的视觉令牌数量仅为16个,而现有的令牌裁剪方法(如Matryoshka-based token sampling)在相似延迟下生成的令牌数量更多,但性能却不如FastVLM。
- 这证明了FastViTHD在减少视觉令牌数量方面的优势,以及其在提高VLM效率方面的有效性。
FastVLM的实际应用价值
- 设备端部署的优势:
FastVLM的高效视觉编码器和较小的模型尺寸使其在设备端部署时具有显著优势。
例如,在智能手机、平板电脑等移动设备上,FastVLM能够快速处理高分辨率图像,并生成相关的文本描述或回答,为用户提供更流畅的使用体验。
- 多模态应用的潜力:
FastVLM在图像问答、文档理解、视觉推理等多个任务中表现出色,具有广泛的应用潜力。
例如,在智能助手、图像搜索引擎、文档分析工具等多模态应用中,FastVLM能够结合视觉信息和文本信息,提供更准确、更丰富的回答和分析结果。
- 对高分辨率图像的支持:
FastVLM能够有效处理高分辨率图像,使其在需要高精度图像分析的应用中具有重要价值。
例如,在医学图像分析、卫星图像解读、显微图像处理等领域,FastVLM能够捕捉到图像中的细节信息,为专业人员提供有价值的参考和决策支持。
本文转载自CourseAI,作者:CourseAI
