محادثة مع Gemma: محادثات أساسية ومتعدّدة الجولات

تم تصميم نماذج Gemma المضبوطة للتعليمات (IT) للتعامل مع التفاعلات الحوارية، بدءًا من تبادُل الأسئلة والأجوبة الفردية إلى الحوارات الموسّعة المتعدّدة الجولات. يشرح هذا الدليل كيفية تنسيق الطلبات لإجراء محادثة مع Gemma وكيفية إنشاء محادثات متعدّدة الأدوار.

تنسيق الطلب

تستخدم نماذج تكنولوجيا المعلومات من Gemma رموزًا مميّزة خاصة للتحكّم من أجل تحديد أدوار المحادثة. تكون هذه الرموز المميزة مطلوبة عند إرسال الطلبات مباشرةً إلى أداة الترميز، ولكن عادةً ما يتم تطبيقها تلقائيًا من خلال أُطر العمل المتوافقة مع المحادثات.

طلب واحد

يتألف الطلب المكوّن من جولة واحدة من رسالة مستخدم وعلامة استجابة نموذجية:

<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>

لمزيد من التفاصيل، يُرجى الاطّلاع على الطلبات وتعليمات النظام.

توافق إطار العمل

تتعامل معظم الأُطر مع تنسيق المحادثات تلقائيًا من خلال نموذج المحادثة أو واجهة برمجة التطبيقات الخاصة بالمحادثات:

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?

واجهات برمجة التطبيقات المتوافقة مع OpenAI

عند استخدام أُطر عمل تعرض واجهة برمجة تطبيقات متوافقة مع 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)

الخطوات التالية