Mit Gemma chatten: einfache und wechselseitige Unterhaltungen

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)

Nächste Schritte