モバイル アクション用に FunctionGemma 270M をファインチューニングする

概要

Mobile Actions は、ユーザーが音声入力またはテキスト入力からデバイスでアクションをトリガーできるデモアプリです。アシスタントのインタラクションを完全にオフラインの機能として再構築します。「明日のランチの予定を作成して」、「ジョンを連絡先に追加して」、「ライトをオンにして」など、モデルは自然言語を解析し、コマンドを実行する正しい OS ツールを特定します。

このガイドでは、次の方法について説明します。

  1. Mobile Actions データセットを使用して FunctionGemma 270M モデルをファインチューニングする
  2. カスタマイズしたモデルを Google AI Edge ギャラリーにデプロイする

モデルのファインチューニングからデバイスへのデプロイまで、エンドツーエンドで学習できます。

ステップ 1: モバイル アクション データセットを使用して FunctionGemma をファインチューニングする

FunctionGemma は、Gemma 3 アーキテクチャに基づく 2 億 7,000 万パラメータ モデルです。関数呼び出し専用にトレーニングされているため、自然言語のリクエストを関数呼び出しに変換できます。

このモデルは、モバイル デバイスで実行できるほど小さく効率的ですが、このサイズのモデルでは一般的であるように、実行するタスクに特化させるためにファインチューニングが必要です。

FunctionGemma をファインチューニングするために、Hugging Face で一般公開されている Mobile Actions データセットを使用します。このデータセットの各エントリには、次の情報が提供されます。

  • モデルが使用できるツール(関数)のセット:
    1. ライトをオンにする
    2. ライトをオフにする
    3. スマートフォンの連絡先リストに連絡先を作成する
    4. メールを送信します
    5. 地図上に位置情報を表示する
    6. Wi-Fi 設定を開きます
    7. 新しいカレンダーの予定を作成します
  • 現在の日時などのコンテキストを提供するシステム プロンプト
  • ユーザー プロンプト(turn on the flashlight など)。
  • 適切な関数呼び出しを含む、想定されるモデル レスポンス。

地図を表示する関数は次のようになります。

{
  "function": {
    "name": "show_map",
    "description": "Shows a location on the map.",
    "parameters": {
      "type": "OBJECT",
      "properties": {
        "query": {
          "type": "STRING",
          "description": "The location to search for. May be the name of a place, a business, or an address."
        }
      },
      "required": [
        "query"
      ]
    }
  }
}

Colab ノートブックでは、次の手順を含む必要な手順をすべて説明します。

  • 環境の設定
  • モバイル アクション データセットの読み込みと前処理
  • Hugging Face TRL を使用してモデルをファインチューニングする
  • デプロイ用にモデルを .litertlm 形式に変換する

前提条件: ステップ 1 で .litertlm ファイルを保存したときに使用した Google アカウントと同じアカウントが必要です。また、そのアカウントで Android スマートフォンにログインしている必要があります。

ファインチューニング後、モデルの重みを .litertlm 形式に変換して量子化します。

Load Model を選択し、Google ドライブ(または別の配布方法)から選択することで、モデルを Google AI Edge Gallery - Mobile Actions オプションにデプロイできます。Google AI Edge ギャラリーは Google Play ストアで入手できます。

Google AI Edge ギャラリーの Mobile Actions Finetune Challenge Google AI Edge ギャラリーのモバイル アクション タスク

これで、音声コマンドを発行するか、アプリに入力して、新しいファインチューニング モデルが利用可能な関数を呼び出すパフォーマンスを確認できます。

次のステップ

おめでとうございます!これで、Hugging Face でモデルをファインチューニングし、LiteRT-LM を使用してオンデバイスでデプロイする方法を理解できました。