מודלים של Gemma שעברו כוונון להוראות (IT) נועדו לטפל באינטראקציות בממשק שיחה, החל מהחלפת שאלות ותשובות בודדות ועד לדיאלוגים מורכבים עם כמה תורות. במדריך הזה מוסבר איך לעצב הנחיות לשיחה עם Gemma ואיך ליצור שיחות מרובות תפניות.
פורמט ההנחיה
מודלים של Gemma IT משתמשים באסימוני בקרה מיוחדים כדי לתחום את תורות השיחה. האסימונים האלה נדרשים כששולחים הנחיות ישירות ל-tokenizer, אבל בדרך כלל הם מוחלים אוטומטית על ידי מסגרות שמודעות לצ'אטים.
הנחיה חד-שלבית
הנחיה של תור אחד מורכבת מהודעה אחת של משתמש וסמן של תגובת המודל:
<start_of_turn>user
What is the speed of light?<end_of_turn>
<start_of_turn>model
הנחיה מרובת תפניות
בשיחות עם זיכרון, יש שרשור של כמה חילופי דברים. כל תור עטוף באותם טוקנים של בקרה:
<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
המודל יוצר תשובה לתור האחרון של <start_of_turn>model.
הוראות מערכת
מודלים של Gemma שעברו כוונון להוראות מיועדים לעבוד רק עם שני תפקידים:
user ו-model. לכן אין תמיכה בתפקיד system או בהפעלה של המערכת.
במקום להשתמש בתפקיד מערכת נפרד, אפשר לספק הוראות ברמת המערכת ישירות בהנחיית המשתמש הראשונית. היכולות של Gemma לפרש את ההוראות בצורה יעילה. לדוגמה:
מודלים של Gemma 3 ואילך תומכים בהוראות מערכת שמגדירות את ההתנהגות, האישיות או המגבלות של המודל לאורך כל השיחה. ממקמים את ההוראה למערכת לפני התור הראשון של המשתמש:
<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>
פרטים נוספים זמינים במאמר בנושא הנחיות והוראות למערכת.
תמיכה ב-Framework
רוב המסגרות מטפלות בעיצוב הצ'אט באופן אוטומטי באמצעות תבנית הצ'אט או Conversation API:
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?"
כדי לנהל שיחה עם זיכרון, משתמשים במצב האינטראקטיבי:
ollama run gemma3:1b
>>> What is machine learning?
...
>>> How is it different from deep learning?
ממשקי API שתואמים ל-OpenAI
כשמשתמשים במסגרות שחושפות API שתואם ל-OpenAI (כמו vLLM, llama.cpp או LM Studio), מעבירים הודעות באמצעות הפורמט הרגיל 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)