Google の
LLM ライブラリ を
Android アプリで
使うには?
Tokyo
Takahiro Menju
Google Developers Expert for Android
Slide 2
Slide 2 text
Androidで使える
GoogleのLLMの
ライブラリ、
何個あるか知ってます
か?
Generated by Google’s Imagen 3 via Gemini
Slide 3
Slide 3 text
Androidで使えるGoogleのLLMライブラリ
Google AI
Client SDK
MediaPipe
Tasks Inference
API
Vertex AI in
Firebase
Gemini Nano
with the Google
AI Edge SDK
LiteRT (元
TensorFlowLite)
Slide 4
Slide 4 text
とりあえず、どんな感じ
かコードを見てみましょ
う
Generated by Google’s Imagen 3 via Gemini
Slide 5
Slide 5 text
コード例: MediaPipeでの例
Slide 6
Slide 6 text
コード例: MediaPipeでの例
TopKなどのオプション
Slide 7
Slide 7 text
コード例: MediaPipeでの例
TopKなどのオプション
プロンプト
Slide 8
Slide 8 text
コード例: MediaPipeでの例
TopKなどのオプション
プロンプト
Slide 9
Slide 9 text
コード例: Vertex AI in Firebaseでの例
Slide 10
Slide 10 text
コード例: Vertex AI in Firebaseでの例
TopKなどのオプション
プロンプト
Slide 11
Slide 11 text
プロンプトを渡したり、
TemperatureやtopK、
topPなどは
ほぼ一緒!?
Generated by Google’s Imagen 3 via Gemini
Slide 12
Slide 12 text
LLMのライブラリでのよくある設定たち
Slide 13
Slide 13 text
Temperatureや
topK、topPって
なんだろう?
Generated by Google’s Imagen 3 via Gemini
Slide 14
Slide 14 text
ライブラリを一つずつ見
ていく前に
知っておいても
いいかも!
Generated by Google’s Imagen 3 via Gemini
Slide 15
Slide 15 text
どうやって
Temperatureや
topK、topPが使われ
るのか
調べてみよう
Generated by Google’s Imagen 3 via Gemini
渡すパラメーターの、
Temperature
などは分かった!
Generated by Google’s Imagen 3 via Gemini
Slide 45
Slide 45 text
けど、同じパラメーターを
渡せるなら、
どのライブラリを使っても
いいの?
Generated by Google’s Imagen 3 via Gemini
Slide 46
Slide 46 text
Androidで使えるGoogleのLLMライブラリ
Google AI
Client SDK
MediaPipe
Tasks Inference
API
Vertex AI in
Firebase
Gemini Nano
with the Google
AI Edge SDK
LiteRT (元
TensorFlowLite)
Slide 47
Slide 47 text
Androidで使えるGoogleのLLMライブラリ
On device Cloud
Google AI
Client SDK
MediaPipe
Tasks Inference
API
Vertex AI in
Firebase
Gemini Nano
with the Google
AI Edge SDK
LiteRT (元
TensorFlowLite)
Slide 48
Slide 48 text
On device と Cloud の違いは?
On device
● サーバーにデータを送信しないた
めプライバシーに配慮できる
● 即時に実行されて速くなりえる
● オフラインで動く
● API利用料など追加コストが発生し
ない
On deviceとCloudは
なんとなく
わかったけど、
ライブラリごとに
違いはないの?
Generated by Google’s Imagen 3 via Gemini
Slide 51
Slide 51 text
一つずつ見てみよう
Generated by Google’s Imagen 3 via Gemini
Slide 52
Slide 52 text
Gemini Nano with the Google AI Edge SDK(1/2)
https://developer.android.com/ai/gemini-nano より
Google AI Edge SDKを
アプリで使い
Android OSにある
AICoreにアクセスする。
AICoreがGemini Nanoや
ハードウェアとの連携を行
う。
Gemini NanoはGoogle
のLLMをOn deviceで実
現できる軽量モデル
Slide 53
Slide 53 text
Gemini Nano with the Google AI Edge SDK(2/2)
Gemini Nano with
the Google AI
Edge SDK
強み 注意が必要な点
AI CoreというAndroid OSに
搭載された仕組みを使う。
● モデルのダウンロードなどの
管理をOSに任せられる
● ライブラリステータスが実験的
○ Pixel 9 シリーズでしか動かない (このために
買いました)
○ ユーザーの合意が必要
● 現状、SDKのインターフェースとしては
Text to Textのみ対応
On device
Google AI Client SDK
強み 注意が必要な点
GeminiのAPIを直接呼び出す
● シンプルにGeminiのAPIを呼び出せる
● マルチモーダルインプットや
JsonSchemaへの対応、
FunctionCallingなど進んだ機能が利用
できる
● APIキーの盗難のリスク
● プロトタイプのみにおすすめ
Google AI Client
SDK
Cloud
Slide 57
Slide 57 text
Vertex AI in Firebase
強み 注意が必要な
点
Firebaseを使ってGoogleのGemini
APIへのアクセスができる
● 安定している。 GA (Generally Available)
● マルチモーダルインプットやJsonSchemaへの
対応、FunctionCallingなど進んだ機能が利用
できる
● 直接GeminiのAPIキーなどを持つ形ではない
ため、比較的セキュリティリスクが低い
● セキュリティの面からFirebase
App Checkと一緒に使うことが
推奨
Cloud
Vertex AI in
Firebase
Slide 58
Slide 58 text
さまざまなライブラリたち
があるけど、
まとめると?
Generated by Google’s Imagen 3 via Gemini
Slide 59
Slide 59 text
ライブラリたちをまとめると
項目
Gemini Nano with Google
AI Edge SDK
MediaPipe Tasks Inference
API LiteRT (旧TensorFlow Lite) Google AI Client SDK Vertex AI in Firebase
AIタイプ オンデバイス オンデバイス オンデバイス クラウド クラウド
ステータス
Experimental(実験的)、
ユーザーの合意が必要。
Experimental(実験的)、開
発中
最近名前が変わったが昔から
ある。LLM対応の事例少。
プロトタイプのみ利用可
能
Generally Available(利用
可能)
モデル Gemini Nano
オープンモデル(Gemma,
Llamaなど) オープンモデル Geminiモデル Geminiモデル
モーダリティ Text to Text
Text to Text、Text to Image
など Text to Textなど
Text to Text、Image &
Text to Text
Text to Text、Image & Text
to Text
その他の機能
OS管理でモデルのダウン
ロード/管理が簡単
LoRAサポート、モデルパス設
定可能、(顔認識などその他の
機械学習機能)
モデルの最適化・変換対応、
(顔認識などその他の機械学習
機能)
JSON出力サポート、API
キー必要 JSON出力サポート
対応デバイス Pixel 9シリーズのみ対応
minSdkVersion
24(Android 7.0以上)、8GB
以上のRAM推奨 不明 ほぼ全デバイス ほぼ全デバイス
プライバシーと
セキュリティ
オンデバイス処理によるプラ
イバシー保護
オンデバイス処理によるプライ
バシー保護
オンデバイス処理によるプライ
バシー保護
APIキー盗難、悪用リス
クあり
Firebase利用でセキュア
(Firebase App Checkとの
併用が推奨されている
)
API利用料 なし なし なし あり あり
Slide 60
Slide 60 text
つまり、
どうしていくべき
なんだろう?
Generated by Google’s Imagen 3 via Gemini
Slide 61
Slide 61 text
考えること
● 現状はOn device AIは実験的なものが多い。
○ ただ、プライバシーが尊重できるなどは魅力的。
● 現状はAndroidのGoogleのライブラリでは Cloudでは
Vertex AI in Firebase一択になりそう。
● ただ、GCP, AWSとかクラウドサーバーとかからアクセ
スしても良い かも?
(1)Cloud AIの選択から始める
他のクラウドサーバー
● 自由度が高い
○ OpenAIなどの別の
LLMを呼び出したり、
RAGを使うなど高度
なカスタマイズが可
能。
Vertex AI in Firebase
● 初期のセットアップ、継
続的なメンテナンスが比
較的少ない。
● 自動でスケールしてくれ
る。
OR
Slide 65
Slide 65 text
(1)Cloud AIの選択から始める
他のクラウドサーバー
● 自由度が高い
○ OpenAIなどの別の
LLMを呼び出したり、
RAGを使うなど高度
なカスタマイズが可
能。
Vertex AI in Firebase
● 初期のセットアップ、継
続的なメンテナンスが比
較的少ない。
● 自動でスケールしてくれ
る。
OR
→どっちが合っているかは場合による
Slide 66
Slide 66 text
例えばFirebaseであれば、直接FirebaseのAPIをアプリ内の
さまざまな場所で触らず、
DataSourceなどのクラスにまとめ、分離しておく。
アプリの実装
(2)On deviceに置き換え可能にする
Cloud AIを使う
DataSourceクラス
FirebaseなどのCloud
AI
On device AI
処理をまとめることで、
後からオンデバイスに
切り替えできるようにしておく。
On device
AIが安定
Slide 67
Slide 67 text
どうしていくべきか? まとめ
Vertex AI in Firebaseか
クラウドサーバーかを選
ぶ
Vertex AI in Firebase
を導入する
クラウドサーバーで
実装
On deviceに置き換え可
能なようにアプリを実装す
る
置き換え可能なものは
On deviceに置き換え
On device
AIが安定
○ 初期のセットアップ楽、
継続的なメンテナンス少
○ 自動スケール
○ 自由度が高い
Slide 68
Slide 68 text
参考情報
1. Temperature, TopKなどの変更などを試せるコード
a. Python計算コード
i. https://gist.github.com/takahirom/448d2c1e3abb0f76a9bbe4b2983052e7
b. Kotlinでの計算コード
i. https://gist.github.com/takahirom/6ec47fb00ab3fcc8289f281a3fc912cc
c. こちらのリンクでは Web上で、これから説明する Temperatureなどを変更したり、数式の
コードなどを確認することができます。
i. https://pl.kotl.in/KBMhIIdWR
2. 各種ライブラリへのリンク
a. Qiita: Androidで利用できるGoogleのLLMライブラリを比較する
i. https://qiita.com/takahirom/items/c3a57b386de3900f5a51