Les modèles Gemma entraînés aux instructions (IT) sont conçus pour gérer les interactions conversationnelles, qu'il s'agisse d'échanges de questions-réponses uniques ou de dialogues prolongés à plusieurs tours. Ce guide explique comment mettre en forme les requêtes pour discuter avec Gemma et comment créer des conversations multitours.
Format de requête
Les modèles Gemma IT utilisent des jetons de contrôle spéciaux pour délimiter les tours de conversation. Ces jetons sont nécessaires lorsque vous envoyez des requêtes directement au tokenizer, mais ils sont généralement appliqués automatiquement par les frameworks compatibles avec le chat.
Requête à un seul tour
Une invite à un tour se compose d'un message utilisateur et d'un marqueur de réponse du modèle :
<start_of_turn>user
What is the speed of light?<end_of_turn>
<start_of_turn>model
Prompt multitour
Les conversations multitours enchaînent plusieurs échanges. Chaque tour est encapsulé dans les mêmes jetons de contrôle :
<start_of_turn>user
What is the speed of light?<end_of_turn>
<start_of_turn>model
The speed of light in a vacuum is approximately 299,792,458 meters per second.<end_of_turn>
<start_of_turn>user
How long does it take light to reach Earth from the Sun?<end_of_turn>
<start_of_turn>model
Le modèle génère une réponse pour le tour <start_of_turn>model final.
Instructions système
Les modèles Gemma adaptés aux instructions sont conçus pour fonctionner avec seulement deux rôles : user et model. Par conséquent, le rôle system ou un tour de système ne sont pas acceptés.
Au lieu d'utiliser un rôle système distinct, fournissez des instructions au niveau du système directement dans la requête utilisateur initiale. Les capacités de suivi des instructions du modèle permettent à Gemma d'interpréter efficacement les instructions. Exemple :
Les modèles Gemma 3 et ultérieurs sont compatibles avec les instructions système qui définissent le comportement, le persona ou les contraintes du modèle pour l'ensemble de la conversation. Placez l'instruction système avant le premier tour de l'utilisateur :
<start_of_turn>user
Only reply like a pirate.
What is the answer to life the universe and everything?<end_of_turn>
<start_of_turn>model
Arrr, 'tis 42,<end_of_turn>
Pour en savoir plus, consultez Prompts et instructions système.
Compatibilité avec les frameworks
La plupart des frameworks gèrent automatiquement la mise en forme du chat via leur modèle de chat ou leur API de conversation :
Hugging Face Transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("google/gemma-3-1b-it")
model = AutoModelForCausalLM.from_pretrained("google/gemma-3-1b-it")
messages = [
{"role": "user", "content": "What is machine learning?"},
]
inputs = tokenizer.apply_chat_template(
messages,
return_tensors="pt",
add_generation_prompt=True,
)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Ollama
ollama run gemma3:1b "What is machine learning?"
Pour les chats multitours, utilisez le mode interactif :
ollama run gemma3:1b
>>> What is machine learning?
...
>>> How is it different from deep learning?
API compatibles avec OpenAI
Lorsque vous utilisez des frameworks qui exposent une API compatible avec OpenAI (tels que vLLM, llama.cpp ou LM Studio), transmettez les messages au format messages standard :
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="unused")
response = client.chat.completions.create(
model="google/gemma-3-1b-it",
messages=[
{"role": "user", "content": "What is machine learning?"},
],
)
print(response.choices[0].message.content)