googleFunctionGemma : Comment exécuter et affiner

Apprenez comment exécuter et affiner FunctionGemma localement sur votre appareil et votre téléphone.

FunctionGemma est un nouveau modèle de 270M paramètres par Google conçu pour l'appel de fonctions et l'affinage. Gemma 3 270M et entraîné spécifiquement pour l'appel d'outils textuels uniquement, sa petite taille le rend idéal à déployer sur votre propre téléphone.

Vous pouvez exécuter le modèle en précision complète sur 550 Mo de RAM (CPU) et vous pouvez maintenant l'affiner l'exécuter localement avec Unsloth. Merci à Google DeepMind pour avoir collaboré avec Unsloth pour un support dès le jour zéro !

Tutoriel d’exécutionAffinage de FunctionGemma

Notebooks gratuits :

⚙️ Guide d'utilisation

Google recommande ces paramètres pour l'inférence :

  • top_k = 64

  • top_p = 0.95

  • température = 1.0

  • longueur maximale du contexte = 32,768

Le format du modèle de chat est trouvé lorsque nous utilisons ce qui suit :

def get_today_date():
    """ Récupère la date d'aujourd'hui """
    return {"today_date": "18 décembre 2025"}
    
tokenizer.apply_chat_template(
    [
        {"role" : "user", "content" : "quelle est la date d'aujourd'hui ?"},
    ],
    tools = [get_today_date], add_generation_prompt = True, tokenize = False,
)

Format du template de chat FunctionGemma :

circle-info

FunctionGemma requiert le message système ou message développeur comme Vous êtes un modèle qui peut appeler des fonctions avec les fonctions suivantes Les versions Unsloth ont ceci préconstruit si vous oubliez d'en fournir un, donc veuillez utiliser unsloth/functiongemma-270m-itarrow-up-right

🖥️ Exécuter FunctionGemma

Voir ci-dessous pour un guide local sur bureau ou vous pouvez consulter notre Guide de déploiement sur téléphone.

Tutoriel Llama.cpp (GGUF) :

Instructions pour exécuter dans llama.cpp (notez que nous utiliserons du 4 bits pour tenir sur la plupart des dispositifs) :

1

Obtenez la dernière llama.cpp sur GitHub iciarrow-up-right. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement de l'inférence CPU. Pour les appareils Apple Mac / Metal, définissez -DGGML_CUDA=OFF puis continuez comme d'habitude - le support Metal est activé par défaut.

2

Vous pouvez récupérer directement depuis Hugging Face. Parce que le modèle est si petit, nous utiliserons la variante BF16 en pleine précision non quantifiée.

3

Téléchargez le modèle via (après avoir installé pip install huggingface_hub hf_transfer ). Vous pouvez choisir BF16 ou d'autres versions quantifiées (bien qu'il ne soit pas recommandé de descendre en dessous de 4 bits) en raison de la petite taille du modèle.

4

Ensuite, exécutez le modèle en mode conversation :

📱 Déploiement sur téléphone

Vous pouvez également exécuter et déployer FunctionGemma sur votre téléphone grâce à sa petite taille. Nous avons collaboré avec PyTorch pour créer un flux de travail simplifié utilisant l'entraînement sensible à la quantification (QAT) pour récupérer 70 % de précision puis les déployer directement sur des appareils en périphérie.

  • Déployer FunctionGemma localement sur Pixel 8 et iPhone 15 Pro pour obtenir des vitesses d'inférence d'environ ~50 tokens/s

  • Obtenez la confidentialité en priorité, des réponses instantanées et des capacités hors ligne

  • Utilisez notre notebook Colab gratuitarrow-up-right pour affiner Qwen3 0.6B et l'exporter pour le déploiement sur téléphone - changez-le simplement en Gemma3, et suivez la documentation Gemma 3 Executorcharrow-up-right.

📱Run LLMs on your Phonechevron-right

Consultez nos tutoriels iOS et Android pour le déploiement sur votre téléphone :

appleTutoriel iOSandroidTutoriel Android

🦥 Affinage de FunctionGemma

Google a noté que FunctionGemma est destiné à être affiné pour votre tâche spécifique d'appel de fonctions, y compris les cas d'utilisation multi-tours. Unsloth prend désormais en charge l'affinage de FunctionGemma. Nous avons créé 2 notebooks d'affinage, qui montrent comment vous pouvez entraîner le modèle via affinage complet ou LoRA gratuitement via un Notebook Colab :

Dans le Notebook d'affinage Reason before Tool Callingarrow-up-right, nous allons l'affiner pour "penser/raisonner" avant l'appel de fonction. Le raisonnement de type chaîne de pensée devient de plus en plus important pour améliorer les capacités d'utilisation d'outils.

FunctionGemma est un petit modèle spécialisé pour l'appel de fonctions. Il utilise son propre template de chat distinct. Lorsqu'on lui fournit des définitions d'outils et une invite utilisateur, il génère une sortie structurée. Nous pouvons ensuite analyser cette sortie pour exécuter l'outil, récupérer les résultats et les utiliser pour générer la réponse finale.

Type de tour
Contenu

Invite développeur

<start_of_turn>developer

Vous pouvez appeler des fonctions avec les fonctions suivantes :

Déclaration de fonction

<start_function_declaration>declaration:get_weather{

description : "Obtenir la météo pour une ville",

parameters : { city: STRING }

}

<end_function_declaration>

<end_of_turn>

Tour de l'utilisateur

<start_of_turn>user

Quel temps fait-il à Paris ?

<end_of_turn>

Appel de fonction

<start_of_turn>model

<start_function_call>call:get_weather{

city: "paris"

}

<end_function_call>

Réponse de la fonction

<start_function_response>response:get_weather{temperature:26}

<end_function_response>

Clôture de l'assistant

Le temps à Paris est de 26 degrés Celsius.

<end_of_turn>

Ici, nous implémentons une version simplifiée utilisant un seul bloc de réflexion (plutôt que du raisonnement entrelacé) via <think></think>. Par conséquent, notre interaction avec le modèle ressemble à ceci :

Thinking + Appel de fonction

<start_of_turn>model

<think>

L'utilisateur veut la météo pour Paris. J'ai l'outil get_weather. Je devrais l'appeler avec l'argument city.

</think>

<start_function_call>call:get_weather{

city: "paris"

}

<end_function_call>

🪗Affinage de FunctionGemma pour les Actions Mobiles

Nous avons également créé un notebook pour montrer comment faire effectuer des actions mobiles par FunctionGemma. Dans le Notebook d'affinage Mobile Actionsarrow-up-right, nous avons également activé l'évaluation, et montrons comment l'affinage pour des actions sur appareil fonctionne bien, comme le montre la perte d'évaluation qui diminue :

Par exemple, donnée une invite Veuillez définir un rappel pour une "Réunion d'équipe" ce vendredi 6 juin 2025, à 14 h.

Nous avons affiné le modèle pour qu'il puisse produire :

🏃‍♂️Appels d'outils Multi Turn avec FunctionGemma

Nous avons aussi créé un notebook pour montrer comment faire effectuer des appels d'outils multi-tours par FunctionGemma. Dans le Notebook d'appel d'outils Multi Turn gratuitarrow-up-right, nous montrons comment FunctionGemma est capable d'appeler des outils dans un long changement de message, par exemple voir ci-dessous :

Vous devez d'abord spécifier vos outils comme ci-dessous :

Nous créons ensuite un mapping pour tous les outils :

Nous avons également besoin d'un peu de code d'invocation et d'analyse d'outils :

Et maintenant nous pouvons appeler le modèle !

Essayez les 3 notebooks que nous avons créés pour FunctionGemma :

Mis à jour

Ce contenu vous a-t-il été utile ?