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