التشفير المضارب و "إيغل-3"
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 7 · 16 (speculative decoding math), Phase 10 · 12 (inference optimization)
Time: ~75 minutes
أهداف التعلم
- بيان نظرية ليفياثان في جملة واحدة وإثبات أن الحلقة المضاربة تنتج عينات موزعة بشكل متطابق للمحقق.
- قم بتعقب التقدم الذي استمر لمدة عامين من تشفير المواصفات الفانيلية (ليفياثان 2023) إلى إيغل ، إيغل - 2 ، وإيغل - 3 وذكر القيود الدقيقة التي تم إزالتها في كل خطوة.
- الحساب المتوقع التسارع من معدل القبول
αونسبة تكاليف المسودة إلى المحققc، واختيار طول المسودة المثاليNلكل نظام - تنفيذ حلقة التكهنات الكاملة من الصفر: رسم، التحقق، رفض-معينة من البقية، ركل الاحتفاظ الكهربائي مرة أخرى عند رفض، إصدار رمز مكافأة عند قبول كامل.
المشكلة
يقوم التشفير السريع على نموذج 70B بتشغيل 35 رمز في الثانية على H100. لا يصل إلى حد كبير أن تكون GPU مشبعة. عرض النطاق في الذاكرة هو السقف: كل رمز يحمل 70B من الوزن من HBM ، ويقوم بخطوة واحدة من الحسابات ، ويجري عمل واحد من العبور. وحدات الحساب تقع في الغالب عديمة الفائدة.
يُحول التشفير المضارب إلى مشكلة تسريع يمكنك حلها فعلاً.Nالـ " توكن " فيNالتحقق يعمل مرة واحدة على المقبلات زائد كلNمسودات إذا كان توزيع المؤكد في الموقف iوفق مشروع (في المعنى الإحصائي سنقوم بتحديد) ، نقبل؛ وإلا، نرفض ونحن نموذج تصحيح من التوزيع المتبقية.N+1قبلت رموز بدلاً من واحدة
النظريه التي تهم هي ليفياثان، كالمين، ماتيا (ICML 2023): توزيع الخروج هو نفسه ما كان قد ينتج عن عينات من المحقق مباشرة. ليس تقريبا. هو نفسه. هذا هو السبب كله لتقديم التشفير المضاربة مقبولة في الإنتاج.
ما أعطاكه المرحلة 7 · الدروس 16 كانت الرياضيات. ما يعطيك هذا الدروس هو كومة التدريب. مسودة جيدة تساوي 2x أكثر تسريع من مسودة رخيصة. إيغل، إيغل-2 و إيغل-3 (لي وزملاء، 20242025) حول "مسودة = نسخة أصغر من نفس النموذج" إلى تخصص هندسي دقيق. 2026 خادمات استنتاج استنتاج افتراضي إلى إيغل-3.
المفهوم
عدم التغير: أخذ عينات رفض ليفياثان
دعوناp(t)يكون توزيع المسودة للرمز التالي مع إعطاء بعض المرفق، و q(t)-أبدو مؤكداً، خذ عينة من مشروع رمزd ~ p. اقبل مع الاحتمالاتmin(1, q(d) / p(d)). عند رفض، عينة من التوزيع المتبقية (q - p)_+ / ||(q - p)_+||_1. يتم توزيع العينات الناتجة وفقاً لqهذا صحيح مهما كان سيئاًpكلما كان الأمر أسوأ، كلما رفضت أكثر، لكن النتائج لا تزال دقيقة.
- كومة
Nمن هذه المكالمات مرة أخرى إلى أخرى باستخدام واحد مؤكد التقدم إلى الأمامprefix + d_1 + ... + d_N. المحقق يعودq_1, q_2, ..., q_{N+1}في نفس الوقت، تمشي من اليسار إلى اليمين عند الرفض الأول في الموقفj، عينة منresidual(q_j, p_j)عند قبولك الكامل، خذ نموذج إضافي منq_{N+1}. . .
ما الذي يحدد السرعة
دعوناαيكون معدل قبول المتوقع لكل رمز مسود.c = cost(draft) / cost(verifier)يكون نسبة التكلفة. العدد المتوقع من الرموز المقبولة لكل مؤكد إلى الأمام هو:
E[accepted] = (1 - α^(N+1)) / (1 - α)الموقع إجمالي وقت الجدار لكل رمز مقبول هو (N * c + 1) / E[accepted]. أقلل ذلك فيما يتعلقNو تحصل على الموقع المفضلα = 0.8, c = 0.05: مثالي Nهو حوالي 57, السرعة هو 3.2×.α = 0.95, c = 0.02: مثالي Nهو حوالي 8 × 10، السرعة تدفع 5 ×.
أكبر مؤشر واحد هوα- منα = 0.6(مخطط الفانيلا) إلى α = 0.9(إيغل-3) في ثابت N = 5يُحصل على ما يقرب من 2 × أكثر من التوصيل من نفس المحقق.
التقدم على مدى سنتين
Vanilla speculative (Leviathan, 2023).النموذج المسود هو ماجستير في العلوم القانونية أصغر مدربة بشكل مستقل من نفس العائلة.α ≈ 0.6، وتسرع حوالي 2 × في أفضل الأحوال.
EAGLE-1 (Li et al., 2024).مسودة هو محول صغير عادةً طبقة واحدة أو اثنتين يأخذ آخر طبقة من المحقق من حالة مخفية كمدخلة ويتوقع الرمز التالي مباشرة. لأن المسودة ترى تمثيل ميزة المحقق، وتوزيعها أقرب بكثير إلى المحقق من. αيرتفع إلى 0.70.8
EAGLE-2 (Li et al., 2024).يضيف شجرة مسودة ديناميكية: بدلا من اقتراح تسلسل واحد من Nالـ "توكين" ، واقترح شجرة صغيرة من المرشحين ، و تسجل كل واحد مع المؤكد في مرور واحد إلى الأمام (تأمل الشجرة) ، و تسير على مسار أعلى احتمالية. يصبح طول مشروع متكيف لكل خطوة. αكل رمز من المسارات المقبولة يرتفع فوق 0.85.
EAGLE-3 (Li et al., 2025, NeurIPS).تغييرين آخرين أولاً، إسقاط الخسارة التنبؤية الميزة بالكامل EAGLE-1/2 تدرب المسودة لتطابق الحالات الخفية للمحقق، والتي تقيّد كمية البيانات التي تساعد. "إيغل-3" تتدرب مباشرة على التنبؤات الرمزية ثانياً، اختبار وقت التدريب (TTT): خلال تدريب مشروع، قم بإعادة التنبؤات السابقة للمشروع على أنه مدخل عبر خطوات متعددة، بنفس الطريقة التي تعمل بها عند الاستنتاج. هذا يُحسِّن توزيع القطار والاختبار ويقفّ على تراكم الأخطاء. سرعة قياسية: تصل إلى 6.5 × على الدردشة، وتحسين نطاق النطاق بنسبة 38% في الحزمة 64 في SGLang على H100.
إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إعادة إ إ إعادة إعادة إ إعادة إعادة إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ إ
التحقق يمتد التخزين الاحتياطي KV للمحققNإدخالات في مرور واحد إذا حدث الرفض في الموقفj، محتويات التخزين السابقةj-1يخطئ الآن. عمليات تنفيذ شائعة: كتابة إلى حافظة خدش والالتزام عند قبول (vLLM ، TensorRT-LLM) ، أو الحفاظ على متخزن KV المادي بالإضافة إلى طول منطقي وتقليص على رفض. في كلتا الحالتين ، تكلفة الردع هي بايتات لكل طبقة لكل رأس ، وهو أمر لا يذكر بجوار تكلفة المرور المضي.
لبحث شجرة EAGLE-2، يقوم المؤكد بتشغيل الاهتمام مع قناع غير سببي يحترم أوضاع الأشجار. الهندسة صعبة ولكن الحساب هو مكالمة الاهتمام المتفجرة القياسية مع قناع مخصص.
مشروعات الهندسة المعمارية في عام 2026
| Strategy | Draft type | α | Speedup | Training cost |
|---|---|---|---|---|
| Vanilla | Separate small LLM | 0.55-0.70 | 1.8-2.3× | None (reuse existing small model) |
| Medusa | Extra LM heads on verifier | 0.65-0.75 | 2-3× | ~1B SFT tokens |
| EAGLE-1 | 1-layer transformer on hidden states | 0.70-0.80 | 2.5-3× | ~60B tokens |
| EAGLE-2 | EAGLE-1 + dynamic draft tree | 0.80-0.88 | 3-4× | ~60B tokens |
| EAGLE-3 | Multi-layer feature fusion + TTT | 0.88-0.92 | 3.5-6.5× | ~60-200B tokens |
| Lookahead | No draft (Jacobi iteration) | N/A | 1.3-1.6× | None |
في عام 2026 الإنتاج: vLLM و SGLang افتراضي إلى EAGLE-3 عندما تكون متاحة ، EAGLE-2 خلاف ذلك. TensorRT-LLM لديها أسرع مسار Medusa للنماذج العامة Meta و NVIDIA. llama.cpp شحن مشروع الفانيليا لتطبيقات CPU.
بناءها
انظرcode/main.py. هذه هي حلقة التكهنة كاملة ليفياثان مع جميع القطع: مسودة N ، مرسل متوازي المؤكد ، رفض لكل موقع ، أخذ العينات المتبقية ، رمز مكافأة ، إعادة KV ، والتحقق التجريبي من أن توزيع الخروج يطابق العينات المباشرة من q. . .
الخطوة الأولى: قاعدة الرفض
pythondef accept(q_prob, p_prob, u):
if p_prob <= 0:
return True
return u < min(1.0, q_prob / p_prob)الخطوة الثانية: توزيع البقايا
pythondef residual(q, p):
raw = [max(0.0, qi - pi) for qi, pi in zip(q, p)]
s = sum(raw)
if s == 0:
return list(q)
return [r / s for r in raw]الخطوة الثالثة: خطوة تكهنية كاملة
- نعم
spec_stepمسودات الوظيفةNالـ " توكن " منp، ثم يُحققُ كُلّهم في مُوازٍ واحدqالتقييم. لكل رمز مسود يطبق قاعدة الرفض، وعلى الرفض الأول يختار التصحيح من البقية. إذا قبلت كل شيء، فإنه ينبعث رمز إضافي منq_{N+1}. . .
الخطوة الرابعة: إدارة الحسابات المترددة للسيارات الكهربائية
المحاكي يتتبع منطقيةkv_lengthعلى كل عامل.kمسوداتkv_length += k. بشأن رفض في الموقفj، الجهاز المخزن قد تم كتابته بالفعلj، لكن الطول المنطقي هو محدد إلى prefix_length + j + 1 واحد ما بعد رمز التصحيح. القراءة التالية تركنت إلى الطول المنطقي.
الخطوة 5: فحص ليفياتان
اجري 50،000 خطوة تخمينية، احسب التوزيع التجريبي للشعارات المقبولة، مقارنة مع 50،000 عينات مباشرة منq. يجب أن تكون إحصاءات المربع من الصفخة أقل بكثير من القيمة الحرجة
الخطوة 6: تسريع مقابل α
سحق جودة المسودة عن طريق إزعاجpبعيداً عنqفي مختلف الطولات.α، ثم رسم الرموز المتوقعة لكل مكالمة المؤكد كعمل من αوN. يُطبق الرمز جدولًا يُظهر كيفية جودة مسودة فئة EAGLE-3 (α ≈ 0.9) يفتح 45 رموز لكل مكالمة للمحقق.
استخدمها
مستوى الإنتاج vllm serveمع "Eagle-3":
bashvllm serve meta-llama/Llama-3.3-70B-Instruct \
--speculative-config '{
"model": "yuhuili/EAGLE3-LLaMA3.3-Instruct-70B",
"num_speculative_tokens": 5,
"method": "eagle3"
}'SGLang مع EAGLE-3 في اللحظة 64 على H100: حوالي 1.38 × أكثر من عملية تشفير اللحظة-64 الفانيليا، وفقاً لوحة EAGLE-3.
متى يجب الوصول إلى التشفير المضارب:
- أي عبء عمل تفاعلي للردشة حيث تأخر p50 مهم أكثر من ذروة النتائج.
- إنتاج الشفرة والمخرجات المهيكلة (JSON ، SQL).
αهو فوق 0.9 لأن التوزيع المستهدف يمكن التنبؤ به بشكل كبير. - إنتاج الطويل (آلاف الرموز) ، وتسريع التسجيل المعدل يستمر في الدفع
متى لا يجب:
- نماذج صغيرة جداً (< 3B) ، مشروع ليس أرخص بكثير من المحقق.
- عمليات تشغيل محركات التشغيل الصغيرة في المجموعة الأولى، قد لا تستحق تكاليف الذاكرة
- أخذ العينات الإبداعية في درجة حرارة عالية جداً حيث
αانهار.
أرسله
هذا الدرس يُنتجoutputs/skill-eagle3-tuner.md. بالنظر إلى عبء عمل استنتاج (النموذج، حجم اللحظة، تأخر الهدف، ملف المهمة) ، فإنه يوصي باستراتيجية فكّة التفكير ومعايير ضبط (عائلة المسودات، N، عمق الأشجار ، تغيير الحرارة).
التمارين
- أركض
code/main.pyتأكيد إحصاءات المربع على تشي على التحقق من التوزيع ليفياثان تبقى تحت قيمة الحرجة بنسبة 95% على 50،000 عينة.
- تفتيش
Nمن 1 إلى 10 معαتم احتفاظها عند 0.9 وcتمت الاحتفاظ بها عند 0.04. رسم الرموز المتوقعة لكل مكالمة المؤكد والوقت الحائط الفعلي لكل الرموز.Nهذا يقلل من الوقت في الجدار، شرح شكل المنحنى
- تعديل الرمز لتحاكي بحث شجرة EAGLE-2: في كل خطوة، يقدم المسودة شجرة من الشكل
[2, 2, 2](ثمانية مسارات مرشحة) يبدأ المؤكد مرة واحدة، والمسار المقبول بأعلى احتمال يفوز.αلكل ورقة وكل رموز لكل مكالمة مؤكدة. مقارنة مع تشخيصات التفاصيل في السلسلة الخطية عند حساب متساو.
- تنفيذ محاكاة إعادة التدريب KV المكتسبة لسلسلتين متزايدة. تسلسل A لديه جميع المسودات المقبولة؛ تسلسل B يرفض في الموقف 2.
kv_lengthيتم تحديثها على التسلسل ولا يتم إضاعة أي عمل
- اقرأ قسم 4 (اختبار وقت التدريب) في ورقة EAGLE-3. شرح في جملتين لماذا يعاني التدريب المخطط الباهض دون TTT من تعصب التعرض ، ولماذا تغذية المخطط التنبؤات الخاصة به أثناء التدريب تصحيحه. ربط هذا مع الأدب المخطط للاستعراض في seq2seq.
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| Leviathan rule | "min(1, q over p)" | Bernoulli accept/reject with probability min(1, q(d)/p(d)), preserves the verifier distribution exactly when you sample from the residual on rejection |
| Residual distribution | "(q minus p) plus, normalized" | (q - p)_+ clamped at zero and renormalized — the correct distribution to sample from on rejection |
| Acceptance rate α | "how often the draft is right" | Expected per-token Bernoulli-success probability under the rejection rule; governs all speedup math |
| EAGLE-1 | "hidden-state draft" | Tiny transformer draft conditioned on the verifier's last-layer hidden state (Li et al., 2024) |
| EAGLE-2 | "dynamic draft tree" | EAGLE-1 plus a tree of candidate continuations scored with tree attention in one verifier pass |
| EAGLE-3 | "training-time test" | Drops the feature-prediction loss, trains on direct token prediction with the draft fed its own outputs during training |
| Training-time test (TTT) | "exposure bias fix" | Run the draft autoregressively during training so train and test input distributions match — the direct analog of scheduled sampling |
| KV rollback | "undo rejected drafts" | Bookkeeping that resets the verifier's KV cache to the accepted-prefix length after a rejection |
| Bonus token | "the free one" | When all N drafts accept, sample one extra from q_{N+1} at no additional verifier cost |
| Tree attention | "verify many candidates at once" | Attention with a non-causal mask that respects the topology of a draft tree; computes q_i for every node in the tree in one forward pass |
المزيد من القراءة
- Leviathan, Kalman, Matias — Fast Inference from Transformers via Speculative Decoding (arXiv:2211.17192, ICML 2023) ورقة الأساسية ونظرية المساواة
- Chen et al. — Accelerating Large Language Model Decoding with Speculative Sampling (arXiv:2302.01318) إدخال مستقل متزامن مع دليل نظيف
- Li et al. — EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty (arXiv:2401.15077) إيغل-1، مسودة مخفية ذات شروط للدولة
- Li et al. — EAGLE-2: Faster Inference of Language Models with Dynamic Draft Trees (arXiv:2406.16858) بحث شجرة ديناميكي
- Li et al. — EAGLE-3: Scaling up Inference Acceleration via Training-Time Test (arXiv:2503.01840, NeurIPS 2025) عدم إقرار الإنتاج عام 2026
- Cai et al. — Medusa: Multiple Decoding Heads (arXiv:2401.10774) نهج بديل خالي من المسودة
- vLLM Speculative Decoding documentation إشارة إنتاجية قائمة مع جميع الاستراتيجيات المرتبطة
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.