یه تکنیک جدید و خیلی کاربردی معرفی شده به اسم Prompt Baking که فاصلهی بین prompt engineering و fine-tuning رو پر میکنه.
کاربرد اصلی اینه که به جای اینکه هر بار یه پرامپت سیستمی یا چندتا مثال few-shot رو به مدل بدیم، میایم و اثر اون پرامپت رو مستقیماً توی وزنهای مدل "bake" میکنیم یا "میپزیم". نتیجهش یه مدل جدیده که ذاتاً اون رفتار یا دانش رو داره، بدون اینکه نیازی به خود پرامپت باشه. این کار هم context window رو آزاد میکنه و هم مشکل "prompt decay" یا فراموشی پرامپت در طول مکالمات طولانی رو حل میکنه.
روش کار بر اساس به حداقل رسوندن KL divergence بین توزیع خروجی مدل اصلیِ پرامپتشده و مدل جدیدِ بدون پرامپت بنا شده. در واقع، مدل جدید طوری آموزش داده میشه که logitهای خروجیش رو با logitهای مدل پرامپتشده تطبیق بده. این پروسه یه جور self-distillation به حساب میاد و معمولاً با استفاده از LoRA انجام میشه تا هم سریع باشه (گاهی در حد ۵ دقیقه) و هم بهینه.
نتایج عملی این تکنیک خیلی قابل توجهه:
- بهبود استدلال: با bake کردن پرامپتهای Chain-of-Thought، عملکرد zero-shot مدل روی بنچمارکهای استدلال ریاضی و کدنویسی مثل GSM8K، ASDiv و MBPP به سطح عملکرد few-shot نزدیک شده.
- تزریق دانش: میشه دانش جدید، مثلاً اخبار روز، رو به صورت دائمی به مدل اضافه کرد. مدل بعد از bake شدن، میتونه به سوالات مستقیم و حتی غیرمستقیم در مورد اون اطلاعات جدید جواب بده.
- پایداری شخصیت: مشکل persona drift که در اون مدل در مکالمات طولانی، شخصیت یا دستورالعمل اولیهاش رو فراموش میکنه، با این روش به طور کامل برطرف میشه.
- کنترل پیوسته: میشه فرآیند bake رو زودتر متوقف کرد ("half-baking") تا میزان تأثیر پرامپت روی رفتار نهایی مدل رو به صورت پیوسته کنترل کرد.
یه یافتهی جالب و غیرمنتظره اینه که اگه مدلی که یه پرامپت توش bake شده رو دوباره با همون پرامپت اجرا کنیم، عملکردش حتی از مدل اصلی که فقط پرامپت گرفته بهتر میشه. با همین تکنیک، روی بنچمارک GSM8K تونستن رکوردی که متا برای Llama 3 منتشر کرده بود رو هم رد کنن. این ایده به یه روش تکرارشونده به اسم Prompt Pursuit هم توسعه داده شده که مدل به صورت مداوم خودش رو در جهت پرامپت بهبود میده.
به نظر من، Prompt Baking یه ابزار خیلی قدرتمند برای کنترل مدلهاست. به جای جمعآوری دیتاست و fine-tuningهای سنگین برای یه رفتار خاص، میشه با یه پرامپت خوشساخت، اون رفتار رو به صورت دائمی و پایدار در مدل نهادینه کرد. این روش همچنین مقاومت خوبی در برابر catastrophic forgetting نشون داده، یعنی bake کردن یک مهارت، باعث تخریب بقیه تواناییهای مدل نمیشه.
📃 عنوان مقاله: Prompt Baking
https://arxiv.org/abs/2408.14332
🛠 Join @LLMEngineers Community
Post #246
2.61K