Die auf Anweisungen abgestimmten (instruction-tuned, IT) Modelle von Gemma sind für konversationelle Interaktionen konzipiert, von einzelnen Frage-Antwort-Austauschen bis hin zu längeren Dialogen mit mehreren Turns. In dieser Anleitung wird erläutert, wie Sie Prompts für den Chat mit Gemma formatieren und wie Sie wechselseitige Unterhaltungen erstellen.
Prompt-Format
Gemma IT-Modelle verwenden spezielle Steuertokens, um Gesprächsrunden abzugrenzen. Diese Tokens sind erforderlich, wenn Sie Prompts direkt an den Tokenizer senden. Sie werden jedoch in der Regel automatisch von Chat-fähigen Frameworks angewendet.
Prompt mit einzelner Antwort
Ein Prompt für einen einzelnen Turn besteht aus einer Nutzernachricht und einer Markierung für die Modellantwort:
<start_of_turn>user
What is the speed of light?<end_of_turn>
<start_of_turn>model
Prompt mit mehreren Antworten
Bei Multi-Turn Conversations werden mehrere Anfragen und Antworten aneinandergereiht. Jeder Zug wird in dieselben Steuertokens eingeschlossen:
<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
Das Modell generiert eine Antwort für den letzten <start_of_turn>model-Turn.
Systemanweisungen
Die auf Anweisungen abgestimmten Modelle von Gemma sind für die Verwendung mit nur zwei Rollen konzipiert: user und model. Daher werden die Rolle system oder ein Systemzugriff nicht unterstützt.
Anstatt eine separate Systemrolle zu verwenden, geben Sie Anweisungen auf Systemebene direkt im ersten Nutzer-Prompt an. Dank der Fähigkeit des Modells, Anweisungen zu befolgen, kann Gemma die Anweisungen effektiv interpretieren. Beispiel:
Gemma 3 und höhere Modelle unterstützen Systemanweisungen, die das Verhalten, die Persona oder die Einschränkungen des Modells für die gesamte Unterhaltung definieren. Platzieren Sie die Systemanweisung vor dem ersten Nutzerzug:
<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>
Weitere Informationen finden Sie unter Prompts und Systemanweisungen.
Framework-Unterstützung
Bei den meisten Frameworks wird die Chatformatierung automatisch über die Chatvorlage oder die Conversation API verarbeitet:
Hugging Face-Transformer
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?"
Verwenden Sie für Multi-Turn-Chats den interaktiven Modus:
ollama run gemma3:1b
>>> What is machine learning?
...
>>> How is it different from deep learning?
OpenAI-kompatible APIs
Wenn Sie Frameworks verwenden, die eine OpenAI-kompatible API bereitstellen (z. B. vLLM, llama.cpp oder LM Studio), übergeben Sie Nachrichten im Standardformat messages:
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)