Menu
flag Ar iconالعربيةdown icon

درجة الحرارة في LLM: ماذا تفعل وكيف تضبطها

درجة الحرارة (temperature) تتحكم في مقدار العشوائية التي يستخدمها النموذج اللغوي عند اختيار كل كلمة تالية. شاهد كيف تعيد تشكيل احتمالات الكلمات، ومتى تجعلها منخفضة أو مرتفعة، وكيف تختلف عن top_p.

يمكنك تعديل كل موجّه في هذه الصفحة ثم فتحه في ChatGPT أو Claude أو أي تطبيق ذكاء اصطناعي آخر.

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

كيف يختار النموذج الكلمة التالية

يكتب النموذج توكنًا واحدًا في كل مرة، والتوكن كلمة أو جزء من كلمة (راجع التوكنات ونافذة السياق). في كل خطوة يعطي كل توكن في مفرداته درجة تُسمّى logit. ثم تحوّل دالة تُسمّى softmax هذه الدرجات إلى احتمالات: تُرفع كل درجة أسّيًا ثم تُقسَّم على مجموعها كلها، فتحصل الدرجات الأعلى على حصص أكبر ويكون مجموع الحصص 1. بعد ذلك يسحب النموذج توكنًا واحدًا عشوائيًا وفق هذه الحصص.

تدخل درجة الحرارة قبل softmax مباشرة. تُقسَّم كل درجة على درجة الحرارة T:

probability(word) = exp(score / T) / sum of exp(score / T) over all candidates

عندما تكون T أقل من 1، تتسع الفجوات بين الدرجات، فيبتعد المتصدر أكثر. وعندما تكون T أكبر من 1، تضيق الفجوات، فيلحق المتأخرون. عند T = 1 تحصل على احتمالات النموذج نفسها. وعند T = 0 تصبح القسمة غير معرّفة، فتعاملها واجهات API على أنها "خذ التوكن الأول دائمًا"، وهذا يُسمّى الفك الجشع (greedy decoding).

جرّبها: شريط درجة الحرارة

يكمل المثال التالي عبارة "لغة البرمجة المفضلة لدي هي" بست كلمات مرشّحة. الدرجات للتوضيح، اختيرت لهذا المثال، فالنموذج الحقيقي يعطي درجات لمفردات من عشرات آلاف التوكنات أو أكثر، وقد يُقسَّم اسم اللغة إلى عدة توكنات. لكن الحساب حقيقي: الأعمدة هي softmax لهذه الدرجات عند درجة الحرارة التي تختارها، وزر السحب يسحب منها عشر كلمات.

لغة البرمجة المفضلة لدي هي …
Next word probabilities
بايثون46%
جافاسكربت28%
راست14%
سي7.6%
هاسكل3.4%
كوبول0.8%
Samples
Press Sample to let the model pick a word ten times.

عند 1.0، تحصل بايثون على نحو 46% وكوبول على أقل من 1%. اسحب الشريط إلى 0.5 فترتفع بايثون إلى نحو 67% بينما تكاد كوبول تختفي. واسحبه إلى 2.0 فتنخفض بايثون إلى نحو 32% بينما ترتفع كوبول إلى نحو 4%، فتتضمنها جولة واحدة تقريبًا من كل ثلاث جولات من عشر سحبات مرة على الأقل. لاحظ ما لا يحدث أبدًا: ترتيب الكلمات يبقى كما هو في كل إعداد. درجة الحرارة لا تستطيع أن تجعل كوبول أرجح من بايثون، بل توسّع الفجوات أو تضيّقها فقط.

الرد الحقيقي مئات من هذه الاختيارات المتتالية، وكل اختيار يصبح جزءًا من سياق الاختيار التالي. كلمة واحدة غير مألوفة في البداية تغيّر كل ما يليها، ولهذا ينحرف الرد عند درجة حرارة مرتفعة أبعد بكثير مما توحي به كلمة واحدة في هذا المثال.

متى تستخدم درجة حرارة منخفضة أو مرتفعة

المهمةنقطة البدايةالسبب
الكود، وإصلاح الأخطاء، وSQLمنخفضة، من 0 إلى 0.3توجد عادةً تكملة واحدة هي الأفضل، وتريد النتيجة نفسها في كل تشغيل
الاستخراج، والتصنيف، وJSON0أي تنوع ضجيج، وبرنامج سيقرأ المخرجات
الشروح، والأسئلة اليوميةالقيمة الافتراضية للمزوّدالقيم الافتراضية مختارة للاستخدام العام
العصف الذهني، والأسماء، وأفكار القصصالافتراضية أو أعلى قليلًاتريد خيارات تختلف عن بعضها

تنبيهان. الأول: درجة الحرارة المنخفضة لا تجعل الإجابة صحيحة. إذا كانت الإجابة الأرجح لدى النموذج خاطئة، فدرجة الحرارة 0 تعطيك هذه الإجابة الخاطئة في كل مرة، بثبات فقط. راجع هلوسة الذكاء الاصطناعي. والثاني: القيم المرتفعة جدًا (أعلى من 1 بكثير، في واجهات API التي يصل مقياسها إلى 2) تنتج كثيرًا نصًا يفقد الخيط أو لا يعود له معنى، لأن التوكنات غير المرجّحة تُختار أكثر فأكثر.

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

درجة الحرارة وtop_p وtop_k

هناك إعدادان آخران يتحكمان في الاختيار أيضًا، وكثيرًا ما تعرضهما واجهات API بجوار درجة الحرارة.

top_p (nucleus sampling) يُبقي فقط التوكنات الأرجح التي يبلغ مجموع احتمالاتها p، ثم يختار من بينها. بأرقام المثال عند درجة الحرارة 1: بايثون وجافاسكربت وراست مجموعها نحو 88%، وإضافة سي تتجاوز 90%. فمع top_p = 0.9 يختار النموذج من هذه الأربع فقط، ولا يمكن أن تظهر هاسكل أو كوبول أبدًا. وبخلاف درجة الحرارة، يتكيّف top_p: عندما يكون النموذج واثقًا، يجتاز الحد عدد قليل من التوكنات، وعندما يكون مترددًا، يجتازه كثير منها.

top_k يُبقي عددًا ثابتًا من التوكنات الأرجح، مثل أول 40. بعض واجهات API تتيحه وبعضها لا يتيحه.

يوصي المزوّدون عمومًا بتغيير درجة الحرارة أو top_p، لا كليهما، لأن أثريهما يتراكمان بطرق يصعب توقعها.

ضبط درجة الحرارة في واجهة API

تطبيقات المحادثة تخفي هذا الإعداد، لكن واجهات API تأخذه معاملًا. يعتمد النطاق على المزوّد: واجهة Chat Completions من OpenAI تقبل من 0 إلى 2، وواجهة Messages من Anthropic تقبل من 0 إلى 1. وبعض نماذج الاستدلال تقبل قيمتها الافتراضية فقط.

from openai import OpenAI

client = OpenAI()
MODEL = "your-model-id"  # e.g. from your provider's model list

response = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "Write a SQL query that counts orders per customer."}],
    temperature=0.2,
)
print(response.choices[0].message.content)
import anthropic

client = anthropic.Anthropic()
MODEL = "your-model-id"  # e.g. from your provider's model list

message = client.messages.create(
    model=MODEL,
    max_tokens=500,
    temperature=0.2,
    messages=[{"role": "user", "content": "Write a SQL query that counts orders per customer."}],
)
print(message.content[0].text)

لماذا تخفيها تطبيقات المحادثة، وماذا تفعل بدلًا من ذلك

تطبيقات ChatGPT وClaude وGemini تختار إعدادات الاختيار نيابة عنك ولا تعرض شريطًا. هذا يُبقي التطبيقات بسيطة، ولمعظم الطلبات تغيّر إعادة صياغة الموجّه الإجابة أكثر بكثير مما يغيّرها إعداد الاختيار.

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

Fill in
اقترح اسمًا لـ تطبيق لتتبّع العادات.
Try it
Example replyReplies vary between models and runs.

داوِم. اسم قصير وسهل التذكر، ويشير إلى الاستمرار اليومي الذي يجعل الناس يعودون إلى التطبيق.

زر إعادة التوليد في تطبيق المحادثة يسحب ردًا جديدًا من الموجّه نفسه، وهي طريقة سريعة لترى مقدار تنوع الإجابات. وإذا تنوعت أكثر مما تريد، فالحل عادةً موجّه أدق: المهمة المحددة تضيّق نطاق الإجابات الجيدة، وهذا يجعل التشغيلات متقاربة. يشرح دليل كتابة الموجّهات ما تضيفه.

الأسئلة الشائعة

ما هي درجة الحرارة في النموذج اللغوي؟

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

ما درجة الحرارة المناسبة للبرمجة؟

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

ما الفرق بين temperature وtop_p؟

درجة الحرارة تعيد تشكيل توزيع الاحتمالات كله. أما top_p، ويُسمّى أيضًا nucleus sampling، فيقتطعه: يختار النموذج فقط من أصغر مجموعة توكنات يبلغ مجموع احتمالاتها p، فالقيمة top_p = 0.9 تُسقط الذيل الطويل من التوكنات غير المرجّحة. يوصي المزوّدون عمومًا بتعديل أحدهما وترك الآخر على قيمته الافتراضية.

هل تجعل درجة الحرارة 0 المخرجات ثابتة تمامًا؟

تقريبًا، لكن ليس تمامًا. عند 0 يأخذ النموذج التوكن الأرجح في كل خطوة، فتكون التشغيلات المتكررة عادةً متطابقة أو قريبة جدًا. لكن الفروق العددية الصغيرة على خوادم المزوّد قد تغيّر توكنًا من حين لآخر، وما إن يختلف توكن واحد حتى يمكن أن يسلك باقي الرد طريقًا مختلفًا.

هل يمكنني تغيير درجة الحرارة في ChatGPT أو Claude؟

ليس في تطبيقات المحادثة: فهي تختار إعدادات الاختيار نيابة عنك ولا تعرض أداة للتحكم في درجة الحرارة. يمكنك ضبطها عبر واجهات API وفي أدوات المطوّرين مثل Playground من OpenAI وAnthropic Console وGoogle AI Studio. وفي تطبيق المحادثة، اطلب التنوع أو الثبات في الموجّه نفسه.

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن