هر بار یک توکن
وقتی از یک دستیار گفتوگو چیزی میپرسید، پاسخ یکجا ظاهر نمیشود. چند کلمه چند کلمه روی صفحه میآید، انگار کسی دارد تایپ میکند. این فقط یک جلوهی قشنگ است، یا مدل واقعاً پاسخ را ذرهذره مینویسد؟
لیلا همیشه فکر میکردم پاسخ آماده است و برنامه آن را آهسته نشان میدهد تا صمیمیتر به نظر برسد.
امید حدسِ معقولی است، و بعضی برنامهها نمایشش را کمی نرمتر هم میکنند. ولی مدل واقعاً پاسخ را تکه به تکه تولید میکند. یادت هست در آموزش یاد گرفت چه کار کند؟
لیلا حدس بزند بعد چه میآید.
امید دقیقاً همین، و فقط همین. متنی به آن میدهی و حدسش را برای توکنِ بعدی به تو میدهد. فقط یک توکن.
لیلا یک توکن؟ پس چطور یک صفحهی کامل مینویسد؟
امید اگر یک توکن داشتی و یک صفحه میخواستی، چه میکردی؟
لیلا آن را به آخرِ متن میچسباندم... و دوباره میپرسیدم؟ «حالا بعدش چه میآید؟»
امید همینطور کار میکند. توکنِ تازه به آخرِ متن اضافه میشود، کلِ متن دوباره به مدل داده میشود و مدل توکنِ بعدی را حدس میزند. و باز و باز، صدها بار، تا وقتی که توکنِ خاصی را حدس بزند که یعنی «تمام شد»، یا به سقفِ طول برسد.
لیلا پس پاسخ کمکم ظاهر میشود چون واقعاً کمکم ساخته میشود.
امید درست است. و هر بار هم دقیقاً یک حدس نیست. ماجرا جالبتر از این است.
یک احتمال برای هر توکن
مدل در هر گام فقط اسمِ یک توکن را نمیگوید. به همهی توکنهای واژگانش یک احتمال میدهد: اینکه چقدر ممکن است بعد بیاید. بیشترشان تقریباً هیچ سهمی نمیگیرند. چند تا بیشترِ سهم را میبرند.
بعد یک توکن از روی این احتمالها انتخاب میشود. به این گام نمونهگیری (sampling) میگویند. معمولاً یکی از توکنهای محتمل انتخاب میشود، ولی نه همیشه محتملترینِ آنها. این عمدی است: اگر همیشه بالاترین توکن انتخاب شود، متن معمولاً خشک و تکراری میشود.
اینکه انتخاب چقدر جسورانه باشد با تنظیمی به اسمِ دما (temperature) تعیین میشود: دمای پایین یعنی «تقریباً همیشه توکنهای بالا را انتخاب کن» و دمای بالا یعنی «به توکنهای کماحتمالتر هم شانسِ واقعی بده». دستیارهای گفتوگو و عاملها این را برایتان تنظیم میکنند.
اگر اینها را کنارِ هم بگذاریم، نوشتنِ یک پاسخ یک حلقه است:
این همان پیشبینیِ توکنِ بعدی (next-token prediction) است، و تنها کاری است که یک مدل زبانی انجام میدهد. همه چیزِ دیگر، از یک شعر تا برنامهای برای برطرف کردنِ یک اشکال، از همین گامهای تکی ساخته میشود.
این چه چیزهایی را توضیح میدهد
چرا پاسخها کمکم ظاهر میشوند. هر توکن یک گامِ کاملِ کارِ مدل را لازم دارد. یک پاسخِ طولانی گامهای زیادی است، پس وقت میگیرد، و برنامهها هر توکن را همین که آماده شد نشان میدهند.
چرا یک پرسش پاسخهای متفاوت میگیرد. در هر گام یک توکن از میانِ چند توکنِ محتمل انتخاب میشود. اگر در اولِ کار توکنِ دیگری انتخاب شود، بقیهی پاسخ راهِ دیگری میرود. همان پرسش را در دو گفتوگوی تازه بپرسید، اغلب دو پاسخِ متفاوت و به یک اندازه معقول میگیرید.
لیلا چیزی دیدهام. وقتی با یک فکرِ اشتباه شروع میکند، اغلب همان را ادامه میدهد، حتی دلیل هم رویش میگذارد.
امید اگر هر بار یک توکن مینویسد، چرا ممکن است اینطور شود؟
لیلا چون... آن بخشِ اشتباه حالا جزوِ متن است. و دارد حدس میزند بعد از آن متن چه میآید.
امید بله. توکنی که نوشته شد هیچوقت پس گرفته نمیشود. هر گامِ بعدی متن را همانطور که هست ادامه میدهد، با اشتباهش. در یک نوشته، بعد از یک ادعای اشتباهِ مطمئن معمولاً چه میآید؟
لیلا ادعاهای مطمئنِ دیگری که پشتیبانشاند. اوه، این خوب نیست.
امید برای همین است که شروعِ یک پاسخ اینقدر مهم است. و یکی از دلیلهایی است که مدلها حالا اغلب پیش از پاسخ دادن فکر میکنند، که موضوعِ درسِ بعد است.
امتحان کنید
دو گفتوگوی تازه با یک دستیار باز کنید و در هر دو دقیقاً یک پرسشِ باز بپرسید، مثلاً «یک نام برای یک نانوایی پیشنهاد بده.» پاسخها را مقایسه کنید. بعد پرسشی بپرسید که فقط یک پاسخِ درست دارد، مثل «۱۲ ضربدر ۱۲ چند میشود؟»، باز در هر دو. ببینید پاسخها کجا فرق میکنند و کجا نه.
درست به کار بردن
- اگر پاسخی از همان اول به راهِ اشتباه رفت، به جای بحث کردن از نو شروع کنید. هر چه بعداً بنویسد، همان شروعِ اشتباه را ادامه میدهد. خیلی از برنامهها اجازه میدهند پاسخ را دوباره بسازید یا پیامتان را ویرایش کنید؛ از آن استفاده کنید.
- برای نظرِ دوم، دوباره بپرسید. چون هر پاسخ یکی از راههای ممکن است، تلاشِ تازه برای یک پرسشِ مهم نشان میدهد پاسخِ اول محکم بود یا فقط یکی از احتمالها.
- برای هر چیزی که باید دقیق باشد، چیزی بخواهید که بشود بررسیاش کرد: محاسبهی نوشتهشده، منبع، دستوری که اجرا کرد. مدل در نوشتنِ پاسخِ روان از همه بهتر است؛ پاسخِ درست بررسی لازم دارد.
واژههای این درس
- پیشبینیِ توکنِ بعدی - کاری که یک مدل زبانی میکند: برای یک متن، به هر توکنی که ممکن است بعد بیاید یک احتمال میدهد
- نمونهگیری - انتخابِ توکنِ بعدی از روی آن احتمالها؛ معمولاً یکی از محتملها، ولی نه همیشه بالاترین
- دما - تنظیمی برای اینکه انتخاب چقدر جسورانه باشد: دمای پایین به محتملترین توکنها میچسبد، دمای بالا به توکنهای کماحتمال شانسِ بیشتری میدهد
ایدهی اصلی
مدل هر بار یک توکن مینویسد: به هر توکنِ ممکن یک احتمال میدهد، یکی انتخاب میشود، به متن اضافه میشود و کلِ متن دوباره به مدل برمیگردد. برای همین پاسخها کمکم ظاهر میشوند، یک پرسش میتواند پاسخهای مختلف بگیرد و یک اشتباهِ اولِ کار معمولاً میماند.