آموزشمدل‌های زبانی بزرگ (LLM)

درس ۴۳ از ۸۵، هوش مصنوعی، حدود ۱۲ دقیقه خواندن

DPO: یادگیری مستقیم از ترجیح

جواب کوتاه

DPO، کوتاه‌شده‌ی Direct Preference Optimization، یعنی «بهینه‌سازی مستقیم ترجیح»، همون هدف RLHF رو بی داور جدا دنبال می‌کنه. RLHF اول یه مدل پاداش می‌سازه و بعد مدل رو با یادگیری تقویتی تمرین می‌ده؛ کاری که پیچیده و گاهی ناپایداره. DPO مستقیم از همون جفت‌های «این بهتر از اون» یاد می‌گیره: شانس جواب بهتر رو، نسبت به مدل اولیه، بیشتر می‌کنه و شانس جواب بدتر رو کمتر. با یه تابع هزینه‌ی ساده، مثل یه مسئله‌ی دسته‌بندی. پژوهش ۲۰۲۳ که معرفیش کرد، دید نتیجه‌اش هم‌اندازه یا بهتر از RLHF بود و خیلی ساده‌تر.

میون‌بر

RLHF یه راه طولانی بود: جفت‌های ترجیح، بعد ساختن داور، بعد تمرین با داور. DPO می‌گه داور نمی‌خوایم؛ مستقیم برو سراغ خود مدل.

توی درس‌های RLHF و مدل پاداش دیدیم راه معمول دو مرحله داره: اول یه داور ماشینی از جفت‌های ترجیح ساخته می‌شه، بعد مدل با یادگیری تقویتی تمرین می‌کنه تا نمره‌ی داور رو بالا ببره، بی اینکه زیاد از نقطه‌ی شروعش دور بشه. پژوهش ۲۰۲۳ که DPO رو معرفی کرد، این فرایند رو «پیچیده و اغلب ناپایدار» توصیف کرد.

حرف اصلیش این بود که با یه حساب ریاضی می‌شه نشون داد همین مسئله رو می‌شه با یه تابع هزینه‌ی ساده، مثل یه مسئله‌ی دسته‌بندی، حل کرد؛ بی داور جدا و بی یادگیری تقویتی. اسم مقاله‌شون هم جالبه: «مدل زبانی شما، پنهانی یه مدل پاداشه».

یکی بالا، یکی پایین

ایده‌ی DPO ساده‌ست. برای هر جفت «جواب الف بهتر از جواب ب»، دو کار می‌کنه:

شانس اینکه مدل جواب بهتر رو بنویسه، بیشتر می‌شه؛ و شانس جواب بدتر، کمتر. ولی این‌ها نسبت به خود مدل اولیه سنجیده می‌شن، نه به‌تنهایی. یعنی سوال این نیست که «الف چقدر محتمله»، سوال اینه که «الف نسبت به قبل چقدر محتمل‌تر شده، و ب نسبت به قبل چقدر».

اون «پنهانی یه مدل پاداشه» از همین‌جا میاد: همین فاصله‌ی شانس‌ها نسبت به مدل اولیه، نقش نمره‌ی داور رو بازی می‌کنه. پس داور لازم نیست جدا ساخته بشه؛ خود مدل، داور هم هست.

آزمایش ما

فرض کنید یه مدل خیلی کوچیک داریم که برای یه سوال فقط چهار جواب ممکن بلده: الف، ب، ج، د؛ اولش با شانس برابر، هر کدوم ۲۵ درصد. پنج ترجیح هم داریم: الف از ب و ج و د بهتره، و ب و ج از د بهترن. DPO رو با پایتون روش اجرا کردیم.

بعد از ۱۰ قدم، الف به ۴۳٫۸ درصد رسید و د به ۱۱٫۴ درصد افتاد؛ ب و ج که هر کدوم یه بار برنده و یه بار بازنده بودن، تقریبا سر جاشون موندن. بعد از ۵۰ قدم، الف ۸۲٫۶ درصد شد. مدل بی هیچ داوری، فقط از پنج جفت، ترتیب رو یاد گرفت.

ولی ببینید بعد از ۳۰۰ قدم چی شد: الف ۹۹٫۱ درصد، و بقیه تقریبا صفر. اگه آموزش زیادی ادامه پیدا کنه، مدل فقط یه جواب رو بلد می‌شه و تنوعش از بین می‌ره. یه چیزی باید جلوی این رو بگیره.

افسار درونی

یادتونه توی RLHF یه «افسار» بود که نمی‌ذاشت مدل خیلی از نقطه‌ی شروعش دور بشه؟ DPO همون هدف رو داره؛ مقاله‌اش صاف می‌گه داره همون مسئله‌ی RLHF رو حل می‌کنه، که شامل «زیاد دور نشدن از مدل اولیه» هم هست. برای همین هم شانس‌ها همیشه نسبت به مدل اولیه سنجیده می‌شن.

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

نتیجه

پژوهش ۲۰۲۳ چند تا مزیت برای DPO گفت: پایداره، محاسبه‌ی کمی می‌خواد، لازم نیست موقع آموزش از خود مدل جواب نمونه گرفت، و لازم نیست کلی تنظیمات رو امتحان کرد. یعنی خیلی ساده‌تر از RLHF پیاده و آموزش داده می‌شه.

کیفیتش هم کم نبود. توی کنترل احساس متن، یعنی مثلا مثبت‌تر کردن لحن جمله‌ها، از RLHF با یادگیری تقویتی بهتر بود؛ و توی خلاصه‌نویسی و گفت‌وگوهای یه‌نوبتی، هم‌اندازه یا بهتر.

حتی جفت هم لازم نیست

DPO هنوز جفت‌هایی لازم داره که برای یه سوال، دو جواب کنار هم مقایسه شده باشن. یه پژوهش ۲۰۲۴ پرسید: می‌شه با کمتر از این هم کار کرد؟

روشی که پیشنهاد داد، اسمش KTO هست، کوتاه‌شده‌ی Kahneman-Tversky Optimization، از اسم دو روان‌شناسی که درباره‌ی اینکه آدم‌ها سود و زیان رو چطور حس می‌کنن نظریه داشتن؛ مثلا اینکه زیان رو بیشتر از سود هم‌اندازه حس می‌کنیم. این روش فقط یه برچسب ساده می‌خواد: این جواب خوبه یا بده. همون دکمه‌ی پسند و نپسندی که زیر جواب چت‌بات‌ها می‌بینید. اون پژوهش گفت با همین علامت ساده‌تر، روی مدل‌های ۱ تا ۳۰ میلیاردی به اندازه‌ی روش‌های جفتی یا بهتر نتیجه گرفت.

DPO بهتره یا RLHF

بعد از اومدن DPO، خیلی‌ها فکر کردن دیگه یادگیری تقویتی لازم نیست. ولی داستان این‌قدر ساده نموند.

یه پژوهش ۲۰۲۴ این دو تا رو دقیق‌تر مقایسه کرد. نتیجه گرفت DPO ممکنه محدودیت‌های پایه‌ای داشته باشه، و اینکه روش یادگیری تقویتی RLHF، اگه چند جزئیات مهمش درست انجام بشه، توی همه‌ی آزمایش‌هاش، از گفت‌وگو تا نوشتن کد، از روش‌های دیگه بهتر بود؛ و توی مسابقه‌های سخت برنامه‌نویسی به بهترین نتیجه‌ی اون روز رسید. پس درس اصلی اینه: DPO ساده‌تر و ارزون‌تره و خیلی وقت‌ها بسه، ولی جای RLHF رو کامل نگرفته؛ و هر کدوم جای خودش رو داره.

هنوز چی لازمه

DPO داور رو حذف می‌کنه، ولی آدم‌ها رو نه.

داده‌ی DPO دقیقا همون داده‌ی مدل پاداشه: جفت‌هایی که آدم‌ها گفتن کدوم جواب بهتره. پس همه‌ی چیزهایی که درباره‌ی این داده گفتیم، اینجا هم هست: سلیقه‌ی همون گروهی رو یاد می‌گیره که ترجیح دادن، و اگه داده کج باشه، مثل داوری که توی درس مدل پاداش اشتباه یاد گرفت، مدل هم کج یاد می‌گیره.

چند نکته

  • همون هدف، راه کوتاه‌تر. بی داور جدا، بی یادگیری تقویتی.
  • بهتر بالا، بدتر پایین. نسبت به مدل اولیه.
  • خود مدل، داور هم هست. اسم مقاله همینه.
  • زیادی ادامه نده. تنوع از بین می‌ره.
  • داده همونه. جفت‌های ترجیح آدم‌ها، با همه‌ی محدودیت‌هاش.

درس بعد، آخرین درس این ایستگاه، تصویر بزرگ همه‌ی این آموزش‌ها رو نشون می‌ده: هم‌ترازی و ایمنی.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • هدف همون RLHF، بی داور جدا.
  • شانس جواب بهتر بالا، بدتر پایین.
  • نسبت به مدل اولیه سنجیده می‌شه.
  • ساده‌تر و پایدارتر.
  • هنوز جفت‌های ترجیح آدم‌ها لازمه.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد