FunctionGemma : Comment exécuter & affiner
Apprenez à 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. Basé sur Gemma 3 270M et entraîné spécifiquement pour l'appel d'outils en texte uniquement, sa petite taille le rend idéal pour le 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 affiner le faire fonctionner localement avec Unsloth. Merci à Google DeepMind pour avoir collaboré avec Unsloth pour le support day-zero !
Tutoriel d'exécutionAffinage de FunctionGemma
FunctionGemma GGUF à exécuter : unsloth/functiongemma-270m-it-GGUF
Notebooks gratuits :
Affiner pour raisonner/réfléchir avant les appels d'outils en utilisant notre notebook FunctionGemma
Faire appels d'outils multi-tours dans un notebook Appels d'outils Multi-tours
Affiner pour activer les actions mobiles (calendrier, définir une minuterie) dans notre Notebook Actions mobiles
⚙️ Guide d'utilisation
Google recommande ces paramètres pour l'inférence :
top_k = 64top_p = 0.95temperature = 1.0longueur maximale du contexte =
32,768
Le format de modèle de chat se trouve lorsque nous utilisons ce qui suit :
def get_today_date():
""" Obtient 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 de modèle de chat FunctionGemma :
FunctionGemma nécessite le message système ou message du développeur comme Vous êtes un modèle capable d'effectuer des appels de fonctions avec les fonctions suivantes Les versions Unsloth ont cela pré-construit si vous oubliez d'en fournir un, donc veuillez utiliser unsloth/functiongemma-270m-it
🖥️ Exécuter FunctionGemma
Voir ci-dessous pour un guide de bureau local 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 appareils) :
Obtenez le dernier llama.cpp sur GitHub ici. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.
Vous pouvez récupérer directement depuis Hugging Face. Comme le modèle est si petit, nous utiliserons la variante BF16 en pleine précision non quantifiée.
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 que cela ne soit pas recommandé de descendre en dessous de 4 bits) en raison de la petite taille du modèle.
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 en raison de sa petite taille. Nous avons collaboré avec PyTorch pour créer un flux de travail simplifié utilisant l'entraînement conscient de 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 vitesses d'inférence d'environ ~50 tokens/s
Obtenez confidentialité d'abord, réponses instantanées et capacités hors ligne
Utilisez notre notebook Colab gratuit pour affiner Qwen3 0.6B et l'exporter pour le déploiement sur téléphone - changez-le simplement en Gemma3, et suivez les docs Gemma 3 Executorch.
Consultez nos tutoriels iOS et Android pour le déploiement sur votre téléphone :
🦥 Affinage de FunctionGemma
Google a noté que FunctionGemma est destiné à être affiné pour votre tâche d'appel de fonctions spécifique, 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 "Raisonner avant l'appel d'outil", nous allons l'affiner pour "penser/raisonner" avant l'appel de fonction. Le raisonnement en chaîne (chain-of-thought) devient de plus en plus important pour améliorer les capacités d'utilisation des outils.
FunctionGemma est un petit modèle spécialisé pour l'appel de fonctions. Il utilise son propre modèle 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.
Invite du développeur
<start_of_turn>developer
Vous pouvez effectuer des appels de fonctions avec les fonctions suivantes :
Déclaration de fonction
<start_function_declaration>declaration:get_weather{
description : "Obtenir la météo pour la 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 en 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 :
Réflexion + Appel de fonction
<start_of_turn>model
<think>
L'utilisateur souhaite 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 Actions Mobiles, nous avons activé l'évaluation également, et montrons comment l'affinage pour des actions sur l'appareil fonctionne bien, comme on le voit par la baisse de la perte d'évaluation :

Par exemple, étant donné une invite Veuillez définir un rappel pour une "Réunion d'équipe" ce vendredi 6 juin 2025 à 14h.
Nous avons affiné le modèle pour qu'il puisse produire :
🏃♂️Appels d'outils Multi-tours avec FunctionGemma
Nous avons également créé un notebook pour montrer comment faire effectuer à FunctionGemma des appels d'outils multi-tours. Dans le notebook Appels d'outils Multi-tours, 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 mappage pour tous les outils :
Nous avons aussi besoin de code d'invocation d'outil et d'analyse :
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 ?

