الوحدة 3 — الجلسة التفاعليّة ومعاملات التوليد
النماذج نُصبّت (الوحدة 1)، والوسم مختار (الوحدة 2). الآن نتعلّم كيف نتكلّم معها من الطرفيّة، وكيف نضبط معلمات التوليد كي تلائم كلّ نوع من المهامّ. المفتاح ليس حفظ المعلمات، بل قياس أثر كلّ واحدة على جواب حقيقيّ.
الجلسة التفاعليّة
ollama run qwen2.5:7b-instruct-q4_K_M
>>> اقترح ثلاثة عناوين لعقد إيجار تجاريّ
يستدعي الأمر النموذج، يحمّله في الذاكرة عند أوّل استعمال (ثوانٍ لنموذج 7B على SSD)، ثمّ يبدأ حلقة قراءة-تنفيذ-عرض. النموذج يبقى في الذاكرة طوال مدّة OLLAMA_KEEP_ALIVE (خمس دقائق افتراضيًّا)، فتكون النداءات التالية فوريّة.
الأوامر داخل الجلسة
| الأمر | الفائدة |
|---|---|
/set parameter temperature 0.2 | تغيير معلمة توليد للجلسة الحالية |
/set system "..." | تعديل الرسالة النظاميّة مؤقّتًا |
/show info | عرض النموذج المحمَّل ومعلماته الحاليّة |
/show modelfile | طباعة الـ Modelfile الذي بُني منه النموذج (مفيد للوحدة 5) |
/save my-model | حفظ الجلسة الحاليّة كنموذج جديد باسم مخصّص |
/clear | مسح المحادثة والإبقاء على النموذج محمَّلًا |
/bye | إنهاء الجلسة (يبقى النموذج في الذاكرة حتّى انقضاء keep_alive) |
هذه الأوامر تُنجز داخل الطرفيّة تجربة كاملة قبل كتابة سطر برمجيّ واحد. تغيير درجة الحرارة عبر /set أسرع بكثير من تعديل سكربت وإعادة تشغيله.
معاملات التوليد الأساسيّة
درجة الحرارة (temperature)
0.0: النموذج شبه حتميّ، يختار دائمًا الرمز الأرجح. مفيد للمهامّ المحدّدة (تصنيف، استخراج JSON).0.7: افتراضيّ. تنويع معقول، جودة ثابتة.1.2وما فوق: إبداع مرتفع، تناقضات ممكنة، أخطاء واقعيّة أكثر.
لتلخيص عقد قانونيّ، temperature=0.1 أنسب: نريد ثباتًا لا شعرًا. لصياغة رسائل تسويقيّة، 0.9 مقبول.
نافذة السياق (num_ctx)
عدد الرموز التي يقرأها النموذج من التاريخ والمُدخل معًا. القيمة الافتراضيّة في Ollama غالبًا 2048 وهي قصيرة جدًّا لملفّات قانونيّة. num_ctx=8192 أو 16384 أفضل، لكنّ الذاكرة المطلوبة ترتفع خطّيًّا. النموذج نفسه يعلن سقفًا (context length في ollama show): تجاوزه يقصّ الأقدم بصمت.
سقف التوليد (num_predict)
عدد الرموز القصوى التي يُوَلّدها النموذج في جواب واحد. -1 يعني «حتّى نهاية الجواب أو حتّى الحدّ الأقصى». وضع 256 مثلًا يحدّ الجواب ويوقف التوليد الطويل غير المرغوب، ويوفّر الوقت والطاقة.
البذرة (seed)
تحكّم في العشوائيّة. البذرة الثابتة مع درجة حرارة 0 تعطي جوابًا مطابقًا في كلّ تشغيل. مفيدة جدًّا لإعادة إنتاج خطأ أبلغ عنه زميل، أو لاختبار وحدة.
التوقّف المبكّر (stop)
قائمة من السلاسل النصّيّة التي إن ظهرت أوقفت التوليد. مفيدة حين نحدّد صيغة إخراج ثابتة:
stop: ["\n\n### النهاية"]