فصل ۲ · درس ۹ از ۴۳

نمونه‌برداری: دما، top-p و توهم هوش مصنوعی

چرا مدل به یک پرسش دو بار دو جواب متفاوت می‌دهد؟ چرا گاهی با اعتمادبه‌نفس کامل چیزی را از خودش می‌سازد؟ جواب هر دو در یک مرحلهٔ کم‌توجه‌شده است: نمونه‌برداری. و خبر خوب اینکه با چند پارامتر ساده می‌شود رفتارش را عوض کرد.

در درس قبل دیدید مدل در آخرین لایه برای هر توکن ممکن یک احتمال حساب می‌کند. ولی خروجی مدل یک توکن است، نه یک جدول احتمال. فرایند انتخاب از میان این احتمال‌ها را نمونه‌برداری (sampling) می‌گویند — و شاید کم‌قدرترین مفهوم در کل هوش مصنوعی باشد. هم رفتارهای عجیب مدل را توضیح می‌دهد، هم با کمترین زحمت کیفیت را بالا می‌برد.

از عدد خام تا احتمال

مدل مستقیم احتمال بیرون نمی‌دهد. برای هر توکن واژگانش یک عدد خام به نام لوجیت (logit) می‌سازد — پس اگر واژگان ۱۰۰ هزار توکن باشد، ۱۰۰ هزار لوجیت. لوجیت بزرگ‌تر یعنی احتمال بیشتر، ولی خودش احتمال نیست: جمعشان یک نمی‌شود و می‌تواند منفی باشد. یک تابع به نام سافت‌مکس (softmax) آن‌ها را به احتمال‌های درست تبدیل می‌کند: همه مثبت، جمعشان یک.

حالا از این احتمال‌ها چطور انتخاب کنیم؟ ساده‌ترین راه، برداشتن محتمل‌ترین است که به آن نمونه‌برداری حریصانه (greedy) می‌گویند. برای دسته‌بندی عالی است: اگر مدل فکر می‌کند ایمیل به احتمال ۹۰٪ هرزنامه است، هرزنامه‌اش بدان. ولی برای تولید متن، نتیجه خسته‌کننده است: مدلی که به هر پرسشی با پیش‌پاافتاده‌ترین کلمه‌ها جواب بدهد.

راه دیگر، انتخاب به نسبت احتمال است. اگر بعد از «رنگ موردعلاقه‌ام…» کلمهٔ «سبز» ۵۰٪ و «قرمز» ۳۰٪ احتمال داشته باشد، مدل نصف دفعه‌ها سبز و یک‌سوم دفعه‌ها قرمز می‌گوید. همین یک تصمیم است که مدل را غیرقطعی می‌کند.

سه پیچ تنظیم: دما، top-k و top-p

دما: خلاقیت در برابر ثبات

انتخاب به نسبت احتمال هم یک ایراد دارد: کلمه‌های رایج آن‌قدر محتمل‌اند که جواب شبیه حرف یک بچهٔ پنج‌ساله می‌شود: «رنگ موردعلاقه‌ام سبز است.» جملهٔ خلاق — «رنگ موردعلاقه‌ام رنگ برکه‌ای آرام در صبح بهار است» — شانس کمی دارد، چون کلمهٔ اولش کم‌احتمال است.

دما (temperature) احتمال‌ها را بازتوزیع می‌کند. پیش از سافت‌مکس، همهٔ لوجیت‌ها بر دما تقسیم می‌شوند. دمای بالا فاصلهٔ توکن‌های رایج و نادر را کم می‌کند (خلاق‌تر، ولی شاید بی‌ربط‌تر)؛ دمای پایین فاصله را زیاد می‌کند (یکنواخت‌تر، ولی شاید کسل‌کننده‌تر). یک مثال عددی: مدلی با دو خروجی A و B که لوجیت‌هایشان ۱ و ۲ است:

احتمال انتخاب B (لوجیت ۲) در برابر A (لوجیت ۱)≈۱۰۰٪دما ۰٫۱۸۸٪دما ۰٫۵۷۳٪دما ۱ (پیش‌فرض)۶۲٪دما ۲سهم Bسهم A
هرچه دما پایین‌تر، مدل بیشتر محتمل‌ترین گزینه را برمی‌دارد. زیر دمای ۰٫۱ تقریباً همیشه B را می‌گوید؛ در دمای ۲، A هم شانس جدی پیدا می‌کند.

top-k: فقط از میان k تای اول

سافت‌مکس روی ۱۰۰ هزار لوجیت گران است. top-k فقط k لوجیت بزرگ‌تر را نگه می‌دارد و سافت‌مکس و انتخاب را فقط روی همان‌ها انجام می‌دهد. k معمولاً بین ۵۰ تا ۵۰۰ است. k کوچک‌تر یعنی متن قابل‌پیش‌بینی‌تر ولی کم‌جذاب‌تر.

top-p: به اندازهٔ لازم، نه عدد ثابت

ایراد top-k این است که تعداد گزینه‌ها ثابت است، در حالی که باید به موقعیت بستگی داشته باشد. برای «موسیقی دوست داری؟ فقط بگو بله یا نه» دو گزینه کافی است؛ برای «معنای زندگی چیست؟» خیلی بیشتر لازم است. top-p (یا نمونه‌برداری هسته‌ای) توکن‌ها را از محتمل‌ترین به پایین جمع می‌زند و وقتی جمع احتمال به p رسید، می‌ایستد. فقط همین مجموعه در انتخاب شرکت می‌کند.

توکن بعدی (نمونهٔ فرضی)احتمالجمع تجمعیبا top-p = ۰٫۹با top-p = ۰٫۹۹
بله۶۰٪۶۰٪✓✓
شاید۳۲٪۹۲٪✓ (از ۹۰٪ گذشت)✓
نه۷٪۹۹٪—✓
بقیه۱٪۱۰۰٪——

مقدار رایج p بین ۰٫۹ تا ۰٫۹۵ است. روی کاغذ مزیت چشمگیری ندارد، ولی در عمل خوب جواب داده و برای همین رایج شده. روش نزدیک دیگری هم هست به نام min-p: حداقل احتمالی که هر توکن باید داشته باشد تا در انتخاب شرکت کند.

کِی بایستد؟

خروجی بلندتر یعنی زمان و هزینهٔ بیشتر. دو راه برای متوقف کردن مدل هست: سقف تعداد توکن (ساده، ولی ممکن است وسط جمله قطع کند) و توکن یا کلمهٔ توقف (مثلاً توکن پایان دنباله).

چند بار بپرس، بهترین را بردار

تا اینجا دربارهٔ انتخاب یک توکن بود. حالا دربارهٔ کل پاسخ: یک راه ساده برای بهتر کردن کیفیت این است که به‌جای یک پاسخ، چند پاسخ بگیرید و بهترین را انتخاب کنید. به این کار در ادبیات این حوزه محاسبهٔ زمان آزمون (test time compute) می‌گویند — یعنی خرج محاسبهٔ بیشتر در لحظهٔ استفاده، نه در آموزش.

روش انتخابچطورمناسب برای
میانگین logprobاحتمال کل پاسخ = حاصل‌ضرب احتمال توکن‌ها؛ برای اینکه پاسخ کوتاه جایزه نگیرد، میانگین را می‌گیرندوقتی logprobs در دسترس است
مدل پاداش یا وارسی‌گرمدل دیگری به هر پاسخ نمره می‌دهد (همان بهترین از N در درس قبل)کیفیت کلی، ریاضی، کد
رأی اکثریتیک مسئله را چند بار حل کن؛ پرتکرارترین جواب را بردارکارهایی با جواب دقیق — ریاضی، چندگزینه‌ای
قاعدهٔ خود محصولمثلاً کوتاه‌ترین پاسخ، یا اولین پرسش SQL که معتبر استوقتی معیار روشنی دارید
اولین پاسخ معتبرچند پاسخ هم‌زمان بخواه و اولی را که تمام شد و درست بود نشان بدهکم کردن تأخیر

دو نکتهٔ عملی. اول، تنوع پاسخ‌ها کمک می‌کند؛ اگر از یک مدل چند پاسخ می‌گیرید، پارامترهای نمونه‌برداری را بین درخواست‌ها کمی عوض کنید. دوم، این روش هزینه دارد: دو پاسخ تقریباً دو برابر یک پاسخ خرج دارد. در آزمایش OpenAI، بهبود تا حدود ۴۰۰ پاسخ ادامه داشت و بعد افت کرد — ولی هیچ محصول واقعی‌ای برای هر پرسش ۴۰۰ پاسخ نمی‌گیرد.

خروجی ساختاریافته

در محصول واقعی خروجی مدل اغلب باید قالب مشخصی داشته باشد: یا چون خود کار ساختاریافته است (تبدیل پرسش فارسی به SQL، دسته‌بندی به یکی از چند برچسب)، یا چون خروجی به برنامهٔ دیگری داده می‌شود — مثلاً JSON با کلیدهای مشخص، که در فصل ۶ برای ابزارهای ایجنت حیاتی می‌شود. پنج راه هست، از سبک به سنگین:

راهچطورقوت و ضعف
پرامپتاز مدل بخواه قالب را رعایت کندآسان‌ترین؛ ولی تضمینی نیست و چند درصد خطا برای خیلی از محصولات زیاد است
پس‌پردازشخطاهای تکراری مدل را با کد درست کن — مثلاً کروشهٔ جاافتاده را اضافه کنارزان و شگفت‌انگیز؛ LinkedIn با یک تجزیه‌گر مقاوم، خروجی درست را از ۹۰٪ به ۹۹٫۹۹٪ رساند
چند بار پرسیدنآن‌قدر بپرس تا قالب درست شودساده؛ ولی هزینه و تأخیر دارد
نمونه‌برداری مقیددر هر گام فقط توکن‌هایی را مجاز کن که با دستور زبان قالب جورندتضمین قالب؛ ولی برای هر قالب دستور زبان جدا لازم است و ممکن است کُند کند
تنظیم دقیقمدل را روی نمونه‌های همان قالب آموزش بدهمؤثرترین و عمومی‌ترین؛ ولی گران‌ترین

طبیعت احتمالی: ناسازگاری و توهم

از دوستتان دو بار با یک دقیقه فاصله بپرسید «بهترین غذای دنیا چیست؟» — هر دو بار یک جواب می‌دهد. مدل ممکن است ندهد: اگر فکر کند غذای ایرانی ۷۰٪ و ایتالیایی ۳۰٪ «بهترین» است، ۷۰٪ دفعه‌ها ایرانی می‌گوید و ۳۰٪ ایتالیایی. این احتمالی بودن همان چیزی است که مدل را برای ایده‌پردازی عالی می‌کند — خلاقیت یعنی بیرون رفتن از مسیرهای رایج — و برای بقیهٔ کارها دردسرساز.

ناسازگاری

دو شکل دارد: ورودی یکسان، خروجی متفاوت (یک پرسش را دو بار بپرسید، دو جواب بگیرید — مثلاً مدلی که به یک انشا یک بار ۳ از ۵ و بار دیگر ۵ از ۵ نمره می‌دهد) و ورودی کمی متفاوت، خروجی بسیار متفاوت (مثلاً فقط یک حرف بزرگ‌تر نوشته شده).

  • برای شکل اول: پاسخ را ذخیره کنید تا پرسش تکراری همان جواب را بگیرد؛ دما، top-p و top-k را ثابت کنید؛ و بذر تصادفی (seed) را ثابت نگه دارید.
  • ولی حتی با همهٔ این‌ها تضمین صددرصد نیست: سخت‌افزار هم روی خروجی اثر دارد. اگر از سرویس ابری استفاده می‌کنید، این کنترل دست شما نیست.
  • برای شکل دوم: ثابت کردن پارامترها کمکی نمی‌کند؛ راهش پرامپت دقیق (فصل ۵) و سامانهٔ حافظه (فصل ۶) است.

توهم

توهم یعنی پاسخی که ریشه‌ای در واقعیت ندارد — و برای هر کاری که به درستی وابسته است، کشنده است. در ژوئن ۲۰۲۳ یک مؤسسهٔ حقوقی آمریکایی جریمه شد چون پرونده‌ای به دادگاه داده بود که پژوهش حقوقی‌اش را ChatGPT ساخته بود — با رأی‌هایی که هرگز وجود نداشتند.

اگر ناسازگاری از تصادف نمونه‌برداری می‌آید، توهم پیچیده‌تر است: چطور چیزی که مدل هرگز ندیده، گزینهٔ محتملی می‌شود؟ دو فرضیهٔ مکمل هست:

فرضیهخلاصهمثال
خودفریبی (DeepMind، ۲۰۲۱)مدل فرق بین چیزی که به او داده‌اند و چیزی که خودش ساخته را نمی‌فهمد. یک جملهٔ کمی غلط که خودش نوشت، برایش حکم واقعیت را پیدا می‌کند و روی آن بنا می‌کندمدل تصویری شیشهٔ شامپو را «شیر» تشخیص داد و بعد «شیر» را جزو مواد تشکیل‌دهندهٔ روی برچسب نوشت. پژوهشگران به این «توهم گلوله‌برفی» می‌گویند
ناهمخوانی دانش (OpenAI)در SFT، مدل از پاسخ‌های برچسب‌زن‌ها تقلید می‌کند. اگر برچسب‌زن از دانشی استفاده کند که مدل ندارد، در عمل به مدل یاد می‌دهیم چیزی بسازدبرچسب‌زن پاسخ دقیقی با منبعی می‌نویسد که مدل هرگز ندیده؛ مدل یاد می‌گیرد با همان اطمینان حرف بزند

گلوله‌برفی یک جنبهٔ نگران‌کننده دارد: فرض غلط اولیه می‌تواند مدل را در پرسش‌هایی هم به اشتباه بیندازد که در حالت عادی درست جواب می‌داد — مثلاً ادعا کند ۹۶۷۷ بر ۱۳ بخش‌پذیر است، با اینکه خودش می‌داند نیست. و یک نتیجهٔ غافلگیرکننده: در مقالهٔ InstructGPT، مدلی که RLHF دیده بود بیشتر توهم داشت تا مدلی که فقط SFT دیده بود — هرچند برچسب‌زن‌ها در مجموع همان را ترجیح می‌دادند.

خودآزمایی

آزمونک ۱

برای استخراج شمارهٔ فاکتور از متن ایمیل، کدام تنظیم منطقی‌تر است؟

آزمونک ۲

مزیت top-p نسبت به top-k چیست؟

آزمونک ۳

مدلی که به یک انشا یک بار ۳ و یک بار ۵ نمره می‌دهد، دچار کدام مشکل است و اولین قدم منطقی کدام است؟

آزمونک ۴

طبق فرضیهٔ «خودفریبی»، چرا یک خطای کوچک در اول پاسخ می‌تواند به یک توهم بزرگ برسد؟

آزمونک ۵

سقف توکن خروجی را خیلی پایین گذاشته‌اید و از مدل JSON خواسته‌اید. محتمل‌ترین خرابی کدام است؟

مرور فلش‌کارت‌های این درس

۱۰ کارت · ۰ مرور

وارد شوید تا پیشرفتتان ذخیره شود و از همین‌جا ادامه دهید.

آکادمی هوش مصنوعی شیدهوش — بخشی از shidhoosh.com