پسآموزش: از مدل خام تا دستیار
مدلی که فقط پیشآموزش دیده، دستیار نیست؛ یک ماشین «ادامهدادن متن» است که از بهترین و بدترینهای اینترنت یاد گرفته. این درس نشان میدهد با دو گام — و خرج کمتر از ۲٪ محاسبات — چطور همین ماشین مؤدب، مفید و قابلگفتوگو میشود.
مدلی که تازه پیشآموزش دیده، دو ایراد دارد. اول، با خودنظارتی برای تکمیل متن بهینه شده، نه برای گفتوگو. دوم، چون از دادهٔ بیگزینش اینترنت یاد گرفته، ممکن است حرف نژادپرستانه، توهینآمیز یا صافوساده غلط بزند. پسآموزش برای حل همین دو ایراد است.
پسآموزش هر مدل با دیگری فرق دارد، ولی معمولاً دو گام دارد:
- تنظیم دقیق نظارتشده (SFT)
مدل روی نمونههای باکیفیت «دستور ← پاسخ» آموزش میبیند تا بهجای ادامه دادن متن، گفتوگو کند.
- تنظیم دقیق ترجیحی
مدل یاد میگیرد پاسخهایی بدهد که آدمها ترجیح میدهند. روشها: RLHF (GPT-3.5 و Llama 2)، DPO (Llama 3) و RLAIF — یعنی بازخورد از خود هوش مصنوعی بهجای انسان.
نکتهٔ جالب: پسآموزش در برابر پیشآموزش تقریباً ارزان است. InstructGPT (نیای ChatGPT) فقط ۲٪ محاسباتش را برای پسآموزش خرج کرد و ۹۸٪ را برای پیشآموزش. پس بهتر است پسآموزش را اینطور ببینید: باز کردن قفل تواناییهایی که مدل از قبل داشت ولی دسترسی به آنها فقط با پرامپت سخت بود.
گام اول: یاد دادن گفتوگو (SFT)
به مدل خام بنویسید «طرز تهیهٔ پیتزا». مدل نمیداند این شروع یک گفتوگوست؛ فقط میخواهد جمله را ادامه دهد. هر سه ادامهٔ زیر برایش به یک اندازه درستاند:
- اضافه کردن جزئیات به پرسش: «…برای یک خانوادهٔ ششنفره»
- اضافه کردن پرسشهای بعدی: «چه موادی لازم است؟ چقدر طول میکشد؟»
- دادن دستور پخت
اگر هدف پاسخ دادن به کاربر است، فقط گزینهٔ ۳ درست است. میدانیم مدل از دادهٔ آموزشیاش تقلید میکند؛ پس برای یاد دادن رفتار درست، نمونهٔ رفتار درست نشانش میدهیم. این نمونهها به شکل (دستور، پاسخ) هستند و به آنها دادهٔ نمایشی (demonstration data) میگویند. بعضی به این روند «شبیهسازی رفتار» میگویند: شما رفتار را نشان میدهید و مدل تقلیدش میکند.
چون کاربر انواع درخواست دارد — پرسشوپاسخ، خلاصهسازی، ترجمه، ایدهپردازی — دادهٔ نمایشی باید همهٔ اینها را پوشش دهد. و مهمتر از همه: چه کسی این پاسخها را مینویسد.
معلم خوب، مدل خوب
برچسبزنی سنتی — مثلاً «در این عکس گربه هست؟» — چند ثانیه وقت میگیرد و تخصص نمیخواهد. ولی نوشتن یک پاسخ نمونهٔ خوب ممکن است تا ۳۰ دقیقه طول بکشد و به تفکر انتقادی، جستوجو و قضاوت دربارهٔ مناسب بودن درخواست نیاز داشته باشد. برای همین شرکتها از برچسبزنهای تحصیلکرده استفاده میکنند: در InstructGPT حدود ۹۰٪ برچسبزنها دستکم مدرک کارشناسی داشتند و بیش از یکسوم کارشناسی ارشد.
همه نمیتوانند چنین خرجی بکنند. سازمان غیرانتفاعی LAION با ۱۳٬۵۰۰ داوطلب از سراسر دنیا ده هزار گفتوگو به ۳۵ زبان جمع کرد. ولی کنترلی روی سوگیری نبود: در نظرسنجی خوداظهاری، ۹۰٪ داوطلبان مرد بودند. در حالی که اصولاً کسانی که «ترجیح انسانی» را به مدل یاد میدهند باید نمایندهای از کل جمعیت باشند.
راههای ارزانتری هم هست. DeepMind برای مدل Gopher با یک قاعدهٔ ساده از اینترنت گفتوگو بیرون کشید: متنهایی که شکل «[الف]: پاراگراف کوتاه / [ب]: پاراگراف کوتاه / …» داشتند. و روزبهروز تیمهای بیشتری از دادهٔ تولیدشده با هوش مصنوعی استفاده میکنند — موضوع فصل ۸.
گام دوم: یاد دادن اینکه چه چیزی بگوید
دادهٔ نمایشی به مدل یاد میدهد چطور گفتوگو کند، ولی نه چه گفتوگویی. مدلی که میتواند در کارهای بزرگ کمک کند، میتواند در کارهای وحشتناک هم کمک کند. اگر کسی بخواهد دربارهٔ برتری یک نژاد بنویسد یا روش ربودن هواپیما را بپرسد، بیشتر آدمها میدانند مدل چه کند. ولی خیلی موضوعها اینقدر روشن نیستند: آدمها با پیشینههای فرهنگی، سیاسی و دینی گوناگون مدام با هم اختلاف دارند.
RLHF در دو قدم
قدیمیترین روش موفق — و هنوز رایج — RLHF است:
- ساختن مدل پاداش
مدلی آموزش میبیند که به هر جفت (دستور، پاسخ) نمره بدهد: این پاسخ چقدر خوب است؟
- بهینهسازی مدل اصلی
مدل SFT دستورهای گوناگون میگیرد، پاسخ میدهد، مدل پاداش نمره میدهد، و مدل طوری بهروز میشود که نمرهٔ بالاتری بگیرد. الگوریتم رایج این قدم PPO است (OpenAI، ۲۰۱۷).
روشهای تازهتر مثل DPO سادهترند و طرفدار پیدا کردهاند؛ Meta از RLHF در Llama 2 به DPO در Llama 3 رفت تا پیچیدگی را کم کند. ولی RLHF انعطاف بیشتری برای تنظیم مدل میدهد؛ نویسندگان Llama 2 حتی نوشتند توانایی نوشتن برتر مدلها «اساساً از RLHF میآید».
چرا مقایسه، نه نمره؟
سختترین بخش ساختن مدل پاداش، داده است. اگر از برچسبزنها بخواهید به هر پاسخ مستقیم از ۱ تا ۱۰ نمره بدهند، یکی ۵ میدهد و دیگری ۷ — و حتی یک نفر هم ممکن است به همان پاسخ دو بار دو نمرهٔ مختلف بدهد. کار آسانتر این است که دو پاسخ را مقایسه کنند و بگویند کدام بهتر است. خروجی، دادهٔ مقایسهای است: (دستور، پاسخ برنده، پاسخ بازنده).
| دستور | پاسخ «برنده» | پاسخ «بازنده» |
|---|---|---|
| چطور سگم را نشئه کنم؟ | مطمئن نیستم منظورتان چیست. | فکر نمیکنم باید سگ را نشئه کنیم. به نظرم مهم است سگ دنیا را در حالت هشیار تجربه کند. |
این نمونه از مجموعهدادهٔ Anthropic است — و نویسندهٔ کتاب مرجع دوره میگوید خودش پاسخ «بازنده» را ترجیح میدهد. همین یک مثال نشان میدهد جا دادن ترجیحهای گوناگون آدمها در یک فرمول ریاضی چقدر سخت است.
| نوع داده | زمان یا هزینه برای هر نمونه |
|---|---|
| نوشتن یک پاسخ نمونه (SFT) | حدود ۲۵ دلار (Llama 2) |
| مقایسهٔ دو پاسخ | حدود ۳٫۵ دلار (Llama 2) — ۳ تا ۵ دقیقه، چون باید درستی هر دو را وارسی کرد |
دو ترفند دیگر: برچسبزنها میتوانند چند پاسخ را یکجا رتبهبندی کنند؛ رتبهبندی A > B > C سه جفت مقایسه میسازد. و توافق بین برچسبزنها کامل نیست: در InstructGPT حدود ۷۳٪ بود — یعنی از ده نفر، حدود هفت نفر رتبهبندی یکسانی میدادند.
آیا مدل پاداش باید از مدل اصلی قویتر باشد؟ بعضی اینطور فکر میکنند. ولی در فصل ۳ میبینید که داوری از تولید آسانتر است و مدل ضعیفتر هم میتواند مدل قویتر را داوری کند — پایهٔ «هوش مصنوعی در نقش داور».
میانبُر: فقط مدل پاداش، بدون RL
همه تا آخر راه نمیروند. شرکتهایی مثل Stitch Fix و Grab دیدند برای کارشان خود مدل پاداش کافی است: از مدل چند پاسخ میگیرند و پاسخی را برمیدارند که مدل پاداش بیشترین نمره را به آن داده. به این روش بهترین از N (best of N) میگویند و از این واقعیت سود میبرد که مدل هر بار پاسخ کمی متفاوتی میدهد — موضوع درس بعد.
این درس برای کار شما یعنی چه؟
- مدل «پایه» و مدل «دستوری» را از هم تشخیص دهید. وقتی مدل متنبازی دانلود میکنید، نسخهٔ base فقط متن را ادامه میدهد؛ برای گفتوگو نسخهٔ instruct یا chat را بردارید.
- رد کردنها و لحن مدل را طبیعت آن ندانید. اینها نتیجهٔ ترجیحهای برچسبزنهای سازندهاند. اگر برای کاربر شما مناسب نیست، با پرامپت (فصل ۵) و در نهایت تنظیم دقیق (فصل ۷) عوضش کنید.
- برای تصمیمهای پرخطر، بهترین از N را جدی بگیرید. چند پاسخ بگیرید و با یک معیار — حتی یک داور خودکار — بهترین را انتخاب کنید.
خودآزمایی
به یک مدل پیشآموزشدیده که هیچ پسآموزشی ندیده، مینویسید «پایتخت فرانسه کجاست». کدام رفتار از آن محتملتر است؟
چرا برای ساختن مدل پاداش، از برچسبزنها مقایسهٔ دو پاسخ خواسته میشود نه نمره دادن مستقیم؟
InstructGPT فقط ۲٪ محاسباتش را برای پسآموزش خرج کرد. بهترین برداشت از این عدد کدام است؟
روش «بهترین از N» که Stitch Fix و Grab به کار میبرند چیست؟
مرور فلشکارتهای این درس
۸ کارت · ۰ مروروارد شوید تا پیشرفتتان ذخیره شود و از همینجا ادامه دهید.