اگه با مدلهای زبانی بزرگ (LLM) سر و کار داشتی، حتماً میدونی که جواب دادن این مدلها معمولاً یه کم طول میکشه. یعنی وقتی یه سوال پیچیده میپرسی، این مدلها با کلی محاسبه و دقت بهت جواب میدن و این وسط، گاهاً حس میکنی زیادی دیر به مقصد میرسی. برای حل این مشکل، یه سری روش اومده تحت عنوان “speculative decoding”. توضیح مختصرش اینه: از یه مدل کوچیکتر (که سریعتره) استفاده میکنن تا یه جواب موقت یا پیشنویس بنویسه و بعد، مدل اصلی (که دقیقتره اما کندتره) رو چک میکنن که ببینن این پیشنویس اوکی هست یا نه.
تا اینجاش خوبه، ولی هنوز یه گره وجود داره: روشهایی که جواب پیشنویسی رو بررسی میکنن، معمولا یا خیلی خشک و سفت بودن (فقط جوابای همون رو قبول میکردن) یا مجبور بودن برای هر موضوع و هر زبان کلی داده واقعی و برچسب خورده انسانی (همون annotations که یعنی آدم باید بیاد و جواب درست و غلط رو مشخص کنه) جور کنن، که خب کلی دردسر داره!
اینجا SelfJudge میاد وسط! SelfJudge، یعنی سیستم خودقاضی (خیلی ترجمه لغت به لغت نباشه :))، یه روشی ابداع کرده که خودش خودش رو آموزش میده؛ یعنی دیگه لازم نیست یکی بیاد بهش یاد بده یا راهنمایی انسانی کنه. این روش اسمش هست self-supervised judge verification یا همون فرایند آموزش قاضی خود-نظارتی. خلاصهش اینه که مدل میره خودش از جوابای خودش یاد میگیره که چه خروجیهایی معنای اصلی جواب رو حفظ کردن و چه خروجیهایی پرت شدن! اینجا وقتی میگیم semantic preservation، یعنی اینکه جواب پیشنهادی باید معنای جواب اصلی رو حفظ کنه حتی اگر دقیقاً همون کلمهها نباشه.
کلاً کار SelfJudge اینه که میتونه توی کلی تسک مختلف پردازش زبان طبیعی (NLP یعنی هر مدل کامپیوتری که با زبان آدمی سر و کار داره، مثل ترجمه، چت، خلاصهنویسی و…) به طور خودکار یاد بگیره که چه جور جوابها درست و چه جور جوابها غلطه. یعنی هر جا یه مدل زبان بزرگ داری، فرقی نمیکنه تسکت چیه، SelfJudge میتونه سرعت رو بالا ببره بدون اینکه دقت رو فدای سرعت کنه!
یه نکته جذاب این سیستم اینه که نسبت به روشهای judge decoding که قبلاً داشتن (یعنی سیستمهایی که برای داوری جواب مدل پیشنهاد میشدن)، SelfJudge توازن بهتری بین سرعت و دقت بهت میده. هم سریعتر جواب میگیری، هم جوابت از دقت نمیفته. طبق تجربه و آزمایشهایی که خفنهاشون تو مقاله انجام دادن، SelfJudge نشون داده تقریباً واسه هر جور مدل زبانی جواب میده و محدود به یه تسک یا یه دیتای خاص نیست.
در کل، SelfJudge اومده تا منتظر موندن برای جواب مدلهای زبانی بزرگ رو کوتاهتر و کاربردش رو گستردهتر کنه، اونم بدون اینکه نیاز باشه کلی داده انسانی آماده کنیم یا تو حوزه خاصی گیر کنیم! یه جورایی، مدل خودش داور خودش شده و کلی از راهروهای اضافی رو حذف کرده.
منبع: +