الرئيسيةمن أناالدوراتالمدونةسوق الأوامرالمناهج والباقاتالشركاء

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

المنصة مبنية على الوضوح، التطبيق، والنتيجة النافعة: شرح مرتب يساعدك تفهم الأدوات، تكتب كودًا أفضل، وتستخدم الذكاء الاصطناعي بوعي داخل العمل الحقيقي.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • المناهج والباقات
  • سوق الأوامر
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالمناهجالمدونةالدخول
الذكاء الاصطناعي

درجة الحرارة (Temperature): ليه نفس السؤال بيديك إجابة مختلفة كل مرة

مبتدئ2 أغسطس 20265 دقائق قراءة
درجة الحرارة (Temperature): ليه نفس السؤال بيديك إجابة مختلفة كل مرة

درجة الحرارة (Temperature): ليه نفس السؤال بيديك إجابة مختلفة كل مرة

المستوى: مبتدئ. الشرح بيبدأ بمثال بسيط، وبعدين بيدخل على السبب العلمي والكود. مش محتاج خلفية في تعلّم الآلة.

لو بعتّ نفس السؤال للنموذج مرتين وجالك ردّين مختلفين، ده مش عطل. غالبًا درجة الحرارة (Temperature) مرفوعة. في أقل من 5 دقايق هتعرف تتحكم فيها بالظبط: إمتى تخليها صفر عشان رد ثابت، وإمتى ترفعها عشان تنويع.

المشكلة باختصار

نماذج اللغة زي ChatGPT وClaude وGemini مش بتختار الكلمة التالية بشكل ثابت. بتحسب احتمال لكل كلمة ممكنة، وبعدين بتسحب واحدة منهم. درجة الحرارة هي المقبض اللي بيقرر: نسحب دايمًا أعلى احتمال (رد متوقّع)، ولا نسيب فرصة للكلمات الأقل احتمالًا (رد متنوّع وأحيانًا غريب). المقبض ده بيتراوح عادةً من 0 لـ 2.

مثال قبل الشرح: النردة المغشوشة

تخيّل عندك نردة. النردة العادلة كل وش ليه نفس الفرصة. دلوقتي تخيّل نردة "مغشوشة" بتقع على الرقم 6 في 90% من الرميات. دي درجة حرارة منخفضة: النتيجة شبه مضمونة كل مرة.

لو رجّعت النردة عادلة تمامًا (كل رقم تقريبًا 16.6%)، دي درجة حرارة عالية: النتيجة مفاجأة في كل رمية. درجة الحرارة في النموذج بتعمل نفس الحاجة بالظبط، بترفع أو تخفض "الغش" ناحية الكلمة الأقوى.

الشرح العلمي: من الدرجات الخام إلى الاحتمالات

النموذج بيطلّع لكل كلمة رقم خام اسمه logit. الأرقام دي مش احتمالات، فلازم تتحوّل. الدالة اللي بتحوّلها اسمها softmax. قبل softmax، النموذج بيقسم كل logit على درجة الحرارة T. القسمة دي هي كل الحكاية:

  • T صغيرة (مثلاً 0.2): الأرقام بتتباعد، فأعلى كلمة بتاخد شبه كل الاحتمال. الرد بيبقى شبه ثابت.
  • T = 1: التوزيع الطبيعي زي ما النموذج اتدرّب عليه بالظبط.
  • T كبيرة (مثلاً 1.8): الأرقام بتتقارب، فالكلمات الضعيفة بتاخد فرصة أكبر. هنا بيظهر التنويع، وكمان الهلوسة.

خد مثال محسوس: بعد جملة "القهوة أحلى بـ"، النموذج عنده 5 كلمات مرشّحة بدرجاتها الخام. الجدول ده بيوري نفس الكلمات بأرقام احتمالها عند 3 درجات حرارة (الأرقام طلعت من الكود اللي تحت):

الكلمةlogitT=0.2T=1.0T=1.8
سكر3.092%57%45%
لبن2.58%34%34%
عسل1.0~0%8%15%
ملح-1.0~0%1%5%
بنزين-4.0~0%0.05%0.9%

ركز في السطر الأخير. كلمة "بنزين" (اختيار غلط تمامًا) احتمالها قفز من صفر تقريبًا لـ 0.9% لما رفعنا الحرارة لـ 1.8. ده بالظبط مصدر الردود الغريبة اللي بتظهر فجأة.

جرّبها بنفسك: كود Python في 12 سطر

الكود ده بيحسب نفس أرقام الجدول. انسخه وشغّله بأي بايثون فيه numpy:

Python
import numpy as np

# درجات خام (logits) لخمس كلمات مرشّحة بعد "القهوة أحلى بـ..."
words  = ["سكر", "لبن", "عسل", "ملح", "بنزين"]
logits = np.array([3.0, 2.5, 1.0, -1.0, -4.0])

def probs(logits, T):
    z = np.exp(logits / T)   # القسمة على درجة الحرارة قبل softmax
    return z / z.sum()

for T in [0.2, 1.0, 1.8]:
    p = probs(logits, T)
    print("T =", T, [f"{w}:{v:.1%}" for w, v in zip(words, p)])

غيّر قيمة T وشوف إزاي الاحتمالات بتتحرك. لما T تقرب من الصفر، أعلى كلمة بتاخد 100% تقريبًا، وده معناه رد ثابت. لما T تكبر، الفروق بتتلاشى.

سيناريو واقعي: شات بوت خدمة عملاء

تخيّل شات بوت بيرد على "إمتى بيوصل طلبي؟" وعندك 5000 محادثة في اليوم. لو خليت T=1.0، وحتى لو 0.9% بس من الردود طلعت فيها معلومة مخترعة، ده معناه حوالي 45 عميل يوميًا بياخدوا إجابة غلط. تنزيل T لـ 0.2 بيخلي الرد شبه ثابت ومطابق للسكريبت المعتمد. الافتراض هنا: عندك رد صح واضح ومحدد، ومش محتاج تنويع أصلاً.

top-p: البديل اللي بيحسّن العشوائية

بدل ما تتحكم في الحرارة على طول، فيه مقبض تاني اسمه top-p (المعروف بـ nucleus sampling). بدل ما يعدّل الأرقام، بيقصّ الكلمات: بياخد أصغر مجموعة كلمات مجموع احتمالها ≥ p (مثلاً 0.9)، ويرمي الباقي، وبعدين يسحب من اللي فضل بس. الفايدة إنه بيشيل الذيل الغريب (زي "بنزين") من غير ما يكتم التنويع المفيد. الطريقة دي اتقدّمت في ورقة Holtzman وزملائه سنة 2020، وبقت افتراضية في أدوات كتير.

القاعدة العملية: عدّل درجة الحرارة أو top-p، مش الاتنين مع بعض في نفس الوقت. تعديل الاتنين بيبقى صعب تتوقّع نتيجته.

الـ trade-off

مفيش قيمة "صح" واحدة لدرجة الحرارة. كل اتجاه له ثمنه:

  • حرارة أعلى: بتكسب تنويع وصياغات مختلفة، بتخسر الثبات وبيزيد خطر الهلوسة.
  • حرارة أقل: بتكسب ردود موثوقة وقابلة للتكرار، بتخسر الحيوية والنص أحيانًا بيبقى جاف.

متى ما تستخدمش حرارة عالية

خليها صفر أو قريبة منه في الحالات دي:

  • استخراج بيانات منظمة (JSON، أرقام، تواريخ).
  • توليد كود، أوامر SQL، أو أي حسابات — الثبات أهم من الإبداع.
  • تصنيف، أو سؤال ليه جواب واحد صح.

وخليها عالية (0.8 لـ 1.2) في: الكتابة الإبداعية، العصف الذهني، وتنويع صياغات إعلانية.

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

افتح آخر استدعاء API عملته. لو مش محدد فيه temperature صراحةً، ضيفه — الاعتماد على القيمة الافتراضية بيخبّي عنك مصدر العشوائية. للمهام اللي محتاجة دقة، جرّب temperature=0.2 وقارن الردود على 10 مدخلات؛ لو بقت أثبت وأصح، إنت كسبت. لو المهمة إبداعية، اعمل العكس وارفعها لـ 1.0.

المصادر

  • OpenAI API Reference — بارامترات temperature وtop_p: platform.openai.com
  • Anthropic (Claude) API — بارامتر temperature: docs.anthropic.com
  • Holtzman et al., "The Curious Case of Neural Text Degeneration" (ICLR 2020) — nucleus/top-p sampling: arxiv.org/abs/1904.09751
  • دالة softmax وتأثير درجة الحرارة (توزيع بولتزمان): en.wikipedia.org/wiki/Softmax_function

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة