دما (Temperature) در مدل زبانی
جواب کوتاه
دما یه عدده که قبل از قرعه، احتمالها رو تیزتر یا پهنتر میکنه. امتیاز هر تکه، قبل از سافتمکس، بر دما تقسیم میشه. دمای کمتر از یک، فاصلهها رو بزرگتر میکنه و محتملترین تکه شانس خیلی بیشتری پیدا میکنه؛ جواب مطمئنتر و یکنواختتر میشه. دمای بیشتر از یک، فاصلهها رو کوچیک میکنه و تکههای کماحتمال هم شانس پیدا میکنن؛ جواب پرتنوعتر، ولی پرتتر. دمای نزدیک صفر یعنی همون انتخاب محتملترین.
یه دکمه
توی درس قبل دیدیم دو سر داریم: همیشه محتملترین، که خشک و تکراریه؛ و قرعه از همهچیز، که پرته. دما یه دکمهست که بین این دو سر میچرخه.
این سه تا نمودار، همون پنج تکهایان که توی درس مسیر داخل مدل بعد از «امروز صبح یه لیوان» دیدیم. امتیازهاشون یکیه؛ فقط دما عوض شده. با دمای ۱، «چای» ۵۵ درصده. دما رو که ببریم پایین، روی ۰٫۵، «چای» میشه ۷۹ درصد و «ماشین» تقریبا صفر. دما رو که ببریم بالا، روی ۲، «چای» میشه ۳۹ درصد و «ماشین»، که اصلا ربطی به لیوان نداره، از ۰٫۴ میرسه به ۳ درصد؛ یعنی حدود هشت برابر.
پس دما نمیگه کدوم تکه انتخاب بشه؛ میگه چقدر به محتملترینها اعتماد کنیم و چقدر به بقیه هم شانس بدیم.
تقسیم بر دما
کار دما خیلی سادهست: امتیاز هر تکه، قبل از اینکه بره توی سافتمکس، بر دما تقسیم میشه. همین.
ببینید چی میشه. فاصلهی امتیاز «چای» و «قهوه» ۰٫۸ بود. تقسیم بر ۰٫۵ که یعنی ضرب در دو، فاصله میشه ۱٫۶. تقسیم بر ۲، فاصله میشه ۰٫۴.
و سافتمکس به فاصلهها خیلی حساسه؛ توی درس مسیر داخل مدل دیدیم یه فاصلهی کوچیک توی امتیاز، احتمال رو بیشتر از دو برابر کرد. پس وقتی دما فاصلهها رو بزرگ میکنه، اولی خیلی جلو میافته. وقتی کوچیکشون میکنه، همه به هم نزدیک میشن. ویکیپدیا هم همین رو میگه: دمای بالاتر توزیع رو یکنواختتر و تصادفیتر میکنه، دمای پایینتر تیزتر، معمولا با یه برندهی پررنگ.
آزمایش ما
حالا بریم سراغ مدل کوچیک خودمون که از ۱۲ جمله ساختیم. بعد از «شروع»، با دمای ۱، «صبح» ۳۳ درصد بود. با دمای ۰٫۳ میشه ۸۱ درصد، و با دمای ۲ فقط ۲۳ درصد. بعد مدل رو با هر دما هشت بار اجرا کردیم:
با دمای ۰٫۳، شش تا از هشت جمله با «صبح» شروع شدن و دو بار عین هم تکرار شدن. یه چیز دیگه هم شد: یکی از جملهها گیر کرد توی «خیلی خیلی خیلی خیلی خیلی». چرا؟ چون بعد از «خیلی»، خود «خیلی» محتملترینه، و دمای پایین شانسش رو باز هم بیشتر کرد. یعنی دمای پایین، مدل رو به رفتار درس انتخاب محتملترین نزدیک میکنه، با همون تکرارش.
با دمای ۲، هر هشت جمله فرق داشتن و فقط یکی با «صبح» شروع شد. «امروز خیلی سرده» هم ساخته شد، که توی ۱۲ جمله نبود. مدل کوچیک ما فقط ادامههایی رو بلده که دیده، برای همین با دمای بالا هم جملهی خیلی پرت نمیسازه. ولی یه مدل واقعی دهها هزار تکه داره، و دمای بالا به همهشون، مثل «ماشین» توی مثال لیوان، شانس بیشتری میده.
دمای صفر
اگه دما رو هی کمتر کنیم، چی میشه؟ فاصلهها هی بزرگتر میشن، تا جایی که محتملترین تکه تقریبا صد درصد میشه و بقیه تقریبا صفر. یعنی دمای خیلی نزدیک صفر، همون انتخاب محتملترینه. تقسیم بر خود صفر ممکن نیست، برای همین دمای صفر رو معمولا یعنی «همیشه محتملترین».
ولی مستندات Claude یه هشدار میده: حتی با دمای صفر، جوابها کاملا ثابت نیستن. یعنی دمای صفر جواب رو خیلی قابلپیشبینیتر میکنه، ولی قول نمیده که هر بار عین همون رو بگیرید.
کم یا زیاد
خب، دمای کم بهتره یا زیاد؟ پژوهش ۲۰۱۹ که توی درس قبل دیدیم، این رو هم سنجید:
همیشه محتملترین، یعنی دمای نزدیک صفر، ۷۳٫۶۶ درصد تکرار داشت. با دمای ۰٫۹، فقط ۰٫۶۶ درصد. با دمای ۱، ۰٫۲۲ درصد، که حتی از متن آدمها هم کمتره. ولی همون پژوهش میگه قرعه با دمای ۱، مدل رو گیج میکنه: تکههای کماحتمال زیادی برمیداره و جمله از مسیرش خارج میشه.
نتیجهشون این بود: پایین آوردن دما کیفیت رو بهتر میکنه، ولی تنوع رو کم؛ و اگه زیادی پایین بیاد، دوباره تکرار برمیگرده. یعنی هیچ دمایی همهجا بهترین نیست. یه راه دیگه برای حل همین مشکل، بهجای دست زدن به همهی احتمالها، اینه که دم کماحتمال رو کلا ببریم؛ درس بعد، top-k و top-p، دربارهی همینه.
چرا اسمش دماست
شاید براتون سوال باشه یه عدد توی حساب احتمال چه ربطی به گرما و سرما داره.
ویکیپدیا میگه همون فرمول سافتمکس، توی فیزیک اسم دیگهای داره و برای این به کار میره که ذرهها توی یه ظرف، به چه احتمالی توی هر حالت انرژی پیدا میشن؛ و اونجا هم عددی که امتیازها رو تقسیم میکنه، «دما»ست. وقتی سرده، تقریبا همهی ذرهها توی کمانرژیترین حالت جمع میشن؛ مثل وقتی که یه تکه تقریبا همهی احتمال رو میگیره. وقتی داغه، ذرهها همهجا پخش میشن؛ مثل وقتی که احتمال بین تکهها پهن میشه. ویکیپدیا همین رو میگه: دمای بالاتر توزیع یکنواختتر، و دمای نزدیک صفر، یعنی فقط بزرگترین امتیاز.
توی عمل
توی مستندات Claude، دما بین صفر و یکه و پیشفرضش یک. پیشنهادش اینه: برای کارهای تحلیلی و سوالهای چندگزینهای، نزدیک صفر؛ برای کارهای خلاقانه، مثل داستان و ایده، نزدیک یک.
ولی یه تغییر تازه هم هست: مدلهای تازهتر Claude دیگه اجازه نمیدن دما رو عوض کنید و فقط عدد ۱ رو قبول میکنن. یعنی این تنظیم دیگه دست شما نیست. پس اگه با یکی از این مدلها کار میکنید، بهجای دما، باید با خود متن درخواستتون بگید چی میخواید: «دقیق و کوتاه جواب بده» یا «ده تا ایدهی جورواجور بده».
چند نکته
- دما امتیازها رو تقسیم میکنه. قبل از سافتمکس.
- کم یعنی مطمئنتر. ولی یکنواختتر و تکراریتر.
- زیاد یعنی پرتنوعتر. ولی تکههای بیربط هم شانس پیدا میکنن.
- صفر یعنی محتملترین. ولی باز هم نه کاملا ثابت.
- اگه دما در دسترس نیست، با کلمه بگید. «دقیق» یا «جورواجور».
درس بعد یه راه دیگه برای کنترل قرعه رو نشون میده: بریدن دم کماحتمالها، top-k و top-p.
جمعبندی. آنچه از این درس با خودتان میبرید.
- امتیازها قبل از سافتمکس تقسیم بر دما.
- دمای کم: مطمئنتر، یکنواختتر، تکراریتر.
- دمای زیاد: پرتنوعتر، ولی پرتتر.
- دمای نزدیک صفر: همون محتملترین.
- تحلیلی، کم؛ خلاقانه، بیشتر.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.