Fastvlm: Efficient vision encoding for vision language models
Fastvlm:面向视觉语言模型的高效视觉编码
本文档包含 "FastVLM: Efficient Vision Encoding for Vision Language Models" 的官方实现,该论文已被 CVPR 2025 接收。
亮点
- 我们引入了 FastViTHD,这是一种新型的混合视觉编码器,旨在输出更少的 tokens,并显著减少高分辨率图像的编码时间。
- 我们最小的变体性能优于 LLaVA-OneVision-0.5B,但 Time-to-First-Token (TTFT) 快了 85 倍,视觉编码器小了 3.4 倍。
- 我们使用 Qwen2-7B LLM 的更大变体性能优于最近的 Cambrian-1-8B 等模型,同时使用单个图像编码器,TTFT 快了 7.9 倍。
- Demo iOS app 展示了我们的模型在移动设备上的性能。
开始使用
我们使用 LLaVA 代码库来训练 FastVLM 变体。为了训练或微调您自己的变体,请按照 LLaVA 代码库中提供的说明进行操作。 我们提供了使用我们的模型运行推理的说明。
设置
conda create -n fastvlm python=3.10
conda activate fastvlm
pip install -e .
模型仓库
有关各种评估的详细信息,请参阅我们的论文。
Model | Stage | Pytorch Checkpoint (url) ---|---|--- FastVLM-0.5B | 2 | fastvlm_0.5b_stage2 3 | fastvlm_0.5b_stage3 FastVLM-1.5B | 2 | fastvlm_1.5b_stage2 3 | fastvlm_1.5b_stage3 FastVLM-7B | 2 | fastvlm_7b_stage2 3 | fastvlm_7b_stage3
要下载所有预训练的 checkpoints,请运行以下命令(请注意,这可能需要一些时间,具体取决于您的连接速度,所以您可能需要等待)。
bash get_models.sh # Files will be downloaded to `checkpoints` directory.
用法示例
要运行 PyTorch checkpoint 的推理,请按照以下说明进行操作
python predict.py --model-path /path/to/checkpoint-dir \
--image-file /path/to/image.png \
--prompt "Describe the image."
在 Apple Silicon 上进行推理
要在 Apple Silicon 上运行推理,必须将 pytorch checkpoints 导出为适合在 Apple Silicon 上运行的格式,详细说明和代码可以在 model_export
子文件夹中找到。 请参阅其中的 README 以获取更多详细信息。
为方便起见,我们提供了 3 个采用 Apple Silicon 兼容格式的模型:fastvlm_0.5b_stage3, fastvlm_1.5b_stage3, fastvlm_7b_stage3. 我们鼓励开发人员按照 model_export
中的说明,以适当的量化级别导出他们选择的模型。
在 Apple 设备上进行推理
要在 iPhone、iPad 或 Mac 等 Apple 设备上运行推理,请参阅 app
子文件夹以获取更多详细信息。
引用
如果您发现此代码有用,请引用以下论文:
@InProceedings{fastvlm2025,
author = {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},
title = {FastVLM: Efficient Vision Encoding for Vision Language Models},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2025},
}
致谢
我们的代码库是使用多个开源贡献构建的,请参阅 ACKNOWLEDGEMENTS 了解更多详细信息。
许可
在使用提供的代码之前,请查看存储库 LICENSE,并查看 LICENSE_MODEL 以了解发布的模型。