T1 · Beginner · 7 دقيقةثابت · آخر مراجعة: 2026-08-19مسودة أولى — بنراجعها

الـ Temperature والـ Sampling — التحكّم في العشوائية

في سطر واحد · الموديل مش بيختار أعلى احتمال دايمًا؛ الـ temperature بتتحكّم في قد إيه هيغامر ويختار token أقل احتمالًا.

القاموس:HallucinationProbabilisticTemperatureTokenTop-p
ليه ده مهم؟

temperature عالية = إبداع وتنوّع (وهلوسة أكتر)؛ واطية = ثبات وتكرار. اختيارها بيفرّق بين مساعد كتابة ومستخرج بيانات.

زي عجلة الروليت: temperature واطية بتخلّي الكورة تقف كل مرة على نفس الرقم تقريبًا؛ عالية بتخلّيها تلفّ أكتر وتفاجئك.

خلينا نفهمها بمثال

الاسم جاي من الحرارة الحقيقية: الجزيئات السخنة بتتحرّك عشوائي في كل اتجاه، والباردة بتستقرّ في مكانها. الموديل زيها — سخن يعني عشوائية أكتر، بارد يعني ثبات.

temperature قريّبة من 0 بترجّع تقريبًا نفس الإجابة كل مرة (كويس للتصنيف واستخراج البيانات)؛ temperature أعلى (حوالي 0.8–1) بتديك صياغات مختلفة كل مرة (كويس للأفكار والكتابة).

طيب بتحصل إزاي؟

في كل خطوة، الموديل عنده توزيع احتمالات على كل الـ tokens الممكنة. الـ temperature بتتطبّق على التوزيع ده قبل الاختيار: قيمة أقل من 1 بتحدّد الفروق — الاحتمالات العالية بتبقى أعلى والواطية بتتداس، لحد ما temperature = 0 عمليًا بتخلّي الاختيار شبه حتمي (أعلى token دايمًا). قيمة أعلى من 1 بتفلطح التوزيع فالـ tokens النادرة بتاخد فرصة حقيقية. وفيه بارامترات sampling تانية شغّالة جنبها زي top_p اللي بتقصّ ديل التوزيع قبل الاختيار — والنصيحة المعتادة: عدّل واحد منهم بس، مش الاتنين مع بعض.

نفس النداء بالظبط — الفرق الوحيد قيمة temperature، وسلوك المنتج بيتغيّر تمامًا:

# مستخرج بيانات: عايزين نفس الناتج كل مرة
extract = client.chat.completions.create(
    model="gpt-4o-mini",
    temperature=0,
    messages=[{"role": "user", "content": "Extract the order ID from: ..."}],
)

# مولّد أفكار: عايزين تنوّع حقيقي
ideas = client.chat.completions.create(
    model="gpt-4o-mini",
    temperature=0.9,
    messages=[{"role": "user", "content": "Give me 5 taglines for a coffee brand"}],
)
خلينا نبنيها

🧪 جرّب بنفسك — نفس الـ prompt على temperatures مختلفة: خد prompt واحد (مثلًا: «اقترح اسم لتطبيق توصيل قهوة») وشغّله 5 مرات على temperature 0، و5 مرات على 0.7، و5 مرات على 1.2. سجّل النتايج في جدول وقارن: قد إيه الردود اتكرّرت في كل مجموعة؟ إمتى بدأ يطلع كلام غريب أو مفكّك؟ بعدين اعكس التجربة بـ prompt استخراج («طلّع رقم الأوردر من النص ده») وشوف ليه العالية هنا كارثة.

أشهر الأخطاء
  • سيبان القيمة الافتراضية لكل شيء. استخراج JSON بـ temperature عالية هيديك مفاتيح مختلفة كل مرة؛ وعصف ذهني بـ 0 هيرجّعلك نفس الـ 3 أفكار.
  • الاعتقاد إن temperature = 0 معناها نتيجة مطابقة 100% كل مرة. بتقرّب جدًا، بس عوامل زي حسابات الـ GPU المتوازية ممكن تسبب اختلافات طفيفة — متبنيش test بيقارن نص حرفيًا.
  • علاج الهلوسة برفع أو خفض الـ temperature بس. الواطية بتقلّل التقلّب، لكن الموديل الواثق من معلومة غلط هيقولها بثقة على temperature 0 برضه.
إمتى تستخدمها؟

نزّلها قريب من 0 لما الصح ليه شكل واحد: تصنيف، استخراج بيانات، إنتاج JSON، إجابات دعم فني لازم تبقى متسقة، وأي حاجة بتتقاس في eval. ارفعها (0.7–1) لما التنوّع هو المطلوب: توليد أفكار، صياغات تسويقية، حوارات، أسماء بدايل.

وإمتى لأ؟

متلعبش فيها كأول ردّ فعل لأي مشكلة جودة — لو الإجابات غلط في المضمون، المشكلة غالبًا في الـ prompt أو السياق أو اختيار الموديل، والـ temperature مش هتصلّحها. وخد بالك: بعض الموديلات الحديثة (خصوصًا reasoning models) بتتجاهل البارامتر أو بتفرض قيمة ثابتة — راجع docs الموديل قبل ما تفترض إنه شغّال.

خلينا نبنيهاالقراءة خلصت — دلوقتي ابنيها بإيدك.جرّب نفس الـ prompt على temperatures مختلفة