کراس‌پی‌تی: با یک تیر چند نشون! انتقال یادگیری بین چند وظیفه با ترفندهای پرامپت‌تیونینگ

Fall Back

تا حالا دربارهٔ پرامپت‌تیونینگ شنیدی؟ همون ترفندی که تو هوش مصنوعی برای سازگار کردن مدل‌های زبانی بزرگ با کارهای مختلف استفاده میشه؟ تازه این روش بدون اینکه کل مدل رو دست‌کاری کنی، فقط با یه سری تنظیم کوچیک (پرامپت‌ تیونینگ یعنی یه جور تنظیم ورودی یا پرامپت برای مدل) میشه مدل رو با کار جدید راه انداخت.

حالا مشکل چیه؟ بیشتر روش‌های فعلی پرامپت‌تیونینگ فقط واسه یه کار یا وظیفه خاص طراحی شدن و نمی‌تونن اطلاعات یا تجربه‌های یادگرفته شده رو بین چندتا کار مختلف به اشتراک بذارن. در صورتی که تو دنیای واقعی کلی کار هست که بهم شبیه‌ن و کلی اطلاعات میشه بین این کارا رد و بدل کرد. خلاصه حیفه اگه این انتقال دانش رو از دست بدیم!

حالا یه تیم باحال اومدن یه راه‌حل خفن معرفی کردن به اسم Cross-task Prompt Tuning یا به اختصار “CrossPT”. کاری که کراس‌پی‌تی میکنه اینه که می‌ذاره مدل یادگرفته‌هاشو بین چندتا کار مختلف به‌صورت کنترل شده به اشتراک بذاره (یعنی انتقال یادگیری کنترل شده بین کارها)، اما در عین حال اجازه می‌ده هر کار هم چیزای مخصوص به خودش رو داشته باشه.

داستانش چیه؟ تو CrossPT هر پرامپتی که واسه یه کار جدید لازمه، تقسیم میشه به دو قسمت: یه سری پرامپت‌های اشتراکی که قبلاً واسه کارهای دیگه آموزش داده شدن و یه سری پرامپت‌های اختصاصی مخصوص اون کار. بعد این دوتا رو با یه مکانیسم یادگیری به اسم مکانیزم توجه یا attention (یعنی اون بخشی که به مدل میگه روی کدوم ورودی‌ها یا اطلاعات بیشتر تمرکز کنه) ترکیب می‌کنن.

برای اینکه همه‌چی خوب پیش بره، نویسنده‌ها کلی چیزای مختلف رو بررسی کردن: مثلاً از کجا پرامپت رو شروع کنیم (initialize)، نسبت ترکیب پرامپت‌های مشترک و اختصاصی چه‌قدر باشه، چند تا پرامپت مبنا استفاده کنن، نرخ یادگیری (learning rate یعنی سرعتی که مدل تغییر می‌کنه)، نحوه‌ی پیشوندگذاری وظیفه‌ها (task prefix: یعنی راهی که به مدل می‌فهمونی الان سراغ چه کاری رفته)، و حتی مدل معنای برچسب‌ها (label semantics: یعنی اینکه برچسب‌های هر کار چه معنی دارن).

جالب اینجاست که تو آزمایش‌هایی که روی دیتاست‌های معروف GLUE و چندتا بنچمارک مشابه انجام دادن (GLUE یه مجموعه تست معروف برای بررسی توانایی مدل‌های زبانیه)، کراس‌پی‌تی نه تنها تونسته دقت بیشتری بگیره، بلکه حتی تو شرایطی که داده خیلی کمه (بهش می‌گن low-resource scenario)، حسابی قوی‌تر نشون داده و هنوز هم کمترین تغییر لازم رو تو پارامترها داشته (parameter efficiency: یعنی بدون تغییر زیاد تو مدل اصلی).

در کل اگه دنبال این باشی که مدل‌هوش مصنوعی‌ت رو هوشمندتر و منعطف‌تر کنی و بتونی با کمترین انرژی اون رو با چند وظیفه مختلف هماهنگ کنی، روش کراس‌پی‌تی یه انتخاب جذابه! به‌خصوص وقتی داده کمه و نمی‌خوای مدل رو از اول آموزش بدی یا از منابع زیاد استفاده کنی.

منبع: +