googleFunctionGemma:実行&ファインチューニング

FunctionGemma をローカルのデバイスや携帯電話で実行およびファインチューニングする方法を学びます。

FunctionGemmaは、関数呼び出しとファインチューニング向けにGoogleが設計した新しい270Mパラメータのモデルです。ベースは Gemma 3 270Mで、テキストのみのツール呼び出し向けに特化して訓練されており、小さなサイズのため自分の携帯電話での展開に適しています。

フル精度モデルを次で実行できます: 550MBのRAM (CPU)および、今は ファインチューン Unslothでローカルに実行できます。デイゼロサポートのためにGoogle DeepMindがUnslothと協力してくれたことに感謝します!

実行チュートリアルFunctionGemmaのファインチューニング

無料ノートブック:

⚙️ 使用ガイド

Googleは推論のために次の設定を推奨しています:

  • top_k = 64

  • top_p = 0.95

  • temperature = 1.0

  • 最大コンテキスト長 = 32,768

チャットテンプレートの形式は以下を使用したときに見られます:

def get_today_date():
    """ 今日の日付を取得する """
    return {"today_date": "2025年12月18日"}
    
tokenizer.apply_chat_template(
    [
        {"role" : "user", "content" : "今日の日付は何ですか?"},
    ],
    tools = [get_today_date], add_generation_prompt = True, tokenize = False,
)

FunctionGemmaのチャットテンプレート形式:

circle-info

FunctionGemmaはsystemまたは developerメッセージを として あなたは以下の関数で関数呼び出しができるモデルです Unslothバージョンにはこれが組み込み済みの場合があるので、渡し忘れた場合は、ぜひ unsloth/functiongemma-270m-it を使用してくださいarrow-up-right

🖥️ FunctionGemmaを実行する

以下にローカルデスクトップガイドを示します。あるいはPhone Deployment Guideをご覧ください。

Llama.cpp チュートリアル(GGUF):

llama.cppでの実行手順(ほとんどのデバイスに収めるために4ビットを使用します):

1

最新の llama.cppGitHub で入手arrow-up-rightできます。下のビルド手順に従うこともできます。変更してください -DGGML_CUDA=ON から -DGGML_CUDA=OFF GPU がない場合や CPU 推論のみを行いたい場合は。

2

Hugging Faceから直接プルすることができます。モデルが非常に小さいため、量子化していないフル精度のBF16バリアントを使用します。

3

(以下をインストールした後に)モデルをダウンロードします pip install huggingface_hub hf_transfer )。量子化バージョンとして選べます BF16 あるいは他の量子化バージョン(ただしモデルサイズが小さいため4ビット以下にすることは推奨されません)を使用できます。

4

次にモデルを会話モードで実行します:

📱 電話への展開

その小さなサイズにより、FunctionGemmaは携帯電話上でも実行および展開できます。PyTorchと協力して、量子化対応トレーニング(QAT)を使用して70%の精度を回復し、エッジデバイスへ直接展開するための効率化されたワークフローを作成しました。

  • FunctionGemmaをローカルに展開する先: Pixel 8 および iPhone 15 Pro 約50トークン/秒の推論速度を得られます

  • プライバシー重視、即時応答、オフライン機能を得る

  • 当社の 無料のColabノートブックarrow-up-right でQwen3 0.6Bをファインチューニングして携帯展開用にエクスポートできます — 単にGemma3に変更し、次の手順に従ってください: Gemma 3 Executorchのドキュメントarrow-up-right.

📱Run LLMs on your Phonechevron-right

携帯電話での展開に関するiOSとAndroidのチュートリアルを表示:

appleiOSチュートリアルandroidAndroidチュートリアル

🦥 FunctionGemmaのファインチューニング

Googleは次の点に注意しました: FunctionGemmaはファインチューニングすることを意図している 特定の関数呼び出しタスク、マルチターンのユースケースを含めて。Unslothは現在FunctionGemmaのファインチューニングをサポートしています。私たちは2つのファインチューニングノートブックを作成し、モデルを介してどのように訓練できるかを示しています: フルファインチューニングまたはColabノートブックを通じた無料のLoRA:

の中で ツール呼び出し前に推論するファインチューニングノートブックarrow-up-right私たちは 関数呼び出しの前に「思考/推論」するようにファインチューニングします。ツール使用能力を向上させるために連鎖思考(チェイン・オブ・ソート)はますます重要になっています。

FunctionGemmaは関数呼び出しに特化した小さなモデルです。独自のチャットテンプレートを使用します。ツール定義とユーザープロンプトが与えられると、構造化された出力を生成します。次にこの出力を解析してツールを実行し、結果を取得して最終的な応答を生成できます。

ターンの種類
内容

デベロッパープロンプト

<start_of_turn>developer

あなたは以下の関数で関数呼び出しができます:

関数宣言

<start_function_declaration>declaration:get_weather{

description: "都市の天気を取得する",

parameters: { city: STRING }

}

<end_function_declaration>

<end_of_turn>

ユーザーターン

<start_of_turn>user

パリの天気はどうですか?

<end_of_turn>

関数呼び出し

<start_of_turn>model

<start_function_call>call:get_weather{

city: "paris"

}

<end_function_call>

関数応答

<start_function_response>response:get_weather{temperature:26}

<end_function_response>

アシスタントの締めくくり

パリの天気は摂氏26度です。

<end_of_turn>

ここでは、(推論を交互に行うのではなく)単一の思考ブロックを使用する単純化されたバージョンを、 <think></think>を通じて実装します。したがって、モデルの対話は次のようになります:

思考(Thinking) + 関数呼び出し

<start_of_turn>model

<think>

ユーザーはパリの天気を求めています。私はget_weatherツールを持っています。city引数で呼び出すべきです。

</think>

<start_function_call>call:get_weather{

city: "paris"

}

<end_function_call>

🪗モバイル操作向けにFunctionGemmaをファインチューンする

FunctionGemmaにモバイル操作を行わせる方法を示すノートブックも作成しました。の中で、評価も有効にし、端末上での操作向けにファインチューニングする方法がよく機能することを、評価損失の低下で示しています: モバイル操作用ファインチューニングノートブックarrow-up-right例えばプロンプトが与えられた場合

「Team Sync Meeting」というリマインダーを2025年6月6日(金)午後2時に設定してください。 [{'role': 'developer',

「Team Sync Meeting」というリマインダーを2025年6月6日(金)午後2時に設定してください。<end_of_turn>

🏃‍♂️FunctionGemmaにマルチターンのツール呼び出しを行わせる方法を示すノートブックも作成しました。の中で、FunctionGemmaが長いメッセージ変化の中でツールを呼び出すことができる様子を示しています。例えば以下を参照ください:

まず以下のようにツールを指定する必要があります: マルチターンツール呼び出しノートブックarrow-up-right今日の日付を取得する

返り値:

"get_today_date" : get_today_date,

def extract_tool_calls(text):

model_name = "unsloth/functiongemma-270m-it",

Try the 3 notebooks we made for FunctionGemma:

最終更新

役に立ちましたか?