Inversion-DPO: روشی خفن و ساده‌تر برای تربیت مدل‌های دیفیوژن بعد از آموزش!

Fall Back

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

اول یه توضیح کوتاه: مدل‌های دیفیوژن یا Diffusion Models همون هوش مصنوعی‌هایی هستن که می‌تونن با یک کلمه یا جمله تصویر یا حتی چیزهایی مثل صدا و ویدیو تولید کنن. این مدل‌ها به شدت توی زمینه متن به تصویر و کارهای مولد دیگه دارن گل می‌کنن.

تا حالا چی کار می‌کردن؟
معمولاً بعد از اینکه مدل اصلی رو ساختن، میان اونو با روش‌هایی به سلیقه و ترجیحات آدم‌ها نزدیک‌تر می‌کنن (بهش می‌گن alignment). مثلاً کاری می‌کنن که خروجی مدل همونی باشه که کاربر دوست داره. اما این پروسه معمولاً خیلی سنگین میشه! اول باید یه مدل پایه خیلی قدرتمند درست کنن، بعدش هم یه مدل جدای جایزه‌دهنده یا Reward Model بسازن (یه نوع مدل که بررسی می‌کنه خروجی مدل اصلی چقدر با سلیقه آدم‌ها می‌خونه – خود Reward Modeling یعنی مدل‌سازیِ پاداش دادن!) و تازه کلی هم وقت و برق و GPU می‌سوزونه!

اینجا دانشمندها یه روش تازه به اسم Inversion-DPO اومدن رو کردن که قول دادن هم سریع‌تره، هم دقیق‌تر، هم دردسرِ مدل جایزه رو نداره!

Inversion-DPO چطور کار می‌کنه؟
بیاید یه کم ساده کنم: توی روش‌های قبلی یه چیزی بود به اسم DPO یا Direct Preference Optimization – یعنی به طور مستقیم مدل رو طبق ترجیحات کاربر تنظیم می‌کردن. حالا این مقاله DPO رو با یه روش جالب به اسم DDIM Inversion ترکیب کرده. DDIM خودش یه مدل دیفیوژن معروف برای نمونه‌گیریه، اما اینجا کار جالب‌تر میشه: اینا اومدن «وارون‌سازی» کردن. یعنی چی؟ یعنی از خروجی یا تصویر نهایی (چه بهتر باشه چه بدتر)، با یه عملیات خاص دوباره به نویز اولیه برمی‌گردن، بعد هم از همونجا به مدل می‌فهمونن کدوم خروجی بهتره و باید سلیقه‌محورتر باشه. پس خیلی شیک و مجلسی، با یه وارون‌سازی و بدون مدل جایزه‌ای اضافی، مدل رو تربیت می‌کنن!

در نتیجه، اصلاً نیازی به مدل کمکی که فقط کارش چک کردن ترجیح کاربره نداریم، که هم باعث صرفه‌جویی زیادی توی منابع میشه و هم سرعت و دقت آموزش کلی بالا میره.

کجاها امتحانش کردن؟
نویسنده‌ها اول سراغ ساده‌ترین کاربرد رفتن: تبدیل متن به تصویر. یعنی مثلاً بنویسی “یه گربه با کلاه قرمز” و مدل یه عکس خفن ازش بسازه. بعد وارد چالش سخت‌تر شدن: تولید تصویرهای ترکیبی یا همین compositional image generation – جایی که باید چند عنصر و ساختار پیچیده رو در یک تصویر تولید کنی.

برای تست کردن روششون، یه دیتاست اختصاصی هم ساختن. توی این دیتاست، ۱۱,۱۴۰ تا عکس هست که ساختارهای پیچیده و برچسب و امتیاز دارن. یعنی دقیقاً مناسب یاد دادن اینکه مدل بتونه ترکیب‌های خیلی سخت رو هم صحیح بسازه.

نتیجه چی شد؟
بر اساس آزمایش‌هاشون، روش Inversion-DPO تونست هم دقت خروجی‌ها رو ببره بالا، هم سرعت تربیت رو بیشتر کنه، و هم به مدل‌ها قدرت بده هیچ ترکیب عجیب و غریبی رو از دست ندن! دیگه لازم نیست برای سلیقه کاربری کلی مدل کمکی و کار اضافه باشه. خب این یعنی یه قدم بزرگ برای به‌دردبخورتر شدن مدل‌های دیفیوژن توی تولید محتوای واقعی و پیچیده!

اگه شما یا دوستاتون به این زمینه علاقه‌مندین یا دلتون می‌خواد کدهاش رو ببینید و امتحان کنید، کد پروژه به صورت رایگان روی گیت‌هابشون هست: https://github.com/MIGHTYEZ/Inversion-DPO

پس خلاصه: اگه دنبال مدل‌های هوش مصنوعی سلیقه‌محور و سریع هستید که کارهای ترکیبی رو خوب درک کنن، Inversion-DPO گزینه جذابیه که ارزش امتحان کردن داره. دیگه نیاز به مدل جایزه اضافه نیست؛ فقط با وارون‌سازی درست و حسابی به دقت و سرعت می‌رسید!

راستی اگه مفاهیم دیگه‌ای مثل Generative AI یا alignment و diffusion model براتون گنگ بود، حتما کامنت بذارید تا مفصل و خودمونی‌تر توضیح‌شون بدم 😁

منبع: +