अनुमानित डिकोडिंग और ईगल-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प्रत्येक शासन के लिए। - पूर्ण अनुमानात्मक लूप को खरोंच से लागू करेंः शेष से ड्राफ्ट, सत्यापित, अस्वीकार-सैंपल, अस्वीकार पर KV कैश को वापस रोल करें, पूर्ण स्वीकृति पर बोनस टोकन जारी करें।
समस्या
70B मॉडल पर ऑटोरेग्रेसिव डिकोडिंग H100 पर प्रति सेकंड 35 टोकन पर चलती है। GPU कहीं भी संतृप्त नहीं है। मेमोरी बैंडविड्थ छत हैः प्रत्येक टोकन HBM से 70B वजन लोड करता है, एक कदम अंकगणित करता है, और एक फ्लोट उत्पन्न करता है। कंप्यूटिंग इकाइयां ज्यादातर निष्क्रिय बैठती हैं।
अनुमानित डिकोडिंग इसे एक आउटपुट समस्या में बदल देता है जिसे आप वास्तव में हल कर सकते हैं।Nटोकन में Nछोटे आगे पास. सत्यापनकर्ता एक बार उपसर्ग पर चलता है प्लस सभीNयदि सत्यापितकर्ता की स्थिति पर वितरण iएक बड़े मॉडल आगे के लिए एक एकल बड़ी मॉडल के रूप में उत्पादन करता है जो कि एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक ही समय में एक एक समय में एक एक समय में एक ही समय में एक समय में एक एक समय में एक समय में एक एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय में एक समय मेंN+1एक के बजाय टोकन स्वीकार किए गए।
महत्वपूर्ण सिद्धांत लेवीयथन, कलमन, मटियास (ICML 2023) हैः आउटपुट वितरण वैसा ही है जैसा कि सत्यापक से सीधे नमूना लेने से उत्पन्न होता है। लगभग नहीं। समान रूप से। यह पूरी वजह है कि उत्पादन में अनुमानित डिकोडिंग स्वीकार्य है। यह गुणवत्ता के बिना शुद्ध विलंबता अनुकूलन है।
चरण 7 · पाठ 16 आपको गणित दिया। यह पाठ आपको प्रशिक्षण स्टैक देता है। एक अच्छा ड्राफ्ट सस्ते ड्राफ्ट की तुलना में 2 गुना अधिक स्पीडअप के लायक है। ईगल, ईगल-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: इष्टतम N57 के आसपास है, गति 3.2x है।α = 0.95, c = 0.02: इष्टतम N8x10 के आसपास है, गति 5x धक्का।
सबसे बड़ा लीवर हैα. . से जा रहा है α = 0.6(वैनिला ड्राफ्ट) से α = 0.9(एजीएल-3) पर स्थिर N = 5आप प्रति सत्यापित करने वाले 2.2 अपेक्षित स्वीकार टोकन से 4.1 तक आगे बढ़ते हैं।
दो साल की प्रगति
Vanilla speculative (Leviathan, 2023).ड्राफ्ट मॉडल एक ही परिवार से स्वतंत्र रूप से प्रशिक्षित एक छोटे LLM है।α ≈ 0.6, सबसे अच्छा 2x के आसपास गति.
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).दो और बदलाव. पहले, पूरी तरह से सुविधा पूर्वानुमान हानि छोड़ दें ईगल-1/2 सत्यापनकर्ता के छिपे हुए राज्यों से मेल खाने के लिए ड्राफ्ट को प्रशिक्षित किया, जो कि डेटा की मदद करता है कितना सीमा है। ईगल-3 सीधे टोकन भविष्यवाणी पर ट्रेन करता है। दूसरा, प्रशिक्षण समय परीक्षण (TTT): ड्राफ्ट प्रशिक्षण के दौरान, ड्राफ्ट के अपने पिछले भविष्यवाणियों को कई चरणों पर इनपुट के रूप में वापस खिलाएं, उसी तरह से यह निष्कर्ष पर काम करता है। यह ट्रेन और परीक्षण वितरण को संरेखित करता है और त्रुटि के संचय को रोकता है। मापा गया गतिः चैट पर 6.5x तक, H100 पर SGLang में बैच 64 में 38% गति में सुधार।
KV कैश रिलैक
सत्यापन सत्यापितकर्ता के KV कैश को बढ़ाता है Nएक पास में प्रविष्टियाँ। यदि स्थिति पर अस्वीकार होता है j, कैश सामग्री पिछले स्थिति j-1अब दो आम कार्यान्वयन गलत हैं: स्क्रैच बफर में लिखें और स्वीकृति पर प्रतिबद्ध करें (vLLM, TensorRT-LLM), या एक भौतिक KV कैश प्लस एक तार्किक लंबाई और अस्वीकार पर ट्रंकट रखें। किसी भी तरह से, रोलबैक लागत प्रति परत प्रति सिर है, जो आगे-पास लागत के साथ तुच्छ है।
ईगल-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 मेटा और NVIDIA सार्वजनिक मॉडल के लिए सबसे तेज़ मेडुसा पथ है।
इसे बनाओ
देखोcode/main.py. यह सभी टुकड़ों के साथ पूरा लेवीयथन अटकल लूप हैः ड्राफ्ट-ऑफ-एन, सत्यापितकर्ता समानांतर पास, प्रति-स्थिति अस्वीकार, अवशिष्ट नमूनाकरण, बोनस टोकन, KV रोलबैक, और अनुभवजन्य सत्यापन कि आउटपुट वितरण प्रत्यक्ष नमूनाकरण से मेल खाता है q. .
चरण 1: अस्वीकार नियम
pythondef accept(q_prob, p_prob, u):
if p_prob <= 0:
return True
return u < min(1.0, q_prob / p_prob)चरण 2: शेष वितरण
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]चरण 3: एक पूर्ण अनुमानात्मक कदम
spec_stepकार्य प्रारूप N से टोकनp, फिर एक समानांतर में उन सभी की पुष्टि करता है qमूल्यांकन. प्रत्येक प्रारूपित टोकन के लिए यह अस्वीकार नियम लागू करता है, और पहली अस्वीकार पर यह शेष से सुधार का नमूना लेता है। यदि सब कुछ स्वीकार करता है, तो यह एक बोनस टोकन जारी करता है q_{N+1}. .
चरण 4: KV रोलबैक लेखांकन
सिम्युलेटर एक तार्किक ट्रैक करता हैkv_lengthप्रति कार्यकर्ता।kमसौदा, kv_length += k. पद पर अस्वीकार परj, कैश पहले से ही अतीत में लिखा गया है j, लेकिन तार्किक लंबाई निर्धारित है prefix_length + j + 1 एक सुधार टोकन के पास। बाद में ट्रंकट को तार्किक लंबाई तक पढ़ता है।
चरण 5: लेवीयतन चेक
50,000 अनुमानात्मक कदम चलाएं। स्वीकार किए गए टोकन के अनुभवजन्य वितरण की गणना करें। 50,000 प्रत्यक्ष नमूनों की तुलना करें।q. चि-क्वायर सांख्यिकी महत्वपूर्ण मूल्य से बहुत नीचे होनी चाहिए. प्रमेय व्यवहार में पारित होता है.
चरण 6: गति बनाम α
परेशान करके ड्राफ्ट की गुणवत्ता को स्वीप करें pदूर सेqविभिन्न परिमाणों पर।α, फिर प्रति सत्यापनकर्ता कॉल के लिए अपेक्षित टोकन को फ़ंक्शन के रूप में रेखांकित करें αऔर N. कोड में एक तालिका छपी है जिसमें दिखाया गया है कि कैसे ईगल-3 वर्ग के मसौदे की गुणवत्ता (α ≈ 0.9) सत्यापितकर्ता कॉल प्रति 45 टोकन खोलता है।
इसका प्रयोग करें
उत्पादन स्तर vllm serveईगल-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"
}'एच 100 पर बैच 64 पर ईगल-3 के साथ एसजीएलएंगः ईगल-3 पेपर के अनुसार बैच 64 वैनिला डिकोडिंग की तुलना में लगभग 1.38x अधिक आउटपुट।
अनुमानित डिकोडिंग के लिए कब पहुंचना हैः
- किसी भी इंटरैक्टिव चैट कार्यभार जहां p50 विलंबता पीक आउटपुट से अधिक मायने रखता है।
- कोड जनरेशन और संरचित आउटपुट (JSON, SQL) ।
α0.9 से ऊपर है क्योंकि लक्ष्य वितरण अत्यधिक पूर्वानुमान योग्य है। - लंबे समय तक उत्पादन (हजारों टोकन) ।
कब नहीं करनाः
- बहुत छोटे मॉडल (< 3B) । मसौदा सत्यापनकर्ता की तुलना में बहुत सस्ता नहीं है।
- एक बैच 1 सीपीयू तैनाती. मसौदा मॉडल की मेमोरी ओवरहेड इसके लायक नहीं हो सकता है.
- बहुत उच्च तापमान रचनात्मक नमूनाकरण जहां
αगिर जाता है।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-eagle3-tuner.md. एक निष्कर्ष कार्यभार (मॉडल, बैच आकार, लक्षित विलंबता, कार्य प्रोफ़ाइल) को देखते हुए, यह एक अनुमानात्मक डिकोडिंग रणनीति और ट्यूनिंग पैरामीटर (ड्राफ्ट परिवार, N, पेड़ की गहराई, तापमान के प्रति जागरूक स्विचिंग) ।
व्यायाम
- दौड़ें
code/main.py. लेवीयथन वितरण जांच पर चि-क्वायर आंकड़े की पुष्टि करें 50,000 नमूनों पर 95% महत्वपूर्ण मूल्य से नीचे रहता है।
- पोंछें
N1 से 10 तकα0.9 पर रखा गया औरc0.04 पर आयोजित किया गया था. प्रति सत्यापनकर्ता कॉल और प्रति टोकन वास्तविक दीवार समय के लिए अपेक्षित टोकन का प्लॉट।Nवक्र के आकार की व्याख्या करें।
- ईगल-2 पेड़ खोज का अनुकरण करने के लिए कोड को संशोधित करेंः प्रत्येक चरण में, मसौदा आकार का एक पेड़ प्रस्तावित करता है
[2, 2, 2](आठ उम्मीदवार पथ) सत्यापितकर्ता एक बार चलाता है, और उच्चतम संभावना स्वीकार पथ जीतता है। गणनाαप्रति पाना और सत्यापनकर्ता कॉल प्रति कुल टोकन। समकक्ष गणना पर रैखिक श्रृंखला विनिर्देशों को डिकोड करने की तुलना करें।
- दो समवर्ती अनुक्रमों के लिए एक बैच केवी रोलबैक सिम्युलेटर लागू करें। अनुक्रम A में सभी मसौदे स्वीकार किए गए हैं; अनुक्रम B स्थिति 2 में अस्वीकार करता है। दिखाएं कि सही
kv_lengthयह क्रमशः अद्यतन किया जाता है और कोई काम व्यर्थ नहीं होता है।
- ईएजीएलई-3 पेपर के सेक्शन 4 (प्रशिक्षण-समय परीक्षण) को पढ़ें। दो वाक्य में समझाएं कि टीटीटी के बिना भोले ड्राफ्ट प्रशिक्षण जोखिम पूर्वाग्रह से क्यों पीड़ित है, और क्यों प्रशिक्षण के दौरान ड्राफ्ट को अपनी भविष्यवाणियों को खिलाकर इसे ठीक करता है। इसे अनुसूचित नमूनाकरण साहित्य से जोड़ें।
प्रमुख शर्तें
| 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.