رمزگشایی حدسی؛ چطور LLM رو سهبرابر سریعتر کنیم
خلاصهٔ کاملتر
یه مدل ۷۰ میلیارد پارامتری برای تولید هر توکن باید حدود ۱۴۰ گیگابایت وزن رو از حافظهٔ GPU بخونه، و کار ریاضیای که روی این وزنها انجام میگیره در مقایسه خیلی کمه. برای همین موقع تولید متن، واحدهای محاسباتی GPU فقط ۲۰ تا ۴۰ درصد مشغولن و بقیهٔ وقت منتظر حافظهان. تو این مقاله اومده که رمزگشایی حدسی دقیقاً همین ظرفیت خالی رو تبدیل به خروجی میکنه.
ایدهش سادهست: یه مدل کوچیک (draft model یا مدل پیشنویس) که ۱۰ تا ۲۰ برابر کمپارامترتره، چند توکن کاندید جلوتر تولید میکنه. بعد مدل بزرگ (target model) این کاندیدها رو تو یه پاس واحد بررسی میکنه، چون ترنسفورمر میتونه همزمان برای همهٔ موقعیتهای یه دنباله پیشبینی بده. از چپ به راست هر کاندید با پیشبینی مدل بزرگ مقایسه میشه؛ توکنهای درست نگه داشته میشن و از اولین جایی که نخونه، بقیه دور ریخته میشن.
نویسنده تأکید میکنه که این روش کیفیت رو خراب نمیکنه. یه قانون پذیرش هست که تضمین میکنه توزیع آماری خروجی دقیقاً همونیه که مدل بزرگ بهتنهایی میداد. حتی بدترین حالت هم ضرر نداره: اگه همهٔ کاندیدها رد بشن، بازم همون یه توکنی که مدل بزرگ خودش تو اون پاس تولید کرده باقی میمونه، یعنی همون چیزی که رمزگشایی معمولی میداد.
چقدر سریعتر بشی به نرخ پذیرش بستگی داره که خودش وابسته به نوع کاره. خروجی ساختارمند و تکراری مثل تولید کد، خلاصهسازی و استخراج، نرخ پذیرش بالایی داره؛ ولی متن خلاقانه و گفتگوی باز نرخ پایینی دارن چون مدل کوچیک بیشتر از مدل بزرگ فاصله میگیره. دمای بالای نمونهگیری هم پذیرش رو کم میکنه و اگه زیر حدود ۵۰ درصد بیفته، کار اضافه از صرفهجویی بیشتر درمیاد. دیپسیک برای DeepSeek-V3 نرخ ۸۰ تا ۹۰ درصدی و حدود ۱.۸ برابر توان عملیاتی گزارش کرده.
مقاله چهار جای مختلف رو برای گرفتن کاندیدها معرفی میکنه: یه مدل کوچیک جدا از همون خانواده، هدهای پیشبینی اضافه روی خود مدل بزرگ (کاری که دیپسیک کرد)، نسخهٔ ارزونتر همون مدل با کوانتیزیشن، یا جستوجو تو متن قبلی برای دنبالههای تکراری. نکتهٔ آخر اینه که این سود موقتیه: هرچی درخواستهای همزمان سرور بیشتر بشه ظرفیت خالی کمتر میشه و مزیت افت میکنه؛ یه ارزیابی روی مدل ۷۰B از ۱.۹۶ برابر با batch size ۱ تا ۱.۲۱ برابر با ۱۲۸ رو نشون داده.
نکات کلیدی:
- تولید هر توکن نیازمند خوندن کل وزنهای مدل از حافظهست؛ گلوگاه پهنای باند حافظهست نه توان محاسباتی
- مدل پیشنویس معمولاً ۱۰ تا ۲۰ برابر کوچیکتره و باید همخانواده و با همون tokenizer باشه
- طول پیشنویس K معمولاً بین ۳ تا ۵ تنظیم میشه؛ بیشترش لزوماً بهتر نیست
- قانون پذیرش تضمین میکنه خروجی از نظر آماری با مدل بزرگ یکسان بمونه
- زیر batch size بالا مزیت افت میکنه و ممکنه از حالت پایه هم کندتر بشه




