एक GPU और एक मॉडल चुनें, और यह अनुमान लगाता है कि लोकल inference वास्तव में कितनी तेज़ लगेगा: decode गति (टोकन प्रति सेकंड जब मॉडल उत्तर देता है – यह मेमोरी-बैंडविड्थ पर निर्भर है) और प्रॉम्प्ट प्रोसेसिंग गति (compute पर निर्भर)। ये केवल अनुमान हैं – असली आँकड़े आपके इंजन, ड्राइवरों और सेटिंग्स पर निर्भर करते हैं।
Decode में माना जाता है कि वज़न + KV कैश VRAM में ही रहते हैं और यह लगभग 80% मेमोरी बैंडविड्थ का उपयोग करता है; प्रॉम्प्ट प्रोसेसिंग लगभग 55% compute दक्षता मानती है। MoE मॉडल अपने सक्रिय पैरामीटरों पर compute करते हैं, इसलिए असली prefill दिखाए गए मान से तेज़ हो सकता है।
हम इसकी गणना कैसे करते हैं – मान्यताएँ और सूत्र
असली प्रदर्शन इंजन, केर्नल, ड्राइवर और कूलिंग पर निर्भर करता है। ये मेमोरी- और compute-बाउंड ऊपरी सीमाएँ हैं, जो वास्तविक दक्षता के अनुसार समायोजित की जाती हैं, न कि बेंचमार्क।
1. क्या यह फिट बैठता है?
weights = params × bytes_per_quant / GiB kv_cache ≈ params × 16384 × context / GiB total = weights + kv_cache
KV यहाँ एक मोटे 8B-आर्किटेक्चर अनुमान का उपयोग करता है (8B के लिए लगभग ~128 KB प्रति टोकन)। यदि total > vram है तो हम 'फिट नहीं बैठेगा' चिह्नित करते हैं; लेयर्स/हेड्स/डिम से असली KV अधिक सटीक है – उसके लिए VRAM कैलकुलेटर का उपयोग करें।
2. Decode गति (मेमोरी-बाउंड)
bytes_per_token = weights × GiB + kv_per_token decode_tok/s = (memory_BW × 0.8) / bytes_per_token
हर जनरेट किया गया टोकन पूरे मॉडल + KV को पढ़ता है। 0.8 लगभग 80% प्राप्त करने योग्य बैंडविड्थ दर्शाता है; क्वांटाइज़ेशन मदद करता है क्योंकि प्रति टोकन बाइट कम होते हैं।
3. Prefill / प्रॉम्प्ट प्रोसेसिंग (compute-बाउंड)
prefill_tok/s = (TFLOPS × 0.55) / (2 × params)
प्रॉम्प्ट प्रोसेसिंग एक बड़ा matmul है: प्रति पैरामीटर प्रति टोकन लगभग 2 FLOPs। 0.55, 55% compute उपयोग को दर्शाता है। MoE मॉडल सक्रिय पैरामीटरों का उपयोग करते हैं, इसलिए असली prefill अधिक हो सकता है।
4. समय
TTFT = prompt_tokens / prefill_tok/s gen_time = answer_tokens / decode_tok/s
यह भी देखें: आपको कितनी VRAM चाहिए? और लोकल LLM के लिए सबसे अच्छा GPU।