西川和久の不定期コラム

スマホでもローカルでLLMが動く時代!iPhone 16 Proで試してみた

 日本でのApple Intelligence対応は来年(2025年)。それまでiPhone 16 Proは単なるスマホか……と、残念がってても仕方ないので、iPhoneローカルでLLMを動かす方法を検索してみた。そして、3B程度ならサクサク動くことが判明した。今回はこの辺りの話をしてみたい。

スマホローカルでLLMは動くのか?

 これを検証する前に、PCではどうなのか?という疑問が湧くであろう。2023年3月に筆者が書いた記事では、GeForce RTX 3070 Ti (8GB)でopt-2.7bを使ったところ“日本語は認識するものの、ちゃんとした返事は期待できず、Interface modeのGoogle翻訳にチェック、内部的には英語で動作させる”との記述があった。

 最近は、元々の言語モデルが賢くなったり、量子化などを使って容量の低減が図られていたり、実行レベルでの最適化が行なわれていたりと、当時と比較していろいろ進化しているため、7Bや8B程度ならPC+GPUでそこそこ動くのだが、それにしてもこれをスマホで?と思うだろう。

 現行LLMで2Bや3Bを探してみると……。

といった感じで結構出ている。さらに日本語用にファインチューニングしたgemma-2-baku-2bなんてのも。4~8bit量子化版があり、ファイルサイズはざっくり2~3GB。これならスマホのストレージ内にも問題なく収まる。

 LLMが見つかったので、後は実行できるアプリを探す。開発環境を使ってアプリをiPhoneへ流し込んだり、TestFlight使ったり、結構面倒そうだったのだが、普通にApp Storeから無料でダウンロードできるものがあったのでそれを使ってみたい。

PocketPal AI

 見つけたアプリはPocketPal AIAndroid版もあったりする。

 使い方は簡単で、インストール後にモデル一覧から試したいモデルをダウンロード、ロードするとチャット可能な状態になる。また一覧にないものは、Safariなどからダウンロードして、それをインポートすることもできる。

 今回試したのは以下の2つ。どちらもファイルサイズは3GB未満なので、よほどストレージが少ない状態でない限り使えるハズだ。

 1.はPocketPal AIのモデル一覧に標準であり、「Download」→「Load」して使う。2.は上記のURLからダウンロードし、「+Local Model」でファイルから「Import」を選択する。また、2.はrinna / gemma-2-baku-2b-itの量子化版だ。rinnaの名前からも分かるようにgemma-2を日本語ファインチューンしたものとなる。

 では実際の手順と動いている様子、問いに対する返答などを以下に掲載する。

App StoreのPocketPal AI
モデル一覧
LLama-3.2-3B-Instruct-Q4-K_M_GGUFをダウンロード、LoadしてChat開始
日本語で問い合わせたところ日本語での返事
LLama-3.2-3B-Instruct-Q4-K_M_GGUFを使ってお題は“六本木の楽しみ方”。入力は音声で行なっている
Safariを使ってgemma-2-baku-2b-it-Q8_0.ggufをダウンロード
モデル一覧、+Local Modelでファイル指定
既に何か動いている時は「Offload」した後、「Load」する。gemma-2-baku-2b-it-Q8_0.ggufでチャット開始
日本語で問い合わせたところもちろん日本語での返事
gemma-2-baku-2b-it-Q8_0.ggufを使ってお題は同じく“六本木の楽しみ方”
Q: 六本木の楽しみ方

▼LLama-3.2-3B-Instruct-Q4-K_M_GGUF

A: 六本木は、東京の神奈川県で世界的に有名な観光地です。六本木の楽しみ方について、以下はご紹介します。

1. **六本木の海水浴び**: 六本木海水浴びは、夏の休みに人気のスポットです。六本木海水浴び場は、美しい海岸線と清澈な海水が特徴です。

2. **六本木の散策**: 六本木には、美しい庭園や公園が多数あります。六本木の散策は、自然に触れ合うことができます。

3. **六本木の食事**: 六本木には、多くのレストランやカフェがあります。六本木の食事は、美味しい海鮮料理や、西洋風の料理が特徴です。

4. **六本木のショッピング**: 六本木には、多くのショッピングモールや小売店が並んでいます。六本木のショッピングは、最新のファッションやデジタル機器を買うことができます。

5. **六本木の夜景**: 六本木の夜景は、美しい光景です。六本木の夜景は、映画や写真撮影のスポットとしても有名です。

6. **六本木の映画館**: 六本木には、多くの映画館があります。六本木の映画館は、最新の映画を観ることができます。

7. **六本木のエンターテイメント**: 六本木には、多くのエンターテイメントスポットがあります。六本木のエンターテイメントは、live musicやコンサートを楽しむことができます。

これらの楽しみ方は、六本木を訪れる際に楽しめます。

▼gemma-2-baku-2b-it-Q8_0.gguf

A: 六本木といえば、おしゃれなレストランやバー、美術館、そして大型の商業施設など、様々な楽しみ方ができるエリアですよね!

どんな楽しみ方をしたいか、教えてください。

例えば、

* 夜景を一望できるレストランでディナー

* 最新の展示を見たいなら、森美術館や東京ミッドタウン

* ショッピングやカフェ巡りをしたいなら、六本木ヒルズや六本木一丁目

* アートな雰囲気を味わいたいなら、森美術館や東京都現代美術館

など、目的や興味に合わせてプランを立てられますよ!

あなたにとっての六本木での最高な過ごし方、教えてください!

 いかがだろうか?LLama-3.2-3B-Instruct-Q4-K_M_GGUFはいきなり“六本木は、東京の神奈川県”と言ってみたり“*六本木の海水浴び”だったり、めちゃくちゃだが、文章的にはちゃんとしていることが分かる。

 また、後者を「英語に翻訳して」と指示すると、

Let's talk about the fun things to do in Roppongi, Tokyo!

Roppongi is a trendy area with a lot of options for dining, bars, art museums, and large commercial spaces.

To make the most of your time, tell me what you'd like to experience.

For example, do you want to:

* Have dinner with a view of the cityscape at a restaurant?

* Check out the latest exhibit at the Mori Art Museum or the Tokyo Midtown?

* Shop and enjoy cafes in Roppongi Hills or Roppongi 1-chome?

* Immerse yourself in the artistic atmosphere of the Mori Art Museum or the Museum of Contemporary Art, Tokyo?

What kind of experience are you looking for in Roppongi?

Let me know your preferences and I'll create a fun plan for you.

という感じになり、筆者より遥かに英語は達者だ(笑)。

 gemma-2-baku-2b-it-Q8_0.ggufは、日本語ファインチューニング、そしてrinnaだけあって、文体は口語調だったりするが、さすがに内容は正しく、2Bでここまで!?的なちょっとした凄みがある。ある意味、完全に実用レベルだろう。

 1年半ほど前だとPC+GPUで日本語の扱いすら七難八苦していたのに対して、1年半後の現在、Phone 16 Proで2Bや3BのLLMが悠長な日本語を話している。驚くべき進化と言えよう。

 ただし、LLama-3.2-3Bでも分かるように、2Bや3Bと規模が小さい場合、知的レベルは期待できない。間違ったり嘘言ったりは当たり前となる。とはいえ、ここまで普通に日本語で話せるのは、前を知っているだけに、ちょっとしたカルチャーショック(笑)。

ほかのiPhoneやAndroidで動く?

 iPhone 16 Proで2Bや3BクラスのLLMが結構動くことは分かったものの、皆が皆、iPhone 16 Proを持っているハズもなく、前世代の機種ではどうなるのか?が気になるところ。

 残念ながらこのテストをする前にiPhone 13 Proを下取りに出したため、手元で試す手段がない。Xで見かけたのはiPhone 15 ProがiPhone 16 Proより少し遅い感じで動いている動画。iPhone 15 ProはApple Intelligence対応機種なのでまぁ動くのは分かっていた。

 ではApple Intelligence非対応のiPhone 13系14系はどうなのか?Facebookで筆者の友人にお願いしたところ、14 Pro(Max)はそこそこ動く(ただしMetal ONなどができない)、iPhone SE(第3世代)=iPhone 13系は、激遅いものの動くことは動く……との話だった(どちらもLlama-3.2-3b-q8使用)。つまりiPhone 14 Proがギリギリライン。意外とハードルは低い?感じだ。

Galaxy Z Flip 6で動作中のPocketPal

 Androidに関してはGalaxy Z Flip 6 (Snapdragon 8 Gen 3 for Galaxy/12GB)が手元にあるので試したところ、iPhone 16 Proと同レベルで動作した。最後の比較動画を参考にしてほしい。

雑談:昨今のLLMは……

 余談になるが、筆者がChatGPTなどクラウド系のLLMを使わないのは、生成AI画像用プロンプト(Prompt)作成時、肌色過多系の指示が利用規約違反で通らないのが主な理由だ。もちろんプログラミングは大した事聞かないので、ローカルで十分という話もあるし、毎日使う分けでもない割にはコストが……もある。

 ところが最近のLLMは内部に検閲が入ってるケースが多く、肌色過多系の話をすると弾かれるようになった。これではローカルでLLMをしている意味がなく、どうしたものか?と思っていたところ、Tiger-Gemma-9B-v3というのをXで見かけ、試したが非常に調子いい。何を聞いても弾かれない(笑)。

 このLLM自体は名前からも分かるように、google / gemma-2-9bの検閲解除版モデルとなる。性能自体はgemma-2-9bと変わらない?のでなかなかのもの。LM Studio(API) → Open WebUI 経由で使っているがいい感じで動いている。もし同じ問題?を抱えている人がいたらぜひ試してほしい。

 試しにPocketPal AIでロードしたところ、途中でアプリが落ちた。さすがに9Bは厳しいか……。


 話戻って、以下がiPhone 16 Pro(左)と、Galaxy Z Flip 6(右)で競争した動画となる。速度的には22.41 tokens/sec.と、15.52 tokens/sec.とチャットの最後に表記されている。

LLama-3.2-3B-Instruct-Q4-K_M_GGUFを使ってお題は“六本木の楽しみ方”で、iPhone 16 Pro(左)と、Galaxy Z Flip 6(右)で競争。若干iPhone 16 Proの方が速い?

 上記のiPhone 14 Pro(Max)は10.87 tokens/sec.。iPhone 16 Proの約半分となる。参考までに初代M1搭載iPad Pro 12.9だと22.90 tokens/sec.、M1 Pro搭載MacBook Pro 14だと21.51 tokens/sec.(ただしエミュレータ経由なのでオーバーヘッドがあると思われる)と、ほぼiPhone 16 Proと同じだ。恐るべしiPhone 16 Pro(笑)。

 以上、iPhoneローカルで2~3BのLLMを動かしてみた。去年と比較してLLMのレベルがグンと上がっており、3Bだから……的なものは(知識レベルはともかくとして)なく、それなりに遊べ、日本語のままで普通に会話できる。

 つまり、2024年は3B=スマホ、8B=一般的なGPU搭載PC、それ以上はクラウド……という感じだろうか。現在筆者は、LM Studio(API)→Open WebUIで、Meta-Llama-3.1-8B-Instruct-Q8_0.ggufを使い、主にプログラミング関係を聞いているが、8Bだからと特に困ることはない。たまに確認でClaude(無料枠)を併用する程度。

 数年後、スマホやLLMのレベルが上がり、8Bがスマホで動き出すと、これと同じことがスマホでできるようになると思うとワクワクしかない。凄い時代になったものだ!