مرحلهی رمزگشایی (Decode) در مدلهای زبانی بزرگ بهشدت محدود به پهنای باند حافظه (Memory-bound) است. در استقرار مدلهایی مثل Llama 3.3 70B، خواندن مکرر وزنها از حافظهی گرافیکی باعث میشود توان پردازشی تراشه تا حد زیادی دستنخورده باقی بماند. دیکودینگ حدسی (Speculative Decoding) با پیشنهاد چند توکن توسط مدلی سریعتر و اعتبارسنجی همزمان آنها در یک گذر مدل هدف، سرعت پاسخدهی را چند برابر میکند.
رویکرد EAGLE-3 با آموزش مستقیم سرِ پیشنویس روی وضعیتهای پنهان مدل اصلی، جهش بزرگی در نرخ پذیرش توکنها ایجاد کرده است. با این حال، فعالسازی چشمبسته این ویژگی بدون سنجش نرخ پذیرش (آلفا) روی ترافیک واقعی، میتواند به دلیل هزینهی اعتبارسنجیهای ناموفق، تاخیر صدک 99 (P99) را بهشدت افزایش دهد.
در زیرساختهای استنتاج که دسترسی به منابع پردازشی قدرتمند و اجارهی GPUهای گرانقیمت هزینهی بالایی دارد، بیشینهسازی بازده سختافزار اهمیت دوچندان پیدا میکند. این درس روش اندازهگیری آلفا، فرمول نقطهی سربهسر و الزامات پیادهسازی گامبهگام EAGLE-3 در ابزارهایی مانند vLLM را بررسی میکند.
دیکودینگ حدسی (Speculative Decoding) یک مدل پیشنویس (Draft Model) سریع را کنار مدل هدف (Target model) قرار میدهد. مدل پیشنویس K توکن پیشنهاد میکند؛ مدل هدف همهی آنها را در یک گذر رو به جلو (forward pass) اعتبارسنجی میکند؛ و توکنهای پذیرفتهشده عملاً بدون هزینه به دست میآیند. در سال 2026، مدل EAGLE-3 گزینهی مناسب محیط عملیاتی (پروداکشن) است — این روش بهجای توکنهای خام، یک سرِ (Head) پیشنویس را روی وضعیتهای پنهان (Hidden states) مدل هدف آموزش میدهد و نرخ پذیرش (Acceptance rate) یا همان آلفا را در مکالمات عمومی به بازهی 0.6 تا 0.8 میرساند. پرسش درست این نیست که «مدل پیشنویس چقدر سریع است؟»، بلکه این است: «آلفا روی ترافیک واقعی من چقدر است؟» اگر آلفا به زیر حدود 0.55 برسد، دیکودینگ حدسی در همروندیهای بالا عملاً بازده منفی خواهد داشت؛ چون هر پیشنویس ردشده، هزینهی یک گذر رو به جلوی دوم را به مدل هدف تحمیل میکند. در این درس یاد میگیرید که اول آلفا را اندازه بگیرید و بعد فلگ را روشن کنید.
اهداف یادگیری
- سه نسل دیکودینگ حدسی را نام ببرید و تفاوتهای EAGLE-3 با EAGLE-2 و مدل پیشنویس کلاسیک را توضیح دهید.
- نرخ پذیرش آلفا را تعریف کنید، شتاب مورد انتظار را بر اساس آلفا و K (طول پیشنویس) به دست آورید و آلفای نقطهی سربهسر را برای همروندی مد نظرتان مشخص کنید.
- توضیح دهید چرا دیکودینگ حدسی در vLLM 2026 اختیاری است (بهصورت پیشفرض فعال نیست) و چرا روشن کردن آن بدون اندازهگیری آلفا، یک ضدالگو در پروداکشن به حساب میآید.
- یک برنامهی سنجش بنویسید: کدام بنچمارک، کدام توزیع پرامپت، چه نقطهای از همروندی و تکیه بر کدام متریک بهعنوان ملاک تصمیمگیری (Gate).
صورت مسئله
رمزگشایی (Decode) محدود به حافظه (Memory-bound) است. روی یک شتابدهندهی H100 که Llama 3.3 70B FP8 را اجرا میکند، هر گام رمزگشایی کل حدود 70 گیگابایت وزن مدل را از HBM میخواند و به ازای هر توالی یک توکن تحویل میدهد. توان پردازشی GPU در زمان رمزگشایی عملاً بیکار است — گلوگاه اصلی پهنای باند HBM است، نه نرخ پردازش ضرب ماتریسی.
دیکودینگ حدسی از همین شکاف بهره میبرد: ابتدا با یک مدل پیشنویس سبک، K توکن پیشنهادی تولید کنید، سپس از مدل هدف بخواهید همهی آن K توکن را تنها در یک گذر رو به جلو اعتبارسنجی کند. هر توکن تأییدشده عملاً رایگان تمام میشود (هزینهاش در قالب یک گذر دستهای با طول K سرشکن میشود؛ کاری که مدل هدف در هر صورت باید انجام میداد).
در رویکرد کلاسیکِ مدل پیشنویس، از مدلی کوچکتر از همان خانواده استفاده میشود (مثلاً Llama 3.2 1B برای پیشنویسِ Llama 3.3 70B). این روش جواب میدهد اما نرخ پذیرش متوسطی دارد — چون توزیع آماری مدل کوچکتر از مدل هدف فاصله میگیرد. مدلهای EAGLE، سپس EAGLE-2 و در نهایت EAGLE-3 یک سرِ پیشنویس سبک را مستقیماً روی وضعیتهای درونی مدل هدف آموزش میدهند؛ در نتیجه توزیع مدل پیشنویس همخوانی بسیار نزدیکتری با مدل هدف دارد. به همین دلیل است که آلفا از 0.4 در مدل پیشنویس کلاسیک به 0.6 تا 0.8 در EAGLE-3 میرسد.
نکتهی مهم اینجاست: در نسخهی 2026 فریمورک vLLM، استفاده از EAGLE-3 اختیاری است و باید صراحتاً در speculative_config تنظیم شود. بدون این فلگ، خبری از شتاببخشی نیست. تیمهایی که بدون سنجش آلفا روی ترافیک واقعیشان این قابلیت را فعال میکنند، اغلب میبینند که تاخیر دنباله (Tail latency) بهجای بهتر شدن، بدتر میشود.
مفاهیم پایه
دیکودینگ حدسی دقیقاً چه سودی دارد؟
بدون دیکودینگ حدسی، هزینهی هر توکن معادل یک گذر رو به جلوی مدل هدف است. با دیکودینگ حدسی به ازای طول پیشنویس K و نرخ پذیرش آلفا، تعداد توکنهای مورد انتظار به ازای هر گذر رو به جلو برابر با 1 + K * alpha است. شتاب بهدستآمده بر اساس رابطهی (1 + K * alpha) / (1 + epsilon) محاسبه میشود که در آن اپسیلون، سربار مجموعِ پیشنویس و اعتبارسنجی است. مثلاً برای K=5 و alpha=0.7 داریم: (1 + 5*0.7) / (1 + 0.1) = 4.5 / 1.1 = 4.1x. در عمل این ارقام معمولاً حول 2 تا 3 برابر میچرخند؛ چرا که آلفا روی ترافیک پروداکشن بهندرت تا این حد بالا میماند و در بچهای بزرگ، اپسیلون هم رشد میکند.
چرا آلفا تنها متریک تعیینکننده است؟
توکنهای ردشده غیب نمیشوند — بلکه مدل هدف را مجبور میکنند برای اولین توکن ردشده، یک گذر رو به جلوی دوم اجرا کند. در بارهای کاریای که آلفا در آنها به 0.4 افت میکند، هم سربار پیشنویس و اعتبارسنجی را میدهید و هم هزینهی اجرای مجدد را. در همروندیهای بالا (مثلاً 256 درخواست همزمان)، بچ رمزگشایی آنقدر بزرگ میشود که فاصلهی پهنای باند حافظه میان حالت «فقط مدل هدف» و «مدل هدف همراه با اعتبارسنجی» کاهش مییابد. روی بیشتر سختافزارهای سال 2026، با آلفای کمتر از 0.55 دیکودینگ حدسی عملاً نتیجهی معکوس و منفی میدهد.
آلفا به نوع بار کاری بستگی دارد. در مکالمات عمومی شبیه ShareGPT، مدل EAGLE-3 که روی دادههای ShareGPT آموزش دیده به آلفای 0.6 تا 0.8 میرسد. اما روی ترافیکهای تخصصی (کد، پزشکی، حقوقی)، همین سرِ پیشنویس عمومی تا 0.4 الی 0.6 افت میکند. با آموزش دادن یک سرِ پیشنویس اختصاصی، آلفا دوباره برمیگردد — کاری سبک و سریع که در مقایسه با فاینتیون کردن کل مدل هدف اصلاً به چشم نمیآید.
نسلهای EAGLE در یک نگاه
- مدل پیشنویس کلاسیک: یک مدل کوچک از همان خانواده. آلفا بین 0.3 تا 0.5. زیرساخت ساده است — دو مدل در حافظه بارگذاری میشوند و مدل پیشنویس به ازای هر گذر مدل هدف، K بار اجرا میشود.
- EAGLE-1 (سال 2024): یک سرِ پیشنویس تکی که روی وضعیتهای پنهان لایهی آخر مدل هدف آموزش دیده است. آلفا حدود 0.5 تا 0.6. سربار پارامتری بسیار اندکی به مدل هدف اضافه میکند.
- EAGLE-2 (سال 2025): طول پیشنویس تطبیقی و پیشنویسهای درختی (اعتبارسنجی همزمان چند branch در یک گذر مدل هدف). آلفا حدود 0.6 تا 0.7. اسکژولر پیشنویس در این نسخه پیچیدهتر است.
- EAGLE-3 (سالهای 2025-2026): سرِ پیشنویس روی چند لایهی مدل هدف (نه فقط لایهی آخر) آموزش میبیند و انطباق بهتری دارد. آلفا حدود 0.6 تا 0.8 در مکالمات عمومی.
شیوهنامهی پیادهسازی در پروداکشن (2026)
- مدل هدف را بهصورت ساده مستقر کنید. مقادیر خط مبنا (Baseline) برای TTFT ،ITL و نرخ پردازش را در همروندی هدف اندازه بگیرید.
- پیشنویس EAGLE-3 را با
speculative_configدر vLLM فعال کنید. بنچمارک را دوباره اجرا کنید. - نرخ پذیرش آلفا را لاگ کنید. vLLM V1 این شاخص را در قالب
spec_decode_metrics.accepted_tokens_per_requestگزارش میدهد. این عدد را بر طول پیشنویس درخواستی تقسیم کنید تا آلفا به دست آید. - اگر آلفا روی توزیع ترافیک پروداکشن کمتر از 0.55 بود، دیکودینگ حدسی را خاموش کنید یا یک سرِ پیشنویس EAGLE-3 اختصاصی برای دامنهی کاریتان آموزش دهید.
- بنچمارک را در همروندی پروداکشن تکرار کنید. مطمئن شوید تاخیر P99 ITL بدتر نشده باشد.
چالش پروداکشن: تاخیر دنباله در P99
میانگین ITL با دیکودینگ حدسی کمتر میشود؛ اما اگر سیستم را تنظیم نکنید، P99 ممکن است بدتر شود. پیشنویسهای ردشده یک فرآیند دومرحلهای ایجاد میکنند (پیشنویس + اعتبارسنجی ناموفق + اجرای مجدد). زیر بار کامل بچ، این دو مرحله پشتسرهم صف میکشند. بنابراین بهجای P50، همیشه P99 ITL را ملاک قرار دهید.
EAGLE-3 در چه سرویسهایی مستقر شده است؟
گوگل در سال 2025 دیکودینگ حدسی را در AI Overviews به کار گرفت (کیفیت یکسان، پاسخ سریعتر). موتور vLLM V1 پارامتر speculative_config را بهعنوان رابط رسمی معرفی کرده و در ماتریس سازگاریاش، همخوانی دیکودینگ حدسی با پیشپرکنی تکهای (chunked prefill) را رسماً تأیید کرده است. SGLang نیز EAGLE-3 را بهعنوان مسیر پیشنهادی پیشنویس در بارهای کاری متکی بر اشتراک پیشوند توصیه میکند.
فرمول یکخطی نقطهی سربهسر
شتاب مورد انتظار برابر است با: S(alpha, K) = (1 + K*alpha) / (1 + verify_overhead). با فرض S = 1، به این رابطه برای آلفا میرسیم: alpha_breakeven = verify_overhead / K. به ازای سربار اعتبارسنجی معمولِ حدود 0.15 و K=5 داریم: alpha_breakeven = 0.03. البته این صرفاً رابطهی ریاضی ساده در سطح تکدرخواست است. در همروندیهای بالا، سربار اعتبارسنجی بیشتر میشود و خودِ بچ رمزگشایی، عملیات خواندن حافظه را میان توالیها سرشکن میکند؛ به همین دلیل در عمل، مقدار واقعی alpha_breakeven به حدود 0.45 تا 0.55 میرسد.
چه زمانهایی نباید سراغ دیکودینگ حدسی رفت؟
- تولید آفلاین با اندازهی بچ 1 (Batch-1) که تاخیر در آن مطرح نیست. در این حالت از مدل هدف ساده استفاده کنید.
- خروجیهای بسیار کوتاه (زیر 50 توکن)؛ زیرا هزینهی سربار پیشنویس و اعتبارسنجی غالب میشود.
- دامنههای تخصصی بدون سرِ پیشنویس سفارشی، چون مقدار آلفا بیش از حد افت میکند.
- تکیه بر این فرض که همهی قابلیتها با هم همخوانی دارند. حتماً جدول سازگاری نسخهی vLLM خود را بررسی کنید: در v0.18.0 سازگاری دیکودینگ حدسی با پیشپرکنی تکهای ثبت شده است.
اجرای عملی
فایل code/main.py یک حلقهی رمزگشایی را با و بدون دیکودینگ حدسی در بازهای از مقادیر آلفا و طولهای پیشنویس K شبیهسازی میکند. این اسکریپت آلفای سربهسر، شتاب اندازهگیریشده و وضعیت تاخیر دنباله را چاپ میکند. آن را با چند ترکیب گوناگون از (alpha, K) اجرا کنید تا ببینید دیکودینگ حدسی دقیقاً از چه نقطهای صرفهی اقتصادیاش را از دست میدهد.
تحویل نهایی
خروجی این درس فایل outputs/skill-eagle3-rollout.md است. این سند بر اساس مدل هدف، توزیع ترافیک و همروندی مد نظرتان، یک برنامهی مرحلهبهمرحله برای استقرار EAGLE-3 آماده میکند — سنجش خط مبنا، فعالسازی پیکربندی، اندازهگیری آلفا، شرط ادامهی مسیر با alpha >= 0.55 و پایش مداوم P99 ITL.
تمرینها
- اسکریپت
code/main.pyرا اجرا کنید. به ازای K=5، چه آلفایی برای دستیابی به شتاب 2 برابری لازم است؟ برای شتاب 3 برابری چطور؟ این عدد چقدر به verify_overhead حساس است؟ - فرض کنید ترافیک پروداکشن شامل 70% گفتوگوی عمومی و 30% کدنویسی است. گفتوگوی عمومی با EAGLE-3 آموزشدیده روی ShareGPT به آلفای 0.7 میرسد و کدنویسی به آلفای 0.4. آلفای میانگین چقدر است و آیا دیکودینگ حدسی در کل بازده مثبت دارد؟
- مستندات
speculative_configدر vLLM را بخوانید. سه حالت آن (مدل پیشنویس، EAGLE و N-gram) را نام ببرید و بررسی کنید در نسخهی vLLM شما هر کدام با چه قابلیتهایی ترکیب میشوند. - فرض کنید پس از فعالسازی EAGLE-3 میانگین ITL حدود 25% کاهش پیدا کرده اما P99 ITL به میزان 15% بیشتر شده است. علت را ریشهیابی کنید و یک راهکار تعدیل پیشنهاد دهید.
- هزینهی حافظهی سرِ پیشنویس EAGLE-3 را برای مدل Llama 3.3 70B محاسبه کنید. این مقدار را با حالتی که از Llama 3.2 1B بهعنوان مدل پیشنویس کلاسیک استفاده میشود مقایسه کنید.
اصطلاحات کلیدی
| اصطلاح | در گفتگوهای روزمره | معنای دقیق فنی |
|---|---|---|
| دیکودینگ حدسی (Speculative decoding) | «پیشنویس بهعلاوهی تأیید» | پیشنهاد K توکن با یک مدل سبک و اعتبارسنجی همهی آنها در یک گذر مدل هدف |
| نرخ پذیرش آلفا (Acceptance rate alpha) | «نرخ پذیرش حدسی» | نسبت توکنهای پیشنویس که مدل هدف تأیید کرده؛ تنها متریک تعیینکننده |
| طول پیشنویس K (Draft length K) | «کا در حدسی» | تعداد توکنهایی که مدل پیشنویس در هر گذر مدل هدف پیشنهاد میدهد؛ معمولاً بین 4 تا 8 |
| سربار اعتبارسنجی اپسیلون (Verify overhead epsilon) | «سربار حدسی» | هزینهی اضافهی اعتبارسنجی و تولید مجدد نسبت به یک گذر سادهی هدف؛ با افزایش بچ بیشتر میشود |
| EAGLE-3 | «جدیدترین EAGLE» | نسخهی 2025-2026؛ آموزش سرِ پیشنویس روی چند لایهی مدل هدف؛ آلفای 0.6 تا 0.8 در چت عمومی |
speculative_config |
«کانفیگ حدسی vLLM» | فعالسازی صریح در vLLM V1؛ پیشفرض نبودن یعنی شتاببخشی بهصورت خودکار فعال نمیشود |
| دیکودینگ حدسی N-gram (N-gram spec decode) | «پیشنویس N-gram» | پیشنویس سمت GPU با تکیه بر جستجوی N-gram در پرامپت؛ سازگار با پیشپرکنی تکهای |
| آلفای سربهسر (Break-even alpha) | «آلفای بیاثر» | مقداری از آلفا که در آن شتاب دیکودینگ حدسی دقیقاً صفر است؛ باید در همروندی پروداکشن سنجیده شود |
| اجرای دومرحلهای پیشنویس ردشده (Rejected-draft two-pass) | «هزینهی ریرول» | اجرای دو گذر روی مدل هدف هنگام رد شدن پیشنویس؛ عامل اصلی رشد تاخیر دنباله در P99 |
برای مطالعهی بیشتر
- مستندات دیکودینگ حدسی در vLLM — مرجع رسمی برای
speculative_configو سازگاری با پیشپرکنی تکهای در نسخهی V1. - مستندات API برای vLLM Speculative Config — مجموعهی کامل فیلدهای تنظیمی.
- مقاله EAGLE در arXiv (کد: 2401.15077) — پایهریزی ساختار سرِ پیشنویس EAGLE.
- مقاله EAGLE-2 در arXiv (کد: 2406.16858) — پیشنویسهای تطبیقی و ساختارهای درختی.
- گزارش فنی EECS-2025-224 دانشگاه برکلی — سیستمهای کارآمد مدلهای زبانی همراه با دیکودینگ حدسی.
- راهنمای BentoML دربارهی دیکودینگ حدسی — چکلیست استقرار در محیط پروداکشن.
