MLC-LLMでiOS上でローカルLLM(Gemma 3)を実行する
(blog.devstory.co.kr)Gemma 3 モデルをMLC-LLM経由でiOSデバイス上でローカル実行する方法と、実際の動作性能指標を整理した投稿です。
要約
- MLC-LLMの活用: Metal APIアクセラレーションにより、モバイルデバイスでもレイテンシがほぼない快適な推論環境を構築
- Gemma 3 1Bのビルド過程: Hugging Faceモデルのダウンロードから q4f16_1 量子化、対話テンプレート(gemma3_instruction)の適用、Metalカーネルのコンパイルまでの全ワークフローガイド
- 性能およびリソース指標:
- Gemma 2 2B: 約2.4GBのVRAMを使用
- Gemma 3 1B: 約1.14GBのVRAMを使用
- 実行のコツ:
mlc-package-config.jsonの設定を通じて、カスタムモデルをXcodeプロジェクトにパッケージングする方法も含む
評価
- MLC-LLMを活用すれば、高性能LLMをiOSデバイスに直接移植し、プライバシー保護とオフライン実行という利点を両立できる
- JSONフォーマットのような構造化された応答の生成はやや苦手な様子を見せる
- 複雑なシステムプロンプトが必要な機能やデータ抽出業務に活用するには、プロンプトエンジニアリングや追加のファインチューニングなどの補完作業が必要に見える
- 今後、モデル専用パイプラインの接続とプロジェクト最適化作業が並行して進めば、より実用的なOn-Device AIサービスを構築できると期待される
8件のコメント
私はGalaxy Fold 4でqwen 3 0.6b q5を動かしていますが、今のところは少し物足りない感じです。
どの部分に物足りなさを感じたのか気になります。
モデルが小さすぎて LLM の性能に物足りなさを感じたのか、それともローカルで実行した際の実行パフォーマンスに物足りなさを感じたのかが気になります。
パフォーマンスが少し物足りないです。GPUや特定のNPUのサポートがまだなくて遅いです..
私はGalaxy Note 20 Ultraで gemma3 1b int4 モデルを研究中です。
旧モデルでも動くレベルです。
おお、もしかして Vulkan アクセラレーションは使えますか?
できるらしいですが、私はできません(泣)
Galaxy Note20 では、もう少し低いスペックの CPU でもうまく動作する(十分に最適化された)モデルが出るまでは、快適に使うのは難しいのではないでしょうか?
上の内容を見ると、Mac 専用の Metal カーネル向けに作られたと書かれています。
MLX を使えば、一般的な GGUF より高速なロードと実行が可能だと認識しています。
でも、4Bまでは微妙です ;;