Fastvlm:面向视觉语言模型的高效视觉编码

本文档包含 "FastVLM: Efficient Vision Encoding for Vision Language Models" 的官方实现,该论文已被 CVPR 2025 接收。

Accuracy vs latency figure.

亮点

FastVLM - Counting | FastVLM - Handwriting | FastVLM - Emoji ---|---|---

开始使用

我们使用 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 以了解发布的模型。