iPhone実機でAppleのFastVLMを試したメモ
結論
以下、iPhone 15 ProとiPhone SE 第2世代で試したまとめです。
- iPhoneで実行できるとの宣伝文句は嘘ではないが実用にはほど遠い。
- 動作する機種がiPhone 15 Proシリーズ以降に限定される。iPhone SE 大2世代など旧機種はメモリ不足でクラッシュする。時間をかければ処理が完了するアーキテクチャではない。
- 消費電力が大きすぎる。iPhone 15 Pro実機の背面温度は測定できていないが、火傷しそうなほど発熱する。
- 動作が不安定。サーマルスロットリングによる処理の遅延やリソース不足による意図しないクラッシュの恐れがある。夏の屋外利用はほぼ不可能。
- Google Gemini Flashなどサーバーで処理する方式のVLMの代わりにはならない。
- FastVLMが完全にオフラインで動作する点は評価できる。しかし、現状は動作する機種が限られているため、アプリ開発の観点ではサーバーで処理する方式へのフォールバックが必要になる。
- OCRやジェスチャ認識、画像分類タスクなどは既存のVisionフレームワークやCore MLフレームワークを利用する方が低消費電力かつ超高速に動作する。iPhone SE 大2世代のような旧機種でも実用的に動作するため多くのユーザーに同じUXを提供できる。
概要
2025年5月15日にAppleが公開したVision Language ModelであるFastVLMをiPhone実機で試したのでメモします。宣伝のためのWebページを用意していることから、性能には自信があるようです。
GitHubのリポジトリは以下です。すぐに試せるサンプルアプリが含まれています。
(補足)アプリのビルドについて
最新のXcode 16.4 (16F6)を利用している場合、そのままではビルドが失敗します。以下のように修正してください。
- app/FastVLM.xcodeprojを開き、画面左のプロジェクトナビゲーターでFastVLMを選択します。
- ターゲットリストでFastVLMを選び、Info / Build Settings / Package Dependenciesタブメニューを表示させます。ここでPackage Dependenciesタブを選択します。
- 3つの依存パッケージが設定されているので、以下のように2箇所変更します。
- mlx-librariesのバージョン指定をExact Version (2.21.2)に変更
- swift-transformersのバージョン指定をExact Version (0.1.18)に変更
あとはapp/README.mdに従って操作するだけでビルドが成功します。M1 PROチップを搭載したMacBook Pro 2021年モデルではビルド完了まで1分ほどかかりました。
ちなみに、この件についてはIssueが建てられているので、いずれ修正されるかもしれません。放置されている様子を見ると、優先度は低そうですが。
実行結果
- モバイル向け0.5Bモデル
- iPhone 15 Pro: 画像の内容によるがTTFT 2,000 ms前後でテキスト生成可能だった。回答全文の生成完了までは数百ms程度かかる。
- iPhone SE 第2世代: アプリ起動後数秒でクラッシュした。
今後の展望
FastVLM公式サイトから引用します。
インテリジェントな分析のために、画像内のオブジェクト、テキスト、またはデータを認識します。リアルタイムの画像とテキストのインタラクションが必要なシナリオに特に適しています。
上記の宣伝文句は嘘をついていませんが、誤解を生む表現です。まず、モデルの性能うんぬん以前に電力消費と発熱が激しいため実用に耐えられません。
例えばリアルタイム画像認識による道案内アプリを作るとして、発熱が原因でアプリが頻繁にクラッシュしていては役に立ちません。適していると断言するには極端なバッテリーの消耗がなく安定して動作することを期待します。
個人的にはGoogle Gemini Flashの代わりに、完全オフラインで動作するモデルとして期待していたのですが、残念ながらモバイル端末での利用は非現実的です。ANEのようなVLMの推論に特化した専用プロセッサーが登場しない限り、少なくともあと3、4年先の世代になるまでiPhoneハードウェアの性能向上を待つことになりそうです。
Discussion