AIが「話す」から「実行する」時代へ
これまでのAIチャットボットはユーザーの質問に答えることに特化していました。しかし、AIの真の価値はモデルが世界を説明するだけでなく、直接インタラクションするときに発揮されます。その中核メカニズムがTool-use(ツール使用)、すなわち関数呼び出し(Function Calling)です。モデルが自然言語コマンドを解析し、「地図アプリでサンフランシスコ空港を表示して」といったリクエストを実際のOSアプリインテントに変換して実行します。
問題は、このすべての処理をオンデバイス(端末内)で行うことが技術的に非常に難しい点です。従来の関数呼び出しは大規模言語モデル(LLM)を必要とし、モバイル端末のメモリとバッテリーの制限をはるかに超えていました。Googleが今回発表したGoogle AI Edge Galleryアプリのアップデートは、この壁を打ち破りました。
参考資料: 本記事はGoogle公式開発者ブログの発表内容を基に作成しています。
主要デモ:Mobile Actions & Tiny Garden
Mobile Actions – 完全オフラインアシスタント
Mobile ActionsデモはFunctionGemmaを活用して、アシスタントの操作を完全にオフラインで実現します。モデルは以下のような自然言語コマンドを解析し、適切なOSツールやアプリインテントを特定します。
- 「地図でサンフランシスコ空港を表示して」→ 地図アプリ起動&位置検索
- 「明日の午後2時30分に料理教室のカレンダーイベントを作成」→ カレンダーアプリに予定追加
- 「懐中電灯をつけて」→ システムの懐中電灯トグル
Tiny Garden – カスタムアプリロジックの可能性
Tiny Gardenはユーザーが音声コマンドで仮想の菜園を管理するミニゲームです。「上の列にひまわりを植えて水をやって」というコマンドがplantCropやwaterCropといった特定のアプリ関数に分解されて実行されます。これは270Mパラメータの小型FunctionGemmaモデルでも、サーバーを介さずに複雑なカスタムゲームロジックを処理できることを示しています。
iOS対応:クロスプラットフォームへの拡張
GoogleはAndroidアプリに加えて、iOS用のGoogle AI Edge GalleryもApp Storeにリリースしました。これによりiOS開発者もマルチターンAIチャット、画像クエリ(Ask Image)、オーディオスクライブ(ローカル音声認識)など、同じオンデバイス機能を活用できます。特にMobile ActionsとTiny GardenデモがAppleハードウェアでもスムーズに動作する点が印象的です。
これはGoogle AI Edgeスタックの統合されたパフォーマンスによるものです。オンデバイス性能、プライバシー、オフライン信頼性をすべてのモバイルプラットフォームで同等に提供するというGoogleの意志が感じられます。
パフォーマンスベンチマーク:Pixel 7 Proで1916 tokens/sec
実際の速度を体感したいなら、Galleryアプリ内でベンチマークを実行できます(Android対応、iOSは近日対応予定)。Mobile Actionsデモ基準、Pixel 7 Pro CPUでのパフォーマンスは驚くほど高速です。
- Prefill(入力処理): 1916 tokens/sec
- Decode(出力生成): 142 tokens/sec
この数値は、オンデバイスAIがリアルタイムインタラクションに十分使用可能であることを証明しています。
独自のローカルエージェント構築
デモにインスピレーションを受けたなら、FunctionGemmaモデルをファインチューニングし、アプリに関数呼び出しを実装できます。GoogleはGoogle AI Edgeのクロスプラットフォーム機能を基に、開発者向けドキュメントとサンプルコードを提供しています。
日本開発コミュニティでの適用コンテキスト
日本のモバイルアプリ開発では、地下鉄や山間部などネットワークが不安定な環境でのユーザー体験が課題になることが多いです。オフラインで動作するアシスタント機能は、差別化されたUXを提供できます。また、FunctionGemmaの小型モデルサイズ(270M)は、リソースの限られたスタートアップでも導入しやすいメリットがあります。ただし、日本語の自然言語処理性能はまだ英語に比べて検証が十分ではないため、実際のサービス適用前に日本語データでの追加ファインチューニングが必要になるでしょう。
本技術の限界または注意点
- モデルサイズ vs 精度のトレードオフ: 270Mモデルは軽量ですが、複雑なコマンドや曖昧な表現ではエラー率が高くなる可能性があります。
- バッテリー消費: 継続的なオンデバイス推論はバッテリー寿命に影響を与える可能性があります。Googleは最適化を強調していますが、実際の使用パターンによって差が出ることがあります。
- アプリインテントの制限: 現時点ではOS標準アプリといくつかのデモアプリに限定されています。サードパーティアプリとの連携には追加作業が必要です。
次のステップ学習方向
- FunctionGemmaモデルファインチューニングガイド – 公式ドキュメントを参照して独自の関数呼び出しモデルを作成しましょう。
- Google AI Edge SDKの探索 – AndroidとiOSの両方をサポートするSDKを活用して実際のアプリに統合してみましょう。
- オンデバイスAIセキュリティ – ローカルで実行されるとはいえ、機密性の高いコマンドが悪用されないよう入力検証ロジックを設計することが重要です。
結論:オンデバイスAIの新しい章
Google AI Edge Galleryは単なるデモアプリを超えて、オンデバイス関数呼び出しの実現可能性を示す重要なマイルストーンです。1916 tokens/secの高速処理、iOSへの拡張、そして270Mモデルでも可能な複雑なアプリロジックは、今後のモバイルAIの方向性を明確に示しています。
合わせて読みたい記事
今すぐGoogle AI Edge Galleryをダウンロードして、自分だけのローカルエージェントを作りましょう。Happy Coding!

コアコード例:FunctionGemmaを使った関数呼び出し実装
以下はFunctionGemmaモデルを使用して自然言語コマンドをアプリ関数にマッピングする簡単な例です。このコードはGoogle AI Edge SDKをベースにしています。
# FunctionGemmaを使用したオンデバイス関数呼び出し例
# Google AI Edge SDKが必要 (pip install google-ai-edge)
from google_ai_edge import FunctionGemma
from typing import Dict, Any
# 1. 利用可能な関数を定義(アプリインテント)
app_functions = {
"open_map": {
"description": "地図アプリを開き、特定の場所を表示します",
"parameters": {
"location": {"type": "string", "description": "表示する場所の名前"}
}
},
"create_calendar_event": {
"description": "カレンダーに新しい予定を追加します",
"parameters": {
"title": {"type": "string"},
"time": {"type": "string", "description": "HH:MM形式"},
"date": {"type": "string", "description": "YYYY-MM-DD形式"}
}
},
"toggle_flashlight": {
"description": "懐中電灯をオン/オフします",
"parameters": {}
}
}
# 2. モデル初期化(270Mパラメータ軽量モデル)
model = FunctionGemma.from_pretrained("google/functiongemma-270m")
# 3. 自然言語コマンドを関数呼び出しに変換
def parse_command(user_input: str) -> Dict[str, Any]:
"""ユーザー入力を解析し、呼び出す関数と引数を返します"""
result = model.predict_function_call(
prompt=user_input,
available_functions=app_functions
)
return result
# 4. 実行例
if __name__ == "__main__":
commands = [
"地図でサンフランシスコ空港を表示して",
"明日の午後2時30分に料理教室のカレンダーイベントを作成",
"懐中電灯をつけて"
]
for cmd in commands:
func_call = parse_command(cmd)
print(f"コマンド: {cmd}")
print(f"呼び出し関数: {func_call['function_name']}")
print(f"引数: {func_call['arguments']}")
print("-" * 40)
実行結果例:
コマンド: 地図でサンフランシスコ空港を表示して
呼び出し関数: open_map
引数: {'location': 'サンフランシスコ国際空港'}
----------------------------------------
コマンド: 明日の午後2時30分に料理教室のカレンダーイベントを作成
呼び出し関数: create_calendar_event
引数: {'title': '料理教室', 'time': '14:30', 'date': '2025-04-11'}
----------------------------------------
コマンド: 懐中電灯をつけて
呼び出し関数: toggle_flashlight
引数: {}
この例はFunctionGemmaがどれだけ簡単にアプリ関数呼び出しを予測できるかを示しています。実際のアプリでは、この結果を受け取ってAndroidインテントやiOSアクティビティに接続します。

オンデバイス関数呼び出しのメリット・デメリット比較
| 項目 | オンデバイス(Google AI Edge) | クラウドベース(GPT-4等) |
|---|---|---|
| レイテンシ | 非常に低い(ミリ秒単位) | ネットワーク遅延発生(数百ms〜数秒) |
| オフライン動作 | 可能 | 不可能 |
| プライバシー | データが端末外に出ない | サーバーへのデータ送信が必要 |
| モデルサイズ | 270M〜2Bパラメータ | 100B+パラメータ |
| 精度(複雑なコマンド) | 比較的低い | 高い |
| バッテリー消費 | 中程度(継続的推論時) | 低い(ネットワーク通信のみ) |
| コスト | 無料(端末リソース使用) | API呼び出しコスト発生 |
| アップデート頻度 | アプリアップデートが必要 | サーバー側で即時アップデート可能 |
注意点
FunctionGemmaは軽量モデルであるため、曖昧な表現や複合コマンドでエラーが発生する可能性があります。例えば「明日の朝7時にアラームをセットして、8時にコーヒーショップに行く途中でクリーニング屋に寄って」のような複数指示は分解が難しい場合があります。そのような場合は、コマンドを単純化するか、ユーザーに追加入力を促すUX設計が必要です。
また、日本語サポートはまだ初期段階です。英語コマンドに比べて日本語の自然言語処理性能が劣る可能性があるため、日本語データでファインチューニングしたモデルを使用するか、コマンドを英語で受け付けるハイブリッド方式を検討してみてください。

まとめ:今すぐ始めましょう
Google AI Edge GalleryはオンデバイスAIの可能性を実際に体験できる完璧なツールです。本記事で紹介したMobile ActionsとTiny Gardenデモを実際に動かし、FunctionGemmaモデルのパフォーマンスをベンチマークしてみてください。
次のステップアクションアイテム:
- Google AI Edge Galleryをダウンロード(Android / iOS)
- 公式ドキュメントでFunctionGemmaファインチューニングガイドを確認
- 簡単なアプリプロトタイプに関数呼び出し機能を統合してみる
オンデバイスAIは単なるトレンドではなく、モバイルアプリ開発の新しいパラダイムです。今始めれば競争で一歩先を行けます。
合わせて読みたい記事