![見出し画像](https://assets.st-note.com/production/uploads/images/142888271/rectangle_large_type_2_f2e2b66b1adf15949b451d2120e57682.png?width=1200)
iPhone単体でオンデバイスLLMを試してみた。LLMFarm
こんにちはIZAIエンジニアチームです。
今回は、「LLMFarm」というiPhone上でLLMを動かせるOSSを、iPhone 15 Proを使って試してみます。
https://github.com/guinmoon/LLMFarm
必要なもの・・・iPhoneのみ
![](https://assets.st-note.com/img/1717430223074-DZmXl2dXZM.png)
「LLMFarm」は、数GB程度の軽量なモデルをiOS/M系Silicon で実行可能にするプロジェクトで、『ggml』と『llama.cpp』をベースにしています。TestFlight経由でiOSアプリが配布されているので、誰でも簡単に手元のiPhoneでローカルLLMを動かせます。早速手順に従って試してみましょう
1. TestFlightをインストール
TestFlightって?・・・ベータ版アプリケーション配布用アプリ。
iOSアプリケーションは通常、AppStoreの審査を通過しなければリリースはできませんが、TestFlightではベータ版を開発者やテスター向けにクローズドに提供できます
※今回のLLMFarmはレポジトリのオーナーのguimoon氏が配布しています。感謝。
2. LLMFarmをインストール
TestFlight経由でLLMFarmがインストールできます。
![](https://assets.st-note.com/img/1717430223262-xf331JY5xK.png?width=1200)
3. モデルをダウンロード
今回はLLMFarm経由でMistral-7B-v0.1のQ3_K_S(3ビットに量子化したモデル)をインストールしてみます。
(※iPhone 15 ProはRAMが8GBあるので動きますが、その他の機種の場合はクラッシュしたり動作しない可能性があります。その場合はメモリ使用量が小さいPhi-3-mini 等を試してみてください。)
画面右上の詳細ボタンをタップ
settingをタップ
Download modelsをタップ
Mistral-7B-v0.1を選択する
Q3_K_Sを選択する
ダウンロードする
![](https://assets.st-note.com/img/1717430223779-B9vMWC0sIU.png?width=1200)
Tips:
PC経由でHugging Faceからモデルをダウンロード後、ThunderboltケーブルでiPhoneへ転送する方が速いです。
4. チャットの設定
![](https://assets.st-note.com/img/1717430224126-cscnlY7MfJ.png?width=1200)
4-1. Mistral用Prompt templateの設定
対話型モデルでは、会話の開始と終了に特殊なトークンが設定されています。モデル毎にトークンの形式は異なるのでそれぞれで設定する必要があります。以下はMistral用の設定です。(設定しなくても動きます。)
Promptをタップ
以下の開始プロンプトを設定する
<s>[INST] {{prompt}} [/INST]
4-2. GPUとメモリの設定(任意)
高速化のため、以下の設定が推奨されています。
Prediction optionsをタップ
Metalを有効にする
(Metal: Apple Silicon用低レベルAPI。推論にGPUが使えるようになります。任意です。)MLockを有効にする
(モデルをメモリ内にロックでき、メモリマップ時にモデルがストレージに勝手にスワップアウトされないようになります。高速化の反面、メモリが足りないとクラッシュします。任意です。)
5.チャットしてみる
お疲れ様です。これでやっとオンデバイスでLLMを動かすことができます。
試しに機内モードにして、オフラインで動くことを確認してみましょう。
↓チャットの様子。GPT-4のような性能はないですが、手元で動くだけで楽しいです。機内モードで実行しています。
※スカイツリーは港区ではなく墨田区にあります。
番外編 Hugging Face上のモデルを使う
![](https://assets.st-note.com/img/1717430224951-bX8ufIzu4k.png?width=1200)
Gemma-7BやPhi-3など、GGUF形式で配布されているモデルであれば、実行できます。(RAMが足りれば。)
手順
1. Hugging Face上でgguf形式の好きなモデルをダウンロード
![](https://assets.st-note.com/img/1717430225337-lPWSKykQH4.png?width=1200)
2. LLMFarmの[import from file…]からインポート
iPhoneのストレージに保存した.guff拡張子のファイルを選択して、LLMFarm上で展開してください。
3. 完了
お疲れ様です。これでHugging Face上の好きなモデルをiPhone上で動かせます。
最後に
以上、参考になった方はいいねやコメント頂けると嬉しいです。
株式会社IZAIでは、自然言語処理・音声合成・ロボティクス技術の研究開発・サービス提供をしております。興味をお持ちいただいた方はお気軽にお問い合わせください。それではまた。