西川和久の不定期コラム
スマホローカルで動作し、画像も認識するLLM!Google「Gemma 3n」を試してみた
2025年6月17日 06:14
Gemma-3nとは?
去年(2024年)の10月にスマホで2Bもしくは3BのLLMを動かす記事を書いた。2023年頃だと、それなりのGPUを搭載したPCを使っても日本語は怪しい感じだったのに、スマホでは日本語も普通に使えるようになったので、驚かれた方も多いと思う。
そして今回ご紹介するのは、スマホローカルで動くマルチモーダルLLMだ。つまり、2025年は画像認識も可能になったということになる。
登場するモデルはGoogleのGemma-3n。名前から分かるようにGemma系のコンパクトでかつ画像認識(現在動画、音声認識は未対応のPreview版)もOKな新型だ。
英語の技術ページ、ここと、ここを参考にしつつざっくり特徴を書くと、
- 現在用意されているのはGemma-3n-E2BとGemma-3n-E4B
- テキスト、画像、音声、動画のマルチモーダル処理を可能
- テキスト、ビジュアル、オーディオ、およびレイヤーごとの埋め込み(PLE)パラメータの4つの主要グループに分類
- E2Bだと5B相当(E4Bだと8B相当)
- パラメータスキップ、PLEキャッシュという技術を使い、2B弱相当でメモリへロード(E4Bだと3B)
といった感じだ。まとめると、5B(E2B)および8B(E4B)相当のマルチモーダルLLMが、本来必要とするメモリ容量の半分以下で動く、というわけだ。先の記事で書いたモデルはマルチモーダルなし、リアル2Bまたは3Bパラメータ。同じメモリ容量でマルチモーダル対応、実際は5Bまたは8Bが動くことになる。
では早速試して見たい。
Androidスマホで動かしてみる!
試せる環境としてはGoogle AI Studioと、Google AI Edge。確認したところ、前者はテキストのみしか扱えないため、ちょっと面白みに欠ける。
後者の実態はこのページではなく、ここのリリースから最新版のapkをダウンロードし実行する。つまり現在Playストアにアプリはなく、サイドロードとなる(iPhone/iOSは近日対応)。この関係でAndroid端末側のセキュリティ関連をいくつかオフにする必要があるのだが、機種によっていろいろあるようなので、この記事では説明を省略する。
起動直後はモデルが端末になくダウンロードするため、Huggingfaceのアカウントが必要。持っていなければ事前に登録を済ませておく。
上の画面キャプチャの通り、ホームには「Ask Image」、「AI Chat」、「Prompt Lab」の項目が見える。Prompt LabはサンプルPromptがいくつか並んでいるだけなので、実際使用するのはAsk ImageとAI Chatだ。
Ask Imageには
- Gemma-3n-E2B-it-int4(3.14GB)
- Gemma-3n-E4B-it-int4(4.41GB)
AI Chatには
- Gemma-3n-E2B-it-int4
- Gemma-3n-E4B-it-int4
- Gemma-3n-1B-it q4
- Qwen2.5-1.5B-Instruct q8
が並んでいる。
AI ChatでGemma-3n-E2B-it-int4、Gemma-3n-E4B-it-int4を選んだ時はAsk Imageと同じ動作になるが、マルチモーダル未対応の残り2つを選んだ場合、普通のLLM Chatになるため分けているようだ。
今回試したスマホはGalaxy Z Flip 6。2024年版だが、今のところ最新機種となる。使ったモデルはより賢いGemma-3n-E4B-it-int4を選択。早速例をいくつか挙げたい。まず渋谷のスクランブル交差点の写真を認識させてみた。
回答:“これは日本の渋谷スクランブル交差点です。世界で最も交通量の多い交差点の一つとして有名で、特に朝の通勤時間帯には多くの人が行き交います。
画像からは、多くのビルに看板が掲げられており、活気あふれる商業地区であることがわかります。青空と街の喧騒が印象的な風景ですね。”
正解!さすがに渋谷スクランブル交差点は世界的にも有名なので知っているが、おそらく地方のローカルな場所だと知らないので、適当な答えになるはずだ。
次は失敗例。上の“桜丘カフェ”のサイトがあるか?と尋ねたところ、URLを表示したものの、実際そんなサイトはない(正解はこちら)。
ChatGPTなど、最近のクラウドLLMであればWeb検索もあるので、モデルが学習していない内容でも引っ張り出せるが、数Bでしかも米国製のLLMに日本ローカルなカフェのサイトなど元々知ってるはずがない。が、この“知ったかぶり”が困るところ(笑)。
アプリのオプションとして、設定と、ステータス表示がある。設定は、Max Tokenは4,096に固定、TopK、TopP、Temperature、CPU/GPU切り替えに対応する。デフォルトはCPU。GPUにすると(スマホにもよるだろうが)激遅くなった。
かかった時間は答えの左下に出るが、さらに詳しいステータスを見たい時にはShow statsをタップするといろいろ表示される。
なお、1回のトークで画像は1枚しかアップロードできない。このためほかの画像にしたい時には新規トークを始める必要がある。
最後に、一連の動きを動画にしたので速度などを確認してほしい。Gemma-3n-E4B-it-int4を使っているが、Gemma-3n-E2B-it-int4だともう少し速く推論する。
結構豪快に間違っている部分もあったり、「※ お肉・魚介類は……」、「アレルギーの……」は完全に作文になっているが(笑)、人が見ても厳しい状況なので、スマホのローカル処理でこれだけできれば合格、的な感じだろうか。
なお、スマホの録画機能で録画すると、CPUパワーの奪い合いになり、推論速度が大幅に落ちるため(=電力消費はそれなりにある)、今回はWindows 11のスマートフォン連携を使い、スマホを接続してWindows 11側で録画している。
余談になるが、WindowsやmacOSで実行する方法もあり、GitHubのこことなる。
上記をダウンロード。また使うモデルが少し異なり、拡張子が.taskではなく.litertlmが必要。こちらは以下からダウンロードしておく。
今回macOSで試したが、chmod +x litert_lm_main.macos_arm64と、セキュリティでこのファイルを実行OKにして起動する。
% ./litert_lm_main.macos_arm64 --model_path=gemma-3n-E4B-it-int4.litertlm --backend=cpu --input_prompt=\"hello\"
動作に適切なAndroidスマホが手元にない時は、肝心のマルチモーダル対応にはならないものの、一応試す方法はあるといったところか。
いかがだろうか?スマホローカル動作のマルチモーダルLLMでこれだけ画像認識ができればなかなか楽しめるのではないだろうか。加えて日本語で答えるのはもちろん、画像での日本語認識もOK。ローカル動作するためプライバシー面も安心、また通信できない環境でも利用できる。
今年(2025年)に入ってから、「Qwen3-30B-A3B-GGUF」など「MoE」と呼ばれる方式や今回のような方式で、パラメータすべてをメモリへロードせず、一部だけロードし、省メモリかつ高速化するケースが増えている。この手法だとスマホはもちろん、VRAM容量の少なめのGPUでも動作するためうれしい限り。今後もっといろいろ増えてほしいところだろうか!?
以上のようにGemma-3n-E2B-itとGemma-3n-E4B-itは、スマホローカルで動作するマルチモーダルLLMだ。現在プレビュー版のため、音声と動画認識は試せないものの、画像認識だけでもそれなりに使えることが分かった。速度もとりあえずこれだけ出れば実用レベルだろう。
ただ上記していないが、六本木の街並みをマンハッタンと言ってみたり、存在しないURLを羅列してみたり……と、ハルシネーションもかなりある。知らなければ知らないと答えてほしいところ。この辺りはネット検索と併用できるようになれば、今後もっと精度も上がるだろう。
とはいえ、2年前はGPU搭載のPCでも日本語が難しい状況だったのが、去年はスマホローカルでLLMが流暢な日本語で答えられるようになり、今年2025年はマルチモーダル対応と、年々凄まじく進化しているのが分かる。次の一手が楽しみと言えよう。