Modele Gemma dostrojone do instrukcji (IT) zostały zaprojektowane do obsługi interakcji konwersacyjnych, od pojedynczych wymian pytań i odpowiedzi po rozbudowane wieloetapowe dialogi. Z tego przewodnika dowiesz się, jak formatować prompty do czatu z Gammą i jak tworzyć rozmowy wieloetapowe.
Format prompta
Modele IT Gemma używają specjalnych tokenów sterujących do wyznaczania kolejnych tur rozmowy. Te tokeny są wymagane, gdy wysyłasz prompty bezpośrednio do tokenizatora, ale są zwykle stosowane automatycznie przez platformy obsługujące czat.
Prompt jednoetapowy
Prompt w jednej turze składa się z 1 wiadomości użytkownika i znacznika odpowiedzi modelu:
<start_of_turn>user
What is the speed of light?<end_of_turn>
<start_of_turn>model
Prompt wieloetapowy
Rozmowy wieloetapowe obejmują wiele wymian informacji. Każda tura jest otoczona tymi samymi tokenami sterującymi:
<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
Model generuje odpowiedź na ostatnią turę <start_of_turn>model.
Instrukcje systemowe
Modele Gemma dostrojone do instrukcji są przeznaczone do pracy tylko z 2 rolami:user i model. Dlatego rola system ani kolejka systemowa nie są obsługiwane.
Zamiast używać osobnej roli systemowej, podaj instrukcje na poziomie systemu bezpośrednio w początkowym promcie użytkownika. Instrukcje modelu, które wykorzystują te możliwości, pozwalają Gemmie skutecznie interpretować instrukcje. Na przykład:
Modele Gemma 3 i nowsze obsługują instrukcje systemowe, które określają zachowanie, osobowość lub ograniczenia modelu w całej rozmowie. Umieść instrukcję systemową przed pierwszą wypowiedzią użytkownika:
<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>
Więcej informacji znajdziesz w artykule Instrukcje dotyczące promptów i systemu.
Obsługa platformy
Większość platform automatycznie obsługuje formatowanie czatu za pomocą szablonu czatu lub interfejsu API rozmowy:
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?"
W przypadku czatu wieloetapowego użyj trybu interaktywnego:
ollama run gemma3:1b
>>> What is machine learning?
...
>>> How is it different from deep learning?
Interfejsy API zgodne z OpenAI
Jeśli używasz platform, które udostępniają interfejs API zgodny z OpenAI (np. vLLM, llama.cpp lub LM Studio), przesyłaj wiadomości w standardowym formacie 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)