项目简介

FastVLM 是苹果发布的视觉语言模型,可以在iPhone和Mac上离线运行,能够理解图像内容并回答问题。所有预测都在设备本地处理,确保隐私和安全。项目地址:https://github.com/apple/ml-fastvlm

接下来说说实测最关心的性能表现和大小情况:

作者的测试设备为:

  • MBP M1Pro 16G运行内存
  • iPhone16Pro A18Pro 8G运行内存
模型版本 下载大小 TTFT(MBP) 内存占用
FastVLM 0.5B (fp16) 1.15G 400ms 2G
FastVLM 1.5B (int8) 1.91G 600ms 2.8G
FastVLM 7B (int8) 3.85G 1800ms 5G

注意:以上大小均为适配转换后,适用于Apple Silicon的模型。原始模型大小会有出入,实际按指令下载的大小即为表格所述。

作者测试下来,认为该技术是一个初步的技术原型。能够满足基本的视频理解,在终端跑起来仍然会有发热的问题。但瑕不掩瑜,未来在端侧,AI将会有更多的可能性。打包后,最小的安装包大小在2G左右。基本上每个模型都会把MBP的CPU温度干到85度以上,风扇直接到6000转以上。真没见过这么吵的MBP。iPhone16pro的情况也大差不多,能感受到明显的温度升高。不过手头没有测温装置,所以无法给到确切的数字。而在速度方面,基本如上图所示,能够在秒级别以内产出首个Token。iPhone再乘以2-3倍。当然,这个时间也取决于提示词、图片复杂度等其他因素。

对于未来展望部分:调用逻辑和交互上,适当的优化能够降低发热,提升用户体验。无论如何,AI新技术都需要整合到需求中,才会有更大的价值。

准备工作

系统要求

  • Mac电脑:macOS 15.2+ 并安装Xcode最新版本
  • iPhone设备:支持iOS 18.2+的设备(建议运行内存在3G以上,iPhone X 及以上)
  • 开发者账号:普通Apple ID即可

项目特性

  • ✅ 支持iOS (18.2+) 和macOS (15.2+)
  • ✅ 显示每次推理的首Token时间(TTFT)
  • ✅ 完全离线运行,保护隐私安全
  • ✅ 灵活的提示系统,支持自定义prompt
  • ✅ 三种不同规格的预训练模型

安装步骤

1. 下载源代码

git clone https://github.com/apple/ml-fastvlm.git
cd ml-fastvlm

2. 安装依赖工具

brew install wget

如果遇到版本错误,可以使用:

HOMEBREW_NO_AUTO_UPDATE=1 brew update

3. 准备下载脚本

首先让脚本具有执行权限:

chmod +x app/get_pretrained_mlx_model.sh

4. 下载模型文件

⚠️ 重要:下载新模型前,请先清空现有模型目录:

rm -rf app/FastVLM/model/*

根据需要选择模型规格进行下载:

下载0.5B模型(推荐移动设备):

app/get_pretrained_mlx_model.sh --model 0.5b --dest app/FastVLM/model

下载1.5B模型(推荐平衡使用):

app/get_pretrained_mlx_model.sh --model 1.5b --dest app/FastVLM/model

下载7B模型(推荐高精度需求):

app/get_pretrained_mlx_model.sh --model 7b --dest app/FastVLM/model

5. Xcode项目配置

  1. 打开 app/FastVLM.xcodeproj
  2. 修改Bundle Identifier
  3. 选择自己的开发团队

6. 构建和部署

  1. 连接iPhone到Mac
  2. 在Xcode中选择你的设备
  3. 点击运行按钮进行构建和部署

模型规格详细对比

模型版本 特点 适用场景 设备建议
FastVLM 0.5B 小巧快速 速度优先的移动设备 iPhone、iPad等移动设备
FastVLM 1.5B 平衡版本 兼顾速度和精度 大屏设备,日常使用
FastVLM 7B 快速准确 精度优先场景 高性能设备,专业用途

应用功能特性

内置提示系统

  • 应用包含一套内置提示,帮助您快速上手
  • 点击右上角的Prompts按钮浏览提示选项
  • 选择提示会立即更新当前输入
  • 支持自定义提示:在Prompts菜单中选择Customize…

性能监控

  • 实时显示Time-To-First-Token (TTFT)指标
  • 监控每次推理的性能表现

使用体验

  • ✅ 完全离线运行,保护隐私
  • ✅ 可以识别图像内容
  • ✅ 支持回答问题和描述场景
  • ✅ 灵活的提示系统
  • ✅ 实时性能监控
  • ⚠️ 模型精度随规格大小变化
  • ⚠️ 7B模型对设备性能要求较高

切换模型

如果想尝试不同的模型:

  1. 清空现有模型:
rm -rf app/FastVLM/model/*
  1. 下载新模型:
app/get_pretrained_mlx_model.sh --model [0.5b|1.5b|7b] --dest app/FastVLM/model
  1. 在Xcode中重新构建应用

自定义模型

除了预训练模型,您还可以:

  • 进一步量化FastVLM模型
  • 针对特定需求微调模型
  • 详细信息请查看 model_export 文档

注意事项

  1. 系统版本:确保设备系统版本达到要求(iOS 18.2+ / macOS 15.2+)
  2. 模型下载:首次下载可能需要较长时间,建议在良好网络环境下进行
  3. 存储空间:不同规格模型占用存储空间不同,确保设备有足够空间
  4. 性能考虑:根据设备性能选择合适的模型规格
  5. 证书问题:如遇到codesign访问钥匙串提示,选择"允许"即可

故障排除

常见问题

  • 证书访问:codesign提示时选择"允许"或"Always Allow"
  • 模型识别:手动将.mlpackage文件添加到Xcode项目
  • 网络问题:下载失败时可尝试使用curl替代wget
  • 构建失败:检查Bundle Identifier和开发团队配置

参考来源: