حدس بزن، بعد تایید کن: شتاب دهنده خاموش استنتاج مدل های زبانی

1 آبان 1405 - خواندن 4 دقیقه - 15 بازدید

حدس بزن، بعد تایید کن: شتاب دهنده خاموش استنتاج مدل های زبانی


وقتی از یک مدل زبانی بزرگ می خواهید متنی بنویسد، مدل کلمه به کلمه جلو می رود: برای تولید هر توکن، کل مدل یک بار اجرا می شود و بعد نوبت توکن بعدی است. این تولید ترتیبی، اصلی ترین دلیل کندی پاسخ گویی مدل هاست. اما پشت این کندی، یک مشاهده ساده و قدرتمند پنهان است که در سال ۲۰۲۲ به تکنیکی به نام «رمزگشایی حدسی» یا Speculative Decoding تبدیل شد: تکنیکی که سرعت تولید را دو تا سه برابر می کند، بدون اینکه حتی یک کلمه از خروجی تغییر کند.


گلوگاه واقعی کجاست؟


برخلاف تصور رایج، کندی تولید متن به خاطر سنگینی محاسبات نیست. اجرای مدل روی ده توکن از نظر زمانی تقریبا به اندازه اجرای آن روی یک توکن طول می کشد، چون گلوگاه اصلی پهنای باند حافظه است: در هر گام، وزن های عظیم مدل باید از حافظه خوانده شوند و همین خواندن، زمان بر است. پس اگر بتوانیم به جای یک توکن، چند توکن را در یک اجرای مدل «بررسی» کنیم، موازی کاری هدررفته را پس می گیریم. ایده رمزگشایی حدسی دقیقا همین است: از محاسبات بیکار کارت گرافیک برای تایید حدس ها استفاده کن.


حدس ارزان، تایید دقیق


الگوریتم دو بازیگر دارد: یک مدل پیش نویس کوچک و سریع که چند توکن آینده را «حدس» می زند، و مدل بزرگ اصلی که همه حدس ها را در یک اجرای موازی بررسی می کند. هر حدسی که با توزیع مدل بزرگ سازگار باشد پذیرفته می شود و هر حدس ناموفق با یک نمونه گیری اصلاحی از توزیع باقی مانده جایگزین می گردد. نکته شگفت انگیز اینجاست: این سازوکار پذیرش و رد، از نظر ریاضی تضمین می کند که خروجی نهایی دقیقا همان توزیعی را دارد که مدل بزرگ به تنهایی تولید می کرد؛ نه تقریبی، نه تقریبا مشابه، بلکه عینا یکسان. این ایده را پژوهشگران گوگل در نوامبر ۲۰۲۲ معرفی کردند و روی مدل T5-XXL شتابی دو تا سه برابری با خروجی کاملا یکسان گزارش دادند؛ گروهی در دیپ مایند هم به طور مستقل و هم زمان به همین روش رسیدند و روی مدل هفتاد میلیارد پارامتری چینچیلا شتاب دو تا دو و نیم برابری ثبت کردند.


از مدل پیش نویس جدا تا سرهای پیش بینی داخلی


در سال های بعد، پژوهشگران نیاز به مدل پیش نویس جدا را هم حذف کردند. روش «مدوسا» در ۲۰۲۴ چند سر پیش بینی موازی به خود مدل بزرگ اضافه کرد که هر یک توکن های چند گام آینده را حدس می زنند و با تکنیک «توجه درختی» همه ترکیب ها در یک اجرا بررسی می شوند؛ با شتابی حدود دو تا سه برابر و پشتیبانی مستقیم در کتابخانه های رایج. روش «ایگل» یک قدم جلوتر رفت: به جای حدس مستقیم توکن که ذاتا نویزی است، حالت پنهان داخلی مدل را حدس می زند که بسیار قابل پیش بینی تر است؛ نسخه دوم آن، ایگل دو، درخت حدس را بر اساس اطمینان مدل به صورت پویا می سازد و به شتاب سه تا چهار برابری می رسد. امروز این روش ها در موتورهای استنتاج پرکاربردی مثل vLLM و SGLang به صورت آماده عرضه می شوند.


همیشه سریع تر نیست


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


جمع بندی


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


بهزاد حسین عباسی، بنیانگذار اپراتوری هوش مصنوعی و اپراتوری ابرهوش