项目简介
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项目配置
- 打开
app/FastVLM.xcodeproj
- 修改Bundle Identifier
- 选择自己的开发团队
6. 构建和部署
- 连接iPhone到Mac
- 在Xcode中选择你的设备
- 点击运行按钮进行构建和部署
模型规格详细对比
模型版本 | 特点 | 适用场景 | 设备建议 |
---|---|---|---|
FastVLM 0.5B | 小巧快速 | 速度优先的移动设备 | iPhone、iPad等移动设备 |
FastVLM 1.5B | 平衡版本 | 兼顾速度和精度 | 大屏设备,日常使用 |
FastVLM 7B | 快速准确 | 精度优先场景 | 高性能设备,专业用途 |
应用功能特性
内置提示系统
- 应用包含一套内置提示,帮助您快速上手
- 点击右上角的Prompts按钮浏览提示选项
- 选择提示会立即更新当前输入
- 支持自定义提示:在Prompts菜单中选择Customize…
性能监控
- 实时显示Time-To-First-Token (TTFT)指标
- 监控每次推理的性能表现
使用体验
- ✅ 完全离线运行,保护隐私
- ✅ 可以识别图像内容
- ✅ 支持回答问题和描述场景
- ✅ 灵活的提示系统
- ✅ 实时性能监控
- ⚠️ 模型精度随规格大小变化
- ⚠️ 7B模型对设备性能要求较高
切换模型
如果想尝试不同的模型:
- 清空现有模型:
rm -rf app/FastVLM/model/*
- 下载新模型:
app/get_pretrained_mlx_model.sh --model [0.5b|1.5b|7b] --dest app/FastVLM/model
- 在Xcode中重新构建应用
自定义模型
除了预训练模型,您还可以:
- 进一步量化FastVLM模型
- 针对特定需求微调模型
- 详细信息请查看
model_export
文档
注意事项
- 系统版本:确保设备系统版本达到要求(iOS 18.2+ / macOS 15.2+)
- 模型下载:首次下载可能需要较长时间,建议在良好网络环境下进行
- 存储空间:不同规格模型占用存储空间不同,确保设备有足够空间
- 性能考虑:根据设备性能选择合适的模型规格
- 证书问题:如遇到codesign访问钥匙串提示,选择"允许"即可
故障排除
常见问题
- 证书访问:codesign提示时选择"允许"或"Always Allow"
- 模型识别:手动将.mlpackage文件添加到Xcode项目
- 网络问题:下载失败时可尝试使用curl替代wget
- 构建失败:检查Bundle Identifier和开发团队配置
参考来源: