مدلهای زبانی بزرگ پس از مرحلهی پیشآموزش، صرفاً ادامهدهندهی متن هستند و توانایی پاسخگویی مستقیم به پرسشها و دستورات را ندارند. درک معماری مرجع InstructGPT و پایپلاین سهمرحلهای آن، زیربنای اصلی تمام تکنیکهای مدرن پسآموزش و همراستاسازی هوش مصنوعی است.
در این درس دقیقاً بررسی میکنیم که چگونه ترکیب فاینتیونینگ نظارتشده (SFT)، مدلسازی پاداش بر پایهی ترجیحات انسانی و بهینهسازی سیاست با الگوریتم PPO باعث شد یک مدل 1.3 میلیارد پارامتری عملکردی به مراتب بهتر از مدل خام 175 میلیارد پارامتری به نمایش بگذارد.
تمام نقدهای بعدی به RLHF دقیقاً به همین پایپلاین برمیگردد. پیش از آنکه ببینید فشار بهینهسازی چگونه متغیر جانشین (proxy) را از شکل طبیعیاش خارج میکند، ابتدا باید خود این متغیر جانشین را ببینید. مقالهی InstructGPT (اویانگ و همکاران، 2022) معماری مرجع را پایهگذاری کرد: فاینتیونینگ نظارتشده (Supervised Fine-Tuning یا SFT) روی جفتهای «دستورالعمل-پاسخ»، یک مدل پاداش (Reward Model یا RM) آموزشدیده بر پایهی رتبهبندی مقایسهای ترجیحات، و PPO در برابر مدل پاداش بههمراه جریمهی واگرایی کولبک-لایبلر (KL penalty) نسبت به خطمشیِ SFT. یک مدل InstructGPT با 1.3 میلیارد پارامتر به مدل خام GPT-3 با 175 میلیارد پارامتر ترجیح داده شد. همین یک نتیجه دلیل آن است که در سال 2026، تکتک آزمایشگاههای پیشرو همچنان از یک پایپلاین پسآموزش بر پایهی RLHF استفاده میکنند.
اهداف یادگیری
- نام بردن از سه مرحلهی پایپلاین InstructGPT و تابع زیان (loss) بهکاررفته در هر مرحله.
- توضیح اینکه چرا یک مدل 1.3 میلیاردی تنظیمشده با دستورالعمل (instruction-tuned) در ارزیابی ترجیحات انسانی، مدل خام GPT-3 با 175 میلیارد پارامتر را شکست داد.
- بیان اینکه جریمهی KL در مرحلهی 3 دقیقاً جلوی چه چیزی را میگیرد و چرا حذف آن به رفتار مُدیاب (mode-seeking) میانجامد.
- تشریح مالیات همراستاسازی (alignment tax) و راهکار PPO-ptx که اویانگ و همکاران برای مهار آن به کار بردند.
صورت مسئله
مدلهای زبانی پیشآموزشدیده متن را کامل میکنند؛ به پرسشها پاسخ نمیدهند. اگر از GPT-3 بخواهید «تابعی در پایتون بنویس که یک لیست را معکوس کند»، اغلب در جواب یک پرامپت (prompt) دیگر تحویلتان میدهد؛ چون بخش عمدهی توزیع آموزشیاش متون وب است که ادامهشان متنهای دیگری از وب میآید. مدل کارش را درست انجام میدهد؛ این کار است که اشتباه تعریف شده.
متغیر جانشینی که تمام آزمایشگاههای جدی برای حل این مشکل به کار گرفتند، ترجیح انسان بود. دو خروجی پیش روی ارزیاب قرار میگیرد؛ ارزیاب گزینهی بهتر را انتخاب میکند؛ و یک مدل پاداش یاد میگیرد مثل ارزیاب تصمیم بگیرد. در ادامه، یک چرخهی یادگیری تقویتی (Reinforcement Learning یا RL) خطمشی را بهسمت خروجیهایی سوق میدهد که مدل پاداش امتیاز بالایی به آنها میدهد. کل ایدهی InstructGPT در همین سه جمله خلاصه میشود؛ مابقی مقاله فقط جزئیات مهندسی است.
مفاهیم کلیدی
مرحلهی 1: فاینتیونینگ نظارتشده (SFT)
جفتهای پرامپت-پاسخ را طوری گردآوری کنید که پاسخ، دقیقاً همان چیزی باشد که یک انسان خوشنیت مینویسد. اویانگ و همکاران از 13 هزار پرامپتِ برچسبزنها و API اوپنایآی استفاده کردند. سپس مدل پایه را با تابع زیان استاندارد آنتروپی متقاطع (Cross-Entropy) روی این دادهها فاینتیون کنید.
آنچه SFT در اختیارتان میگذارد: مدل حالا بهجای ادامهدادن سؤال، به آن پاسخ میدهد. آنچه در اختیارتان نمیگذارد: هیچ سیگنالی دربارهی اینکه وقتی چند پاسخ موجه وجود دارد، ارزیاب کدامیک را ترجیح میدهد.
مرحلهی 2: مدل پاداش (RM)
بهازای هر پرامپت، K نمونه خروجی از مدل SFT بگیرید. یک برچسبزن آنها را رتبهبندی میکند. سپس مدل پاداشی آموزش دهید که به هر جفت پرامپت-پاسخ امتیازی اختصاص دهد؛ طوری که برای جفتهایی که در آنها y_w بر y_l ترجیح داده شده است:
این رابطه همان تابع زیان ترجیحات دوتایی بردلی-تری (Bradley-Terry) است. وزنهای مدل پاداش معمولاً از روی همان مدل SFT مقداردهی اولیه میشوند، با این تفاوت که سر (head) مدل زبانی با یک سر اسکالر جایگزین میشود.
مدلهای پاداش کوچکاند: برای InstructGPT با 175 میلیارد پارامتر، یک مدل 6 میلیاردی کاملاً کافی بود. از طرفی بسیار شکنندهاند؛ بخش 5 مقاله بیشتر به رفتارهای دور زدن پاداش (reward hacking) میپردازد که حتی در مقیاس کوچک خودشان را نشان دادند.
مرحلهی 3: اجرای PPO همراه با جریمهی KL
تابع هدف را مشخص کنید:
آن را با الگوریتم PPO بیشینه کنید. عبارت KL جلوی دور شدن بیشازحد pi از خطمشیِ SFT را میگیرد. بدون این عبارت، بهینهساز بهدنبال نمونههای تخاصمی (adversarial examples) میرود؛ رشتههایی که مدل پاداش به آنها امتیاز بالایی میدهد صرفاً چون هیچوقت آنها را ندیده، نه به این خاطر که انسانها واقعاً ترجیحشان میدهند.
ضریب KL یا همان beta، تعیینکنندهترین هایپرپارامتر در RLHF است. مقدار خیلی کم: دور زدن پاداش؛ مقدار خیلی زیاد: هیچ بهبودی نسبت به SFT حاصل نمیشود.
مالیات همراستاسازی
مدل پس از RLHF بیشتر موردپسند انسانها قرار میگیرد، اما روی بنچمارکهای استاندارد (مانند SQuAD، HellaSwag و DROP) دچار پسرفت میشود. اویانگ و همکاران این افت را «مالیات همراستاسازی» نامیدند و با PPO-ptx مهارش کردند: تزریق گرادیانهای پیشآموزش به تابع هدفِ RL، تا مدل نحوهی حل وظایفی (tasks) را که هرگز برایشان پاداش نگرفته فراموش نکند.
روش PPO-ptx به یک رویکرد استاندارد تبدیل شد؛ بهطوریکه Anthropic، DeepMind و Meta همگی نسخهای از آن را به کار میبرند.
نتیجه
برچسبزنها در حدود 70 درصد مواقع مدل 1.3 میلیاردی InstructGPT (ترکیب SFT + RM + PPO-ptx) را به GPT-3 پایهی 175 میلیاردی ترجیح دادند. این فاصله روی پرامپتهای تستِ پنهان که از ترافیک محیط عملیاتی (پروداکشن) گرفته شده بودند حتی بیشتر شد. دو نکتهی کلیدی از این رقم به دست میآید:
- همراستاسازی محوری کاملاً جدا از توانمندی است. مدل 175 میلیاردی توانمندتر بود؛ مدل 1.3 میلیاردی همراستاتر؛ و برچسبزنها مدل همراستا را ترجیح دادند.
- کف توانمندی را مدل پایه تعیین میکند. با RLHF نمیتوان حقایقی را که مدل پایه اصلاً در دادههایش ندیده، به آن آموخت.
چرا این پایپلاین نقطهی مرجع فاز 18 است؟
تمام نقدهای درسهای بعدی — دور زدن پاداش (درس 2)، الگوریتم DPO (درس 3)، چاپلوسی (درس 4)، روش CAI (درس 5)، ایجنتهای خفته (درس 7) و تظاهر به همراستایی (درس 9) — به بخشی از همین پایپلاین ایراد میگیرند. دور زدن پاداش به مرحلهی 2 حمله میکند. روش DPO مرحلهی 2 و 3 را یکی میکند. روش CAI برچسبزن انسانی را کنار میگذارد. چاپلوسی نشان میدهد برچسبزن انسانی سیگنالی اریب است. تظاهر به همراستایی نشان میدهد خطمشی میتواند مرحلهی 3 را کاملاً دور بزند. تا وقتی کل این پایپلاین در ذهنتان جا نیفتد، درک هیچکدام از این نقدها ممکن نیست.
استفاده از ابزارهای واقعی
فایل code/main.py این سه مرحله را روی دادههای ترجیحات ساختگی شبیهسازی میکند. «خطمشی» پایه در اینجا یک سکهی ناعادلانه روی اکشنهای {A, B, C} است. مرحلهی اول (SFT) اکشنهای برچسبزن را روی 200 پرامپت شبیهسازی میکند. مرحلهی دوم یک مدل پاداش بردلی-تری را با 500 رتبهبندی جفتی برازش میدهد. مرحلهی سوم یک بهروزرسانی سادهشدهی PPO با جریمهی KL نسبت به خطمشی SFT اجرا میکند. میتوانید روند بالا رفتن پاداش، افزایش واگرایی KL و جابهجایی خطمشی را ببینید؛ همچنین میتوانید عبارت KL را غیرفعال کنید تا ببینید پدیدهی دور زدن پاداش ظرف کمتر از 50 گامِ بهروزرسانی نمایان میشود.
مواردی که باید بررسی کنید:
- مسیر کامل اجرای پاداش با
beta = 0.1در مقایسه باbeta = 0.0. - در طول گامهای آموزش.
- توزیع نهایی اکشنها در مقایسه با ترجیح برچسبزن.
خروجی این درس
خروجی این درس فایل outputs/skill-instructgpt-explainer.md خواهد بود. این ابزار با دریافت توضیحات یک پایپلاین RLHF یا چکیدهی یک مقاله، مشخص میکند کدامیک از سه مرحله تغییر کرده، چه تابع زیانی در هر مرحله به کار رفته، و آیا جریمهی KL یا تنظیمکنندهی (regularizer) مشابهی در آن وجود دارد یا نه.
تمرینها
-
اسکریپت
code/main.pyرا اجرا کنید. مقدارbeta = 0.0را قرار دهید و توزیع اکشنها را پس از 200 گامِ PPO گزارش کنید. رفتار مُدیاب را در یک پاراگراف توضیح دهید. -
مدل پاداش را دستکاری کنید تا سوگیری 0.5+ نسبت به اکشن B داشته باشد (شبیهسازی یک باگ در پاداش). الگوریتم PPO را با
beta = 0.1اجرا کنید. آیا جریمهی KL مانع از سوءاستفادهی خطمشی از این سوگیری میشود؟ سوءاستفاده از چه مقدارbetaبه بعد آشکار میشود؟ -
شکل 1 مقالهی اویانگ و همکاران (arXiv:2203.02155) را بررسی کنید. نمودار ترجیح برچسبزن را با اجرای PPO برای 1، 5، 20 و 100 گام و اندازهگیری ترجیح در مقایسه با مدل SFT بازتولید کنید.
-
در بخش 4.3 مقاله گزارش شده که InstructGPT با 1.3 میلیارد پارامتر در حدود 70 درصد مواقع GPT-3 با 175 میلیارد پارامتر را شکست میدهد. چرا این نسبت روی پرامپتهای تستِ پنهان از محیط عملیاتی (پروداکشن)، بالاتر از پرامپتهای خودِ برچسبزنها بوده است؟
-
تابع زیان PPO را با DPO (فاز 10 · 08) روی همان دادههای ترجیحات جایگزین کنید. جابهجایی نهایی خطمشی (واگرایی KL تا SFT) و پاداش نهایی را با هم مقایسه کنید. در پاداش برابر، خطمشی کدام روش بیشتر جابهجا میشود؟
اصطلاحات کلیدی
| اصطلاح | آنچه دیگران میگویند | معنای واقعی آن |
|---|---|---|
| SFT | «تنظیم با دستورالعمل» | مرحلهی 1: فاینتیونینگ با آنتروپی متقاطع روی جفتهای پرامپت-پاسخ |
| Reward model | «همان RM» | رگرسور اسکالر روی (پرامپت، پاسخ) که با روش بردلی-تری روی برچسبهای جفتی آموزش دیده است |
| Bradley-Terry | «تابع زیان ترجیحات دوتایی» | ؛ تقلیل رتبهبندی جفتی به یک مسئلهی دستهبندی باینری |
| KL penalty | «تنظیمکننده» | beta * KL(pi || pi_SFT) — خطمشیِ RL را نزدیک به نقطهی اتکای SFT نگه میدارد |
| PPO-ptx | «الگوریتم PPO با ترکیب پیشآموزش» | افزودن بخشی از درستنمایی لگاریتمی پیشآموزش به تابع هدف PPO برای جبران مالیات همراستاسازی |
| Alignment tax | «پسرفت ناشی از RLHF» | افت عملکرد پس از RLHF روی بنچمارکهای استانداردی که هدف مستقیم فرایند RLHF نبودهاند |
| Labeler preference | «دادهی واقعی» | نمونهای از رتبهبندیهای انسانی؛ RM یک متغیر جانشین آماری برای این دادههاست، نه نمایندهی واقعی «ارزشهای انسانی» |
برای مطالعهی بیشتر
- Ouyang et al. — Training language models to follow instructions with human feedback (arXiv:2203.02155) — مقالهی InstructGPT؛ بنیان همهی پایپلاینهای RLHF پس از آن
- Stiennon et al. — Learning to summarize from human feedback (arXiv:2009.01325) — مقالهی پیشدرآمد دربارهی استفاده از RLHF برای خلاصهسازی
- Christiano et al. — Deep reinforcement learning from human preferences (arXiv:1706.03741) — فرمولبندی اصلی یادگیری تقویتی بر پایهی ترجیحات
- Bai et al. — Training a Helpful and Harmless Assistant with RLHF (arXiv:2204.05862) — توسعهی پایپلاین InstructGPT توسط شرکت Anthropic برای آموزش دستیار مفید و بیضرر (HH)
