ما درجة الحرارة في LLMs؟
درجة الحرارة كوسيلة للتحكم الإبداعي: 0 = حتمي، 2 = فوضوي، وكل ما بينهما
ما درجة الحرارة في LLMs؟ درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
كيف تختار النماذج اللغوية الكبيرة الرمز التالي
في كل خطوة، يُخرج النموذج اللغوي الكبير توزيعًا احتماليًا على جميع الرموز الموجودة في مفرداته (نحو 50,000 رمز في GPT). ويعيّن النموذج لكل رمز درجة تُسمى logit — وهي قيمة خام غير مُطبّعة. وكلما ارتفعت قيمة logit زاد احتمال الرمز.
درجة الحرارة هي المعامل الذي يتحكم في كيفية تحويل قيم logit الخام هذه إلى احتمالات قبل أخذ العينة.
دالة Softmax
تُحوّل قيم logit إلى احتمالات باستخدام دالة softmax. تأخذ softmax متجهًا من قيم logit وتُخرج توزيعًا احتماليًا مجموع احتمالاته يساوي 1.
في مثال لمفردات صغيرة تتضمن 4 رموز:
import numpy as np
# Raw logits from the model
logits = np.array([2.0, 1.0, 0.5, -1.0]) # scores for 4 tokens
# Standard softmax (temperature = 1)
def softmax(logits, temperature=1.0):
scaled = logits / temperature
exp_scaled = np.exp(scaled - np.max(scaled)) # subtract max for numerical stability
return exp_scaled / exp_scaled.sum()
probs = softmax(logits, temperature=1.0)
print('Probabilities:', np.round(probs, 3))
# [0.567, 0.208, 0.129, 0.095]
# Token 0 is most likely at 56.7%درجة الحرارة = 0: فك الترميز الجشع
عندما تقترب درجة الحرارة من 0، ينهار توزيع softmax: يحصل الرمز ذو أعلى قيمة logit على احتمال يقارب 1.0، وتقترب احتمالات جميع الرموز الأخرى من 0. ويختار النموذج دائمًا الرمز الأعلى احتمالًا.
يُسمى هذا فك الترميز الجشع. وهو حتمي — إذ ينتج عن المطالبة نفسها الإخراج نفسه دائمًا. لا عشوائية ولا إبداع.
# Temperature = 0 (greedy)
probs_temp0 = softmax(logits, temperature=0.01) # near-zero
print('Probs at T=0.01:', np.round(probs_temp0, 4))
# [~1.0, ~0.0, ~0.0, ~0.0]
# In practice, temperature=0 is implemented as argmax:
def greedy_sample(logits):
return np.argmax(logits) # always returns the index of the highest logit
token_idx = greedy_sample(logits)
print(f'Selected token index: {token_idx}') # always 0درجة الحرارة = 1: أخذ العينات القياسي
تطبّق درجة الحرارة = 1 دالة softmax من دون تحجيم، لذا يعكس التوزيع الاحتمالي ثقة النموذج الطبيعية. يأخذ النموذج عينات وفقًا لهذه الاحتمالات: تظهر الرموز المرجحة كثيرًا، بينما تظهر الرموز ضعيفة الاحتمال نادرًا ولكنها قد تظهر أحيانًا.
هذا هو الإعداد الافتراضي لمعظم حالات الاستخدام الحوارية. وينتج مخرجات متنوعة وطبيعية مع الحفاظ على اتساقها.
# Temperature = 1 (standard)
probs_temp1 = softmax(logits, temperature=1.0)
print('Probs at T=1.0:', np.round(probs_temp1, 3))
# [0.567, 0.208, 0.129, 0.095]
# Sampling from this distribution:
def sample_token(probs):
vocab = ['the', 'a', 'an', 'is']
return np.random.choice(vocab, p=probs)
# Run 10 times to see variation
for _ in range(10):
print(sample_token(probs_temp1), end=' ')
# Output varies each time, but 'the' appears most oftenدرجة الحرارة = 2: أخذ عينات فوضوي
تعمل درجة الحرارة المرتفعة (> 1) على تسطيح التوزيع الاحتمالي، فتصبح جميع الرموز متقاربة في الاحتمال. ويصبح النموذج غير قابل للتنبؤ، وغالبًا ما تكون مخرجاته غير متماسكة.
نادرًا ما تُستخدم درجة حرارة > 1.5 عمليًا. فقد تنتج مخرجات إبداعية وغير متوقعة، لكنها تنتج الهراء غالبًا.
# Temperature = 2 (chaotic)
probs_temp2 = softmax(logits, temperature=2.0)
print('Probs at T=2.0:', np.round(probs_temp2, 3))
# [0.385, 0.261, 0.211, 0.143]
# Much flatter — the 4th token (logit=-1.0) now has 14.3% chance
# (vs 9.5% at T=1.0)
# Visualization: compare distributions
for temp in [0.1, 0.5, 1.0, 1.5, 2.0]:
probs = softmax(logits, temperature=temp)
print(f'T={temp}: {np.round(probs, 3)}')درجة الحرارة كأداة للتحكم في حدّة التوزيع
من الناحية المفاهيمية، تتحكم درجة الحرارة في حدّة التوزيع:
- درجة حرارة منخفضة (0.1–0.4): قمة حادة — يكون النموذج واثقًا ويختار الرموز الآمنة والشائعة
- درجة حرارة متوسطة (0.6–1.0): شكل طبيعي — توازن بين الإبداع والاتساق
- درجة حرارة مرتفعة (1.2–2.0): توزيع مسطح — يستكشف النموذج الرموز ضعيفة الاحتمال بحرية
فكّروا فيها على أنها قرص للتحكم في الإبداع: منخفضة = دقيقة، ومرتفعة = جريئة.
import matplotlib
# Conceptual: what distribution shape looks like at different temps
temps = {'T=0.2 (sharp)': 0.2, 'T=1.0 (normal)': 1.0, 'T=2.0 (flat)': 2.0}
for label, temp in temps.items():
probs = softmax(logits, temp)
bar = '#' * int(probs[0] * 40)
print(f'{label}: top token = {probs[0]:.1%} |{bar}|')
# T=0.2: top token = 97.2% |########################################|
# T=1.0: top token = 56.7% |######################|
# T=2.0: top token = 38.5% |###############|درجة الحرارة والحتمية
هناك فارق مهم: تجعل temperature = 0 أخذ العينات حتميًا. أما عند temperature > 0، فينتج كل تشغيل مخرجًا مختلفًا لأن أخذ العينات عملية عشوائية. يظل التوزيع ثابتًا، لكن العينة تتغير.
للحصول على مخرجات قابلة لإعادة الإنتاج أثناء الاختبار، اضبط temperature = 0 دائمًا. أما في بيئة الإنتاج، فعند الرغبة في التنوع، فاستخدم seed إذا كانت واجهة API تدعمه.
import openai
client = openai.OpenAI(api_key='sk-...')
# Deterministic: temperature=0
resp1 = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
temperature=0
)
resp2 = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
temperature=0
)
print(resp1.choices[0].message.content == resp2.choices[0].message.content) # True (usually)كيف تتفاعل درجة الحرارة مع top-p
تؤثر درجة الحرارة وtop-p (أخذ عينات النواة) في توزيع أخذ العينات، لكن في مرحلتين مختلفتين:
- درجة الحرارة: تُطبّق مقياسًا على logits قبل softmax، فتغيّر شكل التوزيع الكامل
- top-p: تقتطع التوزيع إلى كتلة الاحتمال الأعلى المحددة بواسطة top-p بعد softmax، فلا تُجري العينات إلا من مجموعة الرموز الأكثر احتمالًا
يوفر استخدامهما معًا تحكمًا دقيقًا. والتوصية المعتادة هي تعديل أحدهما فقط في كل مرة. فتغيير كليهما في الوقت نفسه يجعل تأثير ذلك صعب التنبؤ.
# Using temperature with top_p in OpenAI API
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Write a one-line haiku about code.'}],
temperature=0.9, # moderately diverse distribution
top_p=0.95 # sample from top 95% of probability mass
)قيم درجة الحرارة العملية حسب المهمة
مرجع سريع للأنواع الشائعة من المهام:
- الأسئلة والأجوبة الواقعية: 0 — يجب أن تكون دقيقة، ولا حاجة إلى التنوع
- توليد التعليمات البرمجية: 0–0.2 — يجب أن تكون الصياغة النحوية صحيحة
- التلخيص: 0.3–0.5 — يُسمح ببعض التنوع
- المحادثة / الحوار: 0.7–0.9 — استجابات طبيعية ومتنوعة
- الكتابة الإبداعية: 0.9–1.2 — التنوع مطلوب
- العصف الذهني / توليد الأفكار: 1.0–1.5 — استكشاف خيارات غير متوقعة
TEMPERATURE_PRESETS = {
'factual_qa': 0.0,
'code_generation': 0.1,
'summarization': 0.4,
'chat': 0.8,
'creative_writing': 1.1,
'brainstorming': 1.3
}
def call_with_preset(task_type, prompt):
temp = TEMPERATURE_PRESETS.get(task_type, 0.7)
return client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=temp
)درجة الحرارة في API
تدعم جميع واجهات API الرئيسية لنماذج اللغة الكبيرة درجة الحرارة. يتراوح النطاق الصالح بين 0 و2 في OpenAI، وبين 0 و1 في Anthropic Claude. ويؤدي تجاوز الحد الأقصى إلى ظهور خطأ.
# OpenAI: temperature 0 to 2
client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=1.2 # Valid for OpenAI
)
# Anthropic Claude: temperature 0 to 1
import anthropic
claude = anthropic.Anthropic(api_key='sk-ant-...')
claude.messages.create(
model='claude-opus-4-5',
max_tokens=1024,
temperature=0.8, # Max is 1.0 for Claude
messages=[{'role': 'user', 'content': prompt}]
)متى لا تكفي درجة الحرارة
لا تضمن درجة الحرارة وحدها دائمًا الحصول على التنوع أو الدقة التي تحتاج إليها. وعندما ينتج temperature=0 مخرجات متنوعة رغم ذلك (قد يحدث هذا في بعض النماذج بسبب اللاتحديدية الناتجة عن حسابات الفاصلة العائمة)، فاستخدم seed لتحقيق قابلية إعادة الإنتاج الفعلية. وعندما تنتج درجة الحرارة المرتفعة كلامًا غير منطقي، فحدّ المفردات باستخدام top-p أو top-k بدلًا من رفع درجة الحرارة أكثر.
# Seed for reproducibility (OpenAI API)
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=0,
seed=42 # Guarantees same output across calls on same model version
)
# Note: same output only guaranteed with same model version
# A model update can change outputs even with the same seedاختبار المعرفة
ماذا يحدث لتوزيع الاحتمالات على الرموز عند ضبط درجة الحرارة على قيمة مرتفعة جدًا (مثل 2.0)؟
مراجعة: درجة الحرارة في نماذج اللغة الكبيرة
تتحكم درجة الحرارة في عشوائية أخذ عينات الرموز من خلال تغيير مقياس logits قبل softmax:
- T=0: جشع — يختار دائمًا الرمز الأكثر احتمالًا، ويكون حتميًا
- T=1: قياسي — يأخذ العينات وفق توزيع الاحتمالات الطبيعي
- T>1: فوضوي — يسطّح التوزيع، ويزيد العشوائية ويقلل الترابط
استخدم درجة حرارة منخفضة للمهام الواقعية ومهام البرمجة، ومتوسطة للمحادثة، ومرتفعة للمهام الإبداعية. عدّل درجة الحرارة أو top-p فقط في كل مرة، وليس كليهما. الدرس التالي: أخذ عينات النواة باستخدام top-p.
تعلم AI Prompt Engineering مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 53
- الدروس
- 199
الأسئلة الشائعة
هل درس «ما درجة الحرارة في LLMs؟» مجاني؟
نعم — نص درس «ما درجة الحرارة في LLMs؟» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
ماذا ستتعلم في «ما درجة الحرارة في LLMs؟»؟
درجة الحرارة كوسيلة للتحكم الإبداعي: 0 = حتمي، 2 = فوضوي، وكل ما بينهما تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟
لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «ما درجة الحرارة في LLMs؟»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟
نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما درجة الحرارة في LLMs؟
- أخذ عينات النواة Top-p
- أخذ عينات Top-k
- اختيار المعلمات لحالة الاستخدام