EAGLE-3 تخفیف گذاری در تولید
Type: Learn
Languages: Python (stdlib, toy acceptance-rate simulator)
Prerequisites: Phase 17 · 04 (Serving Engine Internals), Phase 10 · 18 (Multi-Token Prediction)
Time: ~60 minutes
اهداف یادگیری
- سه نسل رمزگذاری حدس زده را نام دهید و توضیح دهید که EAGLE-3 از EAGLE-2 و از یک مدل مسودۀ کلاسیک چه تغییری ایجاد می کند.
- نرخ پذیرش الفا را تعریف کنید، سرعت انتظار شده را از الفا و K (مدد مسود) محاسبه کنید و الفا را برای همزمان سازی هدف شناسایی کنید.
- توضیح دهید که چرا رمزگذاری مفکوری در vLLM 2026 گزینه انتخاب (نه پیش فرض) است و چرا روشن کردن آن بدون اندازه گیری آلفا یک الگوی ضد تولید است.
- یک نقشه اندازه گیری بنویسید: کدام معیار، کدام توزیع فوری، کدام نقطه موازی، کدام متریک برای ورود است.
مشکل
کدگذاری با حافظه بسته است. در H100 که Llama 3.3 70B FP8 اجرا می کند، هر توکن رمزگذاری شده وزن 140 GB / s را می خواند و یک توکن را منتشر می کند. محاسبات GPU تقریباً در طول کدگذاری بیکار است.
رمزگذاری حدس زدنی شکاف را بهره می برد. توکن های کاندید K را با یک مدل مسودۀ ارزان تولید کنید، سپس از مدل هدف بخواهید که همه K را در یک گذرگاه پیشروی واحد تأیید کند. هر توکن تایید شده به طور موثر آزاد است (در یک دسته از K پیشروی هدف باید به هر حال انجام داده بود).
رویکرد کلاسیک مدل طرح از یک مدل کوچکتر از همان خانواده استفاده می کند (Llama 3.2 1B برای Llama 3.3 70B). کار می کند اما نرخ پذیرش متوسط است توزیع مدل کوچکتر از هدف متفاوت است. اگل، بعد اگل-2، بعد اگل-3 یک سر طرح سبک را مستقیماً بر روی حالت داخلی مدل هدف، به طوری که توزیع طرح به طور دقیق تر هدف را ردیابی می کند. به همین دلیل است که آلفا از 0.4 با مدل مسود به 0.6-0.8 با EAGLE-3 می رود.
گرفتن: EAGLE-3 در vLLM 2026 شرکت می کند.speculative_configنه پرچم، نه تسریع، تیم هایی که بدون اندازه گیری آلفا در ترافیک واقعی خود آن را روی می کنند اغلب می بینند که تاخیر دم بدتر می شود، نه بهتر.
مفهوم
چه چیزی در واقع خرید رمزگذاری مفروضاتی
بدون رمزگذاری مشخصات، هزینه هر توکن یک هدف پیش است. با رمزگذاری مشخصات در طول مسود K و پذیرش الفا، انتظار می رود که توکن های هر هدف پیش است 1 + K alphaسرعتش رو بالا ميبرم(1 + K alpha) / (1 + epsilon)که در آن epsilon draft-plus-verify overhead است. برای K=5، alpha=0.7:(1 + 5*0.7) / (1 + 0.1) = 4.5 / 1.1 = 4.1xتعداد واقعی در حدود 2-3x جمع می شوند زیرا آلفا به ندرت در ترافیک تولید زیاد است و اگزینون در اندازه های دسته بالا رشد می کند.
چرا آلفا تنها متريکيه که مهمه
توکن های رد شده ناپدید نمی شوند آنها هدف دوم را برای اولین توکن رد شده به جلو می کشند. در یک بار کاری که آلفا به 0.4 کاهش می یابد، هزینه های عمومی را پرداخت می کنید و تایید و دوباره اجرا می کنید. در یک زمان همزمان بالا (بگو 256 همزمان) ، دسته کد گذاری به اندازه کافی بزرگ است که شکاف بین "تنها هدف" و "تنها هدف با تایید" کاهش می یابد. در زیر الفا 0.55 در بیشتر سخت افزار 2026، کد مشخصه خالص منفی است.
آلفا با توجه به بار کاری متفاوت است. در چت عمومی سبک ShareGPT، EAGLE-3 آموزش داده شده در ShareGPT 0.6-0.8 را به دست می آورد. در ترافیک خاص دامنه (کوید، پزشکی، قانونی) سر draft آموزش داده های عمومی به 0.4-0.6 کاهش می یابد. آموزش یک سر draft مخصوص دامنه بازیابی می کند.
نسل های قارت در یک نگاه
- Classic draft model: مدل کوچک از یک خانواده. آلفا 0.3-0.5 زیرساخت ساده دو مدل باردار، مسودات K به جلو در هر هدف به جلو.
- EAGLE-1 (2024): سر واحد طرح آموزش داده شده در حالت پنهان هدف (طبق آخر). آلفا ~0.5-0.6 . پارامای کوچک بالای هدف.
- EAGLE-2 (2025): طول مسودات سازگار و مسودات مبتنی بر درخت (برابرابر چندین شاخه در یک گذرگاه هدف). آلفا ~ 0.6-0.7 . برنامه ریزی مسودات پیچیده تر.
- EAGLE-3 (2025-2026): سر draft آموزش داده شده در چندین لایه هدف (نه تنها آخرین) ، تعادل بهتر. آلفا ~ 0.6-0.8 در چت عمومی.
دستور تهیه سال 2026
- مدل هدف کشتی ساده. اندازه گیری TTFT خط پایه، ITL، تولید در همزمان هدف.
- امکان پذیر کردن طرح EAGLE-3 از طریق vLLM
speculative_configدوباره بررسي مقايسه رو انجام بده - نرخ پذیرش ثبت نام الفا. vLLM V1 گزارش می دهد که
spec_decode_metrics.accepted_tokens_per_request. به طول مسودات مورد نظر تقسیم کنید تا آلفا بدست بیارید - اگر آلفا < 0.55 در توزیع ترافیک تولید، رمزگذاری مشخصات را غیرفعال کنید یا یک طرح EAGLE-3 مخصوص دامنه را آموزش دهید.
- در زمان تولید دوباره اجرا کنيد.
خط خط تولید: پ 99
در این حالت، این دو پاس به صورت سریالیز می شوند. اگر شما آن را تنظیم نکنید، P99 می تواند بدتر شود. طرح های رد شده یک سریال دو پاس (مصنوعات + تایید شکست + تکرار) را تحریک می کنند. در دسته کامل، این دو پاس سریالیز می شوند. ببینید P99 ITL، نه P50.
جایی که EAGLE-3 قبلاً در آن ها قرار گرفته است
گوگل در سال 2025 در AI Overviews (به همان کیفیت، پاسخ سریعتر) رمزگذاری حدس زده را اجرا کرد.speculative_configSGLang 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اما این ریاضیات خام رمزگذاری است. در مواقعی بالا هزینه های تایید افزایش می یابد و دسته رمزگذاری قبلاً خواندن حافظه را در طول دنباله ها کاهش می دهد، بنابراین الفا_برکهو موثر به ~0.45-0.55 در عمل می رسد.
چه زمانی نباید از کدگذاری مفکوری استفاده کرد
- نسل قطع شده دسته 1 که تاخير مهم نيست
- تولیدات بسیار کوتاه (کم از 50 توکن) هزینه های پیش نویس و تایید غالب هستند.
- دامنه هاي تخصصي بدون يه سرپرست حرفه اي
- فرض کنید هر جفت ویژگی ترکیب می شود. ماتریس سازگاری vLLM را برای نسخه خود بررسی کنید: v0.18.0 نشان دهنده رمزگذاری حدس زده ای است که با پر کردن پیش از بسته مطابقت دارد.
ازش استفاده کن
code/main.pyاین برنامه یک حلقه رمزگذاری را با و بدون رمزگذاری حدس زدنی در طیف وسیعی از ارزش های آلفا و طول مسود K شبیه سازی می کند. این خط خط را با شکستن آلفا، سرعت اندازه گیری شده و رفتار دم چاپ می کند. آن را در چندین ترکیب (آلفا، K) اجرا کنید تا دقیقا ببینید که کدگذاری حدس زدنی در کجا متوقف می شود.
-باده
این درس به ما کمک می کندoutputs/skill-eagle3-rollout.md. با توجه به یک مدل هدف، توصیف توزیع ترافیک و هدف همزمان، یک برنامه راه اندازی EAGLE-3 مرحله ای را تولید می کند مرجع پایه، قابلیت تنظیم، اندازه گیری الفا، دروازه در الفا >= 0.55, نگاه P99 ITL.
تمرینات
- فرار کن
code/main.pyدر K=5، چه آلفا برای سرعت 2x نیاز دارید؟ برای سرعت 3x؟ چقدر حساس است که برای تایید overhead؟ - تصور کنید ترافیک تولید 70 درصد مکالمه عمومی، 30 درصد کد را تقسیم می کند. مکالمه عمومی به الفا 0.7 با EAGLE-3 آموزش داده شده در ShareGPT می رسد؛ کد به الفا 0.4 می رسد. الفا مخلوط چیست و کد کد مشخصی مثبت است؟
- vLLM رو بخونيد
speculative_configاسناد. سه حالت را نام دهید (نمونه مسود، EAGLE، N-gram) و بررسی کنید که هر یک از ویژگی های vLLM شما را شامل می شود. - بعد از فعال کردن EAGLE-3، میزان ITL متوسط 25 درصد کاهش یافته است اما P99 ITL 15 درصد افزایش یافته است.
- هزینه حافظه EAGLE-3 را برای Llama 3.3 70B محاسبه کنید. این چگونه با اجرای Llama 3.2 1B به عنوان یک طرح کلاسیک مقایسه می شود؟
اصطلاحات کلیدی
| Term | What people say | What it actually means |
|---|---|---|
| Speculative decoding | "draft plus verify" | Propose K tokens with a cheap model, verify all K in one target forward |
| Acceptance rate alpha | "spec accept rate" | Fraction of draft tokens accepted by the target; the only metric that matters |
| Draft length K | "spec k" | How many tokens the draft proposes per target forward; typical 4-8 |
| Verify overhead epsilon | "spec overhead" | Extra cost to verify-and-reroll vs a plain target forward; grows with batch |
| EAGLE-3 | "latest EAGLE" | 2025-2026 variant; trains draft head on multiple target layers; alpha 0.6-0.8 on general chat |
speculative_config | "vLLM spec config" | The explicit opt-in in vLLM V1; no default means no acceleration |
| N-gram spec decode | "N-gram draft" | GPU-side draft using N-gram lookups in the prompt; chunked-prefill-compatible |
| Break-even alpha | "no-op alpha" | Alpha at which spec decode gives zero speedup; watch this at production concurrency |
| Rejected-draft two-pass | "reroll cost" | Two target forwards when drafts reject; drives P99 tail |
خواندن بیشتر
- vLLM — Speculative Decoding docs منبع معتبر در
speculative_configو مطابقت با پر کردن قطعات در V1. - vLLM Speculative Config API مجموعه قطعی میدان
- EAGLE paper (arXiv:2401.15077) فرمول اصلی سر نويسنده ایگل
- EAGLE-2 paper (arXiv:2406.16858) طرح های سازگار و درختان
- UC Berkeley EECS-2025-224 سیستم LLM موثر با رمزگذاری حدس زده.
- BentoML — Speculative Decoding چک لیست راه اندازی تولید
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.