इन्फेरेंस मेट्रिक्स TTFT, TPOT, ITL, Goodput, P99
Type: Learn
Languages: Python (stdlib, toy percentile calculator and goodput reporter)
Prerequisites: Phase 17 · 04 (Serving Engine Internals)
Time: ~60 minutes
सीखने के लक्ष्य
- TTFT, TPOT, ITL, E2E, throughput और goodput को सटीक रूप से परिभाषित करें और प्रत्येक घटक का नाम लें।
- एमएलएम सेवा के लिए औसत गलत आंकड़ा क्यों है और पी50/पी90/पी99 कैसे पढ़ें, इसकी व्याख्या करें।
- एक SLO बहु-प्रतिबंध (जैसे TTFT<500 ms और TPOT<15 ms और E2E<2 s) का निर्माण करें और इसके अनुसार अच्छापुट गणना करें।
- दो बेंचमार्क उपकरण का नाम बताइए जो एक ही रन के लिए TPOT पर असहमत हैं और बताएं कि क्यों।
समस्या
"हमारा थ्रूपुट 15,000 टोकन प्रति सेकंड है". तो क्या? अगर 40% अनुरोध अंत से अंत तक 2 सेकंड से अधिक समय तक फट जाते हैं, तो उपयोगकर्ता सत्र छोड़ देते हैं। अकेले थ्रूपुट आपको नहीं बताता कि उत्पाद काम करता है या नहीं।
इन्फेरेंस में कई विलंब अक्ष हैं और प्रत्येक अलग-अलग विफलता है। प्रीफिल कम्प्यूटेबल है और त्वरित लंबाई के साथ स्केल करता है। डिकोड मेमोरी-बंद है और बैच आकार के साथ पैमाने. कतार में देरी एक परिचालन समस्या है। नेटवर्क भौतिक दूरी की समस्या है। आपको प्रत्येक के लिए अलग-अलग मेट्रिक्स की आवश्यकता है, और आपको प्रतिशत की आवश्यकता है, और आपको एक एकल समग्र की आवश्यकता है जो कहता है "क्या उपयोगकर्ता को वह मिला जो उन्होंने उम्मीद की थी"
अवधारणा
TTFT समय पहले टोकन के लिए
TTFT = queue_time + network_request + prefill_time
प्रीफिल लंबे समय तक होता है। H100 पर Llama-3.3-70B FP8 पर, 32k प्रॉम्प्ट में ~800 ms शुद्ध प्रीफिल होता है। कतार का समय लोड के तहत अनुसूचक व्यवहार है। नेटवर्क अनुरोध TLS सहित वायर समय है। TTFT उपयोगकर्ता कुछ भी वापस स्ट्रीम करने से पहले देखता है।
TPOT / ITL इंटर-टोकन लटेंसी
एक मात्रा के लिए कई नाम।TPOT(आउटपुट टोकन प्रति समय), ITL(इंटर-टोकन लटेंसी), decode latency per token सभी समान. यह पहले के बाद लगातार स्ट्रीम किए गए टोकन के बीच का समय है।
TPOT = (decode_forward_time + scheduler_overhead) / tokens_produced
एक ही Llama-3.3-70B H100 स्टैक पर टुकड़े टुकड़े के साथ प्रीफिल, TPOT ~ 7 ms का मतलब है। बिना टुकड़े टुकड़े प्रीफिल के, एक पड़ोसी अनुक्रम पर एक लंबे प्रीफिल के दौरान, TPOT 50 ms तक बढ़ सकता है। P99 देखो, नहीं मतलब।
E2E विलंबता
E2E = TTFT + TPOT * output_tokens + network_response
लंबे आउटपुट (>500 टोकन) के लिए, E2E TPOT-dominated है। लंबे प्रॉम्प्ट के साथ छोटे आउटपुट के लिए, E2E TTFT-dominated है। रिपोर्ट आउटपुट-लंबाई-कंडीशनिंग E2E।
पारगमन
throughput = total_output_tokens / elapsed_time
समग्र माप आपको बेड़े की दक्षता बताता है, व्यक्तिगत अनुरोध स्वास्थ्य नहीं बताता है।
अच्छा उत्पादन मीट्रिक आप वास्तव में परवाह करते हैं
goodput = fraction of requests meeting (TTFT <= a) AND (TPOT <= b) AND (E2E <= c)
SLO एक बहु-प्रतिबंध है। एक अनुरोध केवल तभी "अच्छा" है जब प्रत्येक प्रतिबन्ध को पूरा किया जाए। Goodput हिस्सा है। 60% goodput पर उच्च आउटपुट विफलता है। 99% goodput पर कम आउटपुट लक्ष्य है।
2026 में, goodput MLPerf इन्फरेंस v6.0 प्रस्तुतियों और AI प्लेटफॉर्म प्रदाताओं में आंतरिक SLA ट्रैकिंग में उपयोग किए जाने वाले मीट्रिक है।
गलत आंकड़ा क्यों है
LLM लटेंसी वितरण दाएं-शेव हैं। एक लंबे पूर्व-पूर्ति वाले पड़ोसी के साथ एक डिकोड बैच 500 टोकन TPOT ~ 7 ms और TPOT ~ 60 ms के साथ 20 टोकन भेज सकता है। औसत TPOT 9 ms है। P99 TPOT 65 ms है। उपयोगकर्ता नियमित रूप से P99 पर हिट करते हैं। यही कारण है कि वे छोड़ देते हैं।
हमेशा तीन (P50, P90, P99) रिपोर्ट करें। उपयोगकर्ता अनुभव के लिए, P99 वह है जिसे आप अनुकूलित करते हैं।
संदर्भ संख्या Llama-3.1-8B-TRT-LLM पर निर्देश, 2026
- औसत TTFT: 162 ms
- औसत TPOT: 7.33 ms
- औसत E2E: 1,093 ms
- P99 TPOT: टुकड़े-टुकड़े पूर्व-भरण विन्यास के आधार पर 10-25 ms में भिन्न होता है।
ये प्रकाशित NVIDIA संदर्भ बिंदु हैं। वे मॉडल आकार (70B 3-5x दिखाएगा), हार्डवेयर (H100 बनाम B200 ~ 3x), और लोड के साथ बदलते हैं।
माप जाल
2026 में सबसे अधिक इस्तेमाल किए जाने वाले बेंचमार्क टूल में से दो एक ही रन के लिए TPOT पर असहमत हैंः
- NVIDIA GenAI-Perf: ITL की गणना से TTFT को बाहर रखा गया है। ITL टोकन 2 से शुरू होता है।
- LLMPerf: TTFT शामिल है. ITL टोकन 1 से शुरू होता है।
500 ms TTFT और 700 ms कुल डिकोड में 100 आउटपुट टोकन के साथ अनुरोध के लिए, GenAI-Perf रिपोर्ट ITL = 700/99 = 7.07 ms, LLMPerf रिपोर्ट ITL = 1200/100 = 12.00 ms. उपकरण विकल्प संख्या बदलता है.
हमेशा बताएं कि कौन सा उपकरण है। हमेशा परिभाषा प्रकाशित करें।
एसएलओ का निर्माण
2026 में 70B चैट मॉडल के लिए उपभोक्ता के लिए एक उचित SLOः
- TTFT P99 <= 800 ms।
- TPOT P99 <= 25 ms।
- E2E P99 <= 3 s <300-टोकन आउटपुट के लिए।
- अच्छा उत्पादन लक्ष्य >= 99%
एंटरप्राइज एसएलओ टीटीएफटी (200-400 एमएस) को कसते हैं और ई 2 ई को ढीला करते हैं। बिंदु उन्हें लिखना, तीनों को मापना और एक एकल समग्र के रूप में अच्छा उत्पादन ट्रैक करना है।
मापने का तरीका
- वास्तविक या यथार्थवादी सिंथेटिक ट्रैफ़िक चलाएं (LLMPerf के साथ
--mean-input-tokens 800 --stddev-input-tokens 300 --mean-output-tokens 150) । - बेंचमार्क रन के लिए 2x पीक समवर्ती लक्ष्य।
- 30-50 पुनरावृत्ति चलाओ, संयुक्त नमूना के प्रतिशत लें।
- उपकरण नाम, उपकरण संस्करण, मॉडल, हार्डवेयर, समवर्ती, शीघ्र वितरण के साथ प्रकाशित करें।
इसका प्रयोग करें
code/main.pyएक खेलौना अच्छापन कैलकुलेटर है। एक सिंथेटिक विलंबता वितरण उत्पन्न करें, एक SLO लागू करें, और अच्छापन गणना करें। यह एक ही निशान पर GenAI-Perf बनाम LLMPerf TPOT अंतर भी दिखाता है।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-slo-goodput-gate.md. कार्यभार और SLO को देखते हुए, यह एक CI/CD-ready बेंचमार्क रेसिपी तैयार करता है जिसे गेट आउटपुट की बजाय goodput पर तैनात करता है।
व्यायाम
- दौड़ें
code/main.py. 1% पूंछ की चोटी के साथ वितरण उत्पन्न करें. जब आप 30 ms से 15 ms तक P99 TPOT को कसते हैं तो अच्छापुट कैसे बदलता है? - एक विक्रेता "लमा 3.3 70B H100 पर 15,000 टोक / सेकंड" का उद्धरण देता है। उस पर भरोसा करने से पहले तीन प्रश्न पूछें।
- टुकड़े टुकड़े प्रीफिल पी 99 टीपीओटी की रक्षा क्यों करते हैं लेकिन टीपीओटी का मतलब नहीं करते हैं?
- एक आवाज सहायक के लिए उपभोक्ता SLO का निर्माण करें (पहला टोकन सुना जाता है, नहीं पढ़ा जाता है) कौन सा मीट्रिक उपयोगकर्ता के लिए सबसे अधिक दृश्यमान है?
- LLMPerf README और GenAI-Perf डॉक्स पढ़ें। तीन अन्य मीट्रिक की पहचान करें जहां उपकरण असहमत हैं।
प्रमुख शर्तें
| Term | What people say | What it actually means |
|---|---|---|
| TTFT | "time to first token" | Queue + network + prefill; dominated by prefill at long prompts |
| TPOT | "time per output token" | Memory-bound decode cost per token after first |
| ITL | "inter-token latency" | Same as TPOT in most tools (not all — see GenAI-Perf) |
| E2E | "end to end" | TTFT + TPOT * output_len; response-side network on top |
| Throughput | "tok/s" | Fleet efficiency; useless without latency percentiles |
| Goodput | "SLO-met rate" | Fraction of requests meeting every SLO constraint simultaneously |
| P99 | "tail" | 1-in-100 worst-case latency; the user experience metric |
| SLO multi-constraint | "the joint" | AND of all three latency bounds; a request fails if any one is violated |
| GenAI-Perf vs LLMPerf | "the tool trap" | Tools disagree on whether ITL includes TTFT |
आगे पढ़ना
- NVIDIA NIM — LLM Benchmarking Metrics TTFT, ITL, TPOT की कैनोनिक परिभाषा।
- Anyscale — LLM Serving Benchmarking Metrics वैकल्पिक परिभाषाएं और माप विधि।
- BentoML — LLM Inference Metrics वास्तविक तैनाती पर लागू माप।
- LLMPerf रे आधारित ओपन सोर्स बेंचमार्क।
- GenAI-Perf एनवीडीआईए का बेंचमार्क टूल।
- MLPerf Inference उद्योग द्वारा स्वीकार किए गए अच्छा उत्पादन आधारित बेंचमार्क।
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.