विघटित प्रीफिल/डेकोड NVIDIA Dynamo और llm-d
Type: Learn
Languages: Python (stdlib, toy disaggregated-vs-colocated simulator)
Prerequisites: Phase 17 · 04 (Serving Engine Internals), Phase 17 · 08 (Inference Metrics)
Time: ~75 minutes
सीखने के लक्ष्य
- बताएं कि प्रीफिल और डिकोडिंग में अलग-अलग इष्टतम GPU आवंटन क्यों हैं और कोलोकेशन के तहत अपशिष्ट को मात्राबद्ध करें।
- विखंडित वास्तुकला का चित्रण करेंः प्रीफिल पूल, डिकोड पूल, NIXL के माध्यम से KV ट्रांसफर, राउटर।
- उस स्थिति का नाम दें जब विखंडन फल नहीं देता (छोटे संकेत, छोटे आउटपुट) ।
- NVIDIA Dynamo (स्टैक-ऊपर) को llm-d (Kubernetes-native) से अलग करें और प्रत्येक को एक परिचालन संदर्भ से मेल खाएं।
समस्या
आप 8 H100s पर Llama 3.3 70B चलाते हैं। मिश्रित कार्यभार (लंबे प्रॉम्प्ट + लघु आउटपुट) के तहत, GPUs डिकोडिंग के दौरान निष्क्रिय होते हैं क्योंकि अधिकांश गणना प्रीफिल पर खर्च की गई थी। विभिन्न कार्यभार (लघु प्रॉम्प्ट + लंबे आउटपुट) के तहत, विपरीत होता है।
बजट प्रभावः 20-40% GPU समय गलत संसाधन पर बर्बाद होता है। आप मेमोरी-बाउंड डिकोड चलाने के लिए H100 कम्प्यूटर खरीद रहे हैं, या कम्प्यूटर-बाउंड प्रीफिल चलाने के लिए H100 HBM बैंडविड्थ खरीद रहे हैं। दोनों महंगे कचरे हैं।
डिसेग्रिगेशन प्रीफिल और डिकोड को प्रत्येक बोतल गला के आकार के अलग-अलग पूल में विभाजित करता है। KV कैश उच्च बैंडविड्थ इंटरकनेक्ट के माध्यम से प्रीफिल पूल से पूल को डिकोड करता है।
अवधारणा
किन बाधाओं में अंतर है
Prefill एक आगे में पूर्ण इनपुट प्रॉम्प्ट पर ट्रांसफार्मर चलाएं। मैट्रिक्स गुणन हावी हैं; कंप्यूटिंग-बाउंड। H100 FP8 उपयोगी थ्रूपुट का ~2000 TFLOPS देता है। बैच दक्षता अच्छी है एक आगे कई टोकन संसाधित करता है।
Decode एक बार में एक टोकन उत्पन्न करें, प्रत्येक पुनरावृत्ति में पूर्ण वजन पढ़ें। मेमोरी-बैंडविड्थ-बाउंड। HBM3 ~3 TB / s देता है। बैच दक्षता केवल उच्च समवर्तीता पर अच्छी है बैच में वजन पढ़ना निरस्त होता है।
उन्हें स्थान देनाः आप दोनों के लिए अनुकूलित जीपीयू खरीदते हैं। एच 100 दोनों में अच्छा है लेकिन दोनों तरह से समान लागत है। पैमाने पर, आप एच 100 / कम्प्यूटिंग-हेवी पर प्रीफिल पूल चाहते हैं; एच 200 / मेमोरी-हेवी पर डिकोड पूल चाहते हैं, या आक्रामक क्वांटिज़ेशन के साथ।
वास्तुकला
┌──────────────┐
Request → │ Router │ ───────────────────────┐
└──────┬───────┘ │
│ │
▼ (prompt only) │
┌──────────────┐ KV cache ┌───────▼──────┐
│ Prefill pool │ ─── NIXL ────► │ Decode pool │
│ (compute) │ │ (memory) │
└──────────────┘ └──────┬───────┘
│ tokens
▼
ClientNIXL NVIDIA का इंटर-नोड ट्रांसपोर्ट है। उपलब्ध होने पर RDMA/InfiniBand का उपयोग करता है, अन्यथा TCP fallback। ट्रांसफर लटेंसी वास्तविक है आमतौर पर 70B FP8 पर 4K-token प्रॉम्प्ट के KV कैश के लिए 20-80 ms। यही कारण है कि छोटे प्रॉम्प्ट डिसाग्रेशन को सही नहीं ठहराते हैंः ट्रांसफर टैक्स बचत से अधिक है।
डायनामो बनाम इलम-डी
NVIDIA Dynamo(जीटीसी 2025 घोषणा, 1.0 जीए):
- एक संगीतकार के रूप में वीएलएलएम, एसजीएलएंग, टीआरटी-एलएलएम के ऊपर बैठता है।
- प्लानर प्रोफाइलर कार्यभार को मापता है, एसएलए प्लानर स्वचालित रूप से प्रीफिलःडेकोड अनुपात को कॉन्फ़िगर करता है।
- जंग कोर, पायथन विस्तार।
- पारगमन लाभः NVIDIA रिपोर्टों में GB200 NVL72 + Dynamo पर DeepSeek-R1 MoE के लिए 6x मध्यम-लैटेंसी शासन (developer.nvidia.com, 2025-06); पूर्ण ब्लैकवेल + डायनामो + डीपसेक-R1 स्टैक पर "अप से 30x" की सामुदायिक रिपोर्टों में एक एकल प्राथमिक स्रोत का अभाव है और इसे दिशाबद्ध माना जाना चाहिए।
- GB300 NVL72 + Dynamo: प्रति Dynamo उत्पाद पृष्ठ (developer.nvidia.com, undated) प्रति 50x MoE throughput vs Hopper तक।
llm-d(रेड हैट + एडब्ल्यूएस, कुबेरनेट्स-निवासी):
- स्वतंत्र कुबेरनेट्स सेवा के रूप में पूर्व-पूर्ति / डिकोड / राउटर।
- कतार गहराई (पूर्व भरने) / KV उपयोग (डेकोड) संकेतों के साथ प्रति भूमिका HPA।
topologyConstraint packDomain: rackउच्च बैंडविड्थ केवी ट्रांसफर के लिए एक ही रैक पर पैक प्रीफिल+डेकोड क्लिक करें।- llm-d 0.5 (2026): पदानुक्रमिक KV उतारना, कैश-जागरूक LoRA रूटिंग, UCCL नेटवर्क, पैमाने से शून्य तक।
यदि आप एक प्रबंधित स्टैक-ऊपर ऑर्केस्ट्रेटर चाहते हैं तो डायनामो का उपयोग करें।
अर्थशास्त्र
आंतरिक कम्पोजिट (कोई भी प्रकाशित केस स्टडी नहीं बड़े पैमाने के क्रम के एंकर):
- $ 2 मिलियन प्रति वर्ष अनुमानित खर्च कोलकाटेड सेवा पर।
- डायनामो के साथ विघटित करने के लिए स्विच किया।
- एक ही अनुरोध मात्रा, एक ही P99 विलंबता SLA.
- रिपोर्ट की गई बचत: $600K–$800K/वर्ष (3040% की कमी) ।
- कोई नया हार्डवेयर नहीं।
हम इस आंकड़े को एक एकल उद्धृत केस स्टडी के बजाय कई ग्राहक प्रकटीकरणों से संश्लेषित करते हैं; सबसे निकटतम प्रकाशित डेटा बिंदु बासेटन का 2x तेज TTFT / Dynamo KV रूटिंग के साथ 61% अधिक आउटपुट है (baseten.co, 2025-10), और VAST + CoreWeave की अनुमान है 60130% अधिक टोकन / $ 4060% KV हिट दर (vastdata.com, 2025-12) । बचत प्रत्येक पूल के सही आकार से आती है; पूर्व-भरण भारी कार्यभार (RAG 8K+ उपसर्गों के साथ) संतुलित लोगों की तुलना में अधिक लाभदायक है।
जब नहीं विघटन
- < 512 टोकन और आउटपुट < 200 टोकनः हस्तांतरण कर लाभ पर हावी होता है।
- छोटे क्लस्टर (< 4 GPU): पर्याप्त पूल विविधता नहीं है।
- टीम प्रति भूमिका स्केलिंग के साथ दो जीपीयू पूल संचालित नहीं कर सकती हैः डायनामो मदद करता है लेकिन तुच्छ नहीं।
- आरडीएमए का कोई कपड़ा नहींः टीसीपी हस्तांतरण कर अधिक भारी है।
राउटर चरण 17 · 11 के साथ एकीकृत
विखंडित राउटर केवी-कैश-जागरूक हैं (चरण 17 · 11) एक अनुरोध अपने पूर्वावलोकन को पकड़ने वाले डिकोड पूल पर उतरता है यदि कोई मैच नहीं होता है, तो यह प्रीफिल → डिकोड प्रवाह करता है। हिट रेट और डिसाग्रेगेशन यौगिक कैश-जागरूक राउटर निर्धारित करता है कि क्या एक नया प्रीफिल की आवश्यकता है।
ब्लैकवेल पर एमओई जहां वास्तविक संख्या है
GB300 NVL72 + Dynamo हॉपर बेसलाइनों पर 50x MoE आउटपुट दिखाता है। MoE विशेषज्ञ रूटिंग प्रीफिल पर कंप्यूटिंग भारी है लेकिन डिकोडिंग (विशेषज्ञ कैश) पर मेमोरी भारी है, इसलिए विखंडन एक डबल जीत है। 2026 सीमा मॉडल सेवा MoE-dominant है (DeepSeek-V3, भविष्य के GPT-5 संस्करण) ।
संख्याओं को याद रखना चाहिए
बेंचमार्क संख्याओं के परिप्रेक्ष्य NVIDIA और निष्कर्ष स्टैक पोस्ट अद्यतन परिणाम हर तिमाही. उद्धरण से पहले फिर से जांचें.
- GB200 NVL72 + Dynamo पर डीपसेक-आर 1: ~6x माध्यम-लैटेंसी शासन में आधार रेखा के मुकाबले ~6x पारगमन (developer.nvidia.com, 2025-06); पूर्ण ब्लैकवेल + डायनामो स्टैक पर सामुदायिक "अप 30x" दावे एक एकल प्राथमिक स्रोत के बिना दिशात्मक संकलित हैं।
- GB300 NVL72 + Dynamo: 50x MoE throughput vs Hopper (developer.nvidia.com, undated) तक।
- बचत एंकर (आंतरिक कम्पोजिट, एक भी केस स्टडी नहीं): $600-800K/year off a $निरंतर SLA पर 2M वार्षिक व्यय।
- विखंडन सीमाः प्रमाणीकरण > 512 टोकन + आउटपुट > 200 टोकन।
- NIXL के माध्यम से KV स्थानांतरणः 70B FP8 पर 4K-प्रोम्प्ट KV के लिए 20-80 ms।
इसका प्रयोग करें
code/main.pyएक समन्वित और एक विघटित सेवा का अनुकरण करता है। यह उत्पादन, प्रति अनुरोध लागत और शीघ्र लंबाई क्रॉसओवर की रिपोर्ट करता है।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-disaggregation-decider.md. कार्यभार और समूह को देखते हुए, यह तय करता है कि इसे विखंडित किया जाना चाहिए या नहीं।
व्यायाम
- दौड़ें
code/main.py. विखंडन को कोलाकेशन से कितनी तेजी से बढ़ाना चाहिए? - आरएजी सेवा के लिए प्रीफिल पूल और डिकोड पूल को P99 प्रीफिक्स लंबाई 8K, आउटपुट 300 के साथ डिज़ाइन करें।
- डायनामो बनाम llm-d: पायथन रनटाइम प्राथमिकता के बिना एक शुद्ध-Kubernetes दुकान के लिए एक चुनें।
- गणना KV हस्तांतरण लागतः 70B FP8 पर 4K प्रीफिल = ~500 MB KV। RDMA पर 100 GB/s, हस्तांतरण = 5 ms। TCP पर 10 GB/s = 50 ms। आपके SLA के लिए क्या मायने रखता है?
- एमओई विशेषज्ञ रूटिंग केवी एक्सेस पैटर्न को बदलता है। एमओई के साथ विखंडन कैसे व्यवहार करता है जो प्रति टोकन विभिन्न विशेषज्ञों को सक्रिय करता है?
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| Disaggregated serving | "split prefill/decode" | Separate GPU pools for each phase |
| NIXL | "NVIDIA transport" | Dynamo's inter-node KV transfer (RDMA/TCP) |
| NVIDIA Dynamo | "the orchestrator" | Stack-above coordinator for vLLM/SGLang/TRT-LLM |
| llm-d | "Kubernetes native" | Red Hat + AWS K8s disaggregated stack |
| Planner Profiler | "Dynamo auto-config" | Measures workload, configures pool ratios |
| SLA Planner | "Dynamo policy" | Auto-rate-matches prefill:decode to meet SLOs |
packDomain: rack | "llm-d topology" | Pack prefill+decode on same rack for fast KV |
| UCCL | "unified collective" | llm-d 0.5 networking layer for scale-to-zero |
| MoE expert routing | "expert per token" | DeepSeek-V3 pattern; disaggregation helps |
आगे पढ़ना
- NVIDIA — Introducing Dynamo
- NVIDIA — Disaggregated LLM Inference on Kubernetes
- TensorRT-LLM Disaggregated Serving blog
- llm-d GitHub
- llm-d 0.5 release notes
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.