یک علت سرعت بالای Inference در LLM ها استفاده از تکنیک Speculative Decoding هست.
دقت کرده باشید در مدلهای مدرن سرعت تولید توکن بسیار زیاد هست. اما زمانی که یک مدل با صدها میلیارد پارامتر سرو میشه حتی با وجود Parallelism از انواع TP, PP, EP و تعداد بالای GPU و NVLink و ... به اندازه کافی سریع نخواهد شد.
این تکنیک سال ۲۰۲۳ توسط گوگل معرفی شد و از ایدهی قدیمی Speculative Execution در CPU الهام گرفته شده. مقاله جالبی داره.
روش: بجای این که مدل بزرگ تمام فرآیند تولید رو انجام بده، یک مدل خیلی کوچکتر با نام Draft به شکل Auto Regressive چندین (فرضا ۱۰) توکن رو تولید میکنه و مدل بزرگ با نام Target فقط در یک forward pass تمام این توکنهارو verify میکنه و فرضا میگه ۶ توکن اول درست هست اما توکن ۷ فلان هست و مجدد مدل کوچک تولید خواهد کرد.
مزیت: سرعت بالا میره (بعضا تا چندین برابر) اما دقت اصلا فدا نمیشه و ریاضیات زیبایی هم داره که اینجا نمیگنجه اما ثابت میشه که distribution خروجی کامل با حالتی که همه تولید رو مدل بزرگ انجام بده یکی هست. میتونید Greedy Decoding هم داشته باشید.
روشهای SOTA:
میتونید روشهایی مثل
DFlash 2
Dspark
EAGLE 3
MTP
رو ببینید که اکثرا مدل draft نیاز به train داره و فقط هم برای این مورد کاربرد داره و یک مدل مستقل نیست اما در حالت Distributed میتونید Vanilla SD استفاده کنید.
کاربرد در Quant Fiance: مشخصا HFT
Post #591
1.5K
- 👍 14
- ❤ 8