पाठ 23 / 29

Serving throughput को क्या सीमित करता है

व्यावहारिक स्तर पर memory, batching और quantisation समझें।

Memory और batching तय करते हैं कितने users समाते हैं

अपना मॉडल serve करते समय तीन चीज़ें हावी होती हैं। Memory: weights लगभग parameters गुणा प्रति parameter bytes लेते हैं (7-अरब-parameter मॉडल को 16-bit परिशुद्धता में लगभग 14 GB चाहिए), साथ में प्रति सक्रिय अनुरोध KV cache जो context लंबाई के साथ बढ़ता है, इसलिए लंबे contexts और कई समवर्ती users GPU memory के लिए होड़ करते हैं। Batching: GPUs तब कुशल हैं जब कई अनुरोध साथ प्रोसेस हों, इसलिए serving engines throughput बढ़ाने को continuous batching (चलते batch में नए अनुरोध जोड़ना) उपयोग करते हैं, व्यक्तिगत latency की कुछ क़ीमत पर। Quantisation weights को 8 या 4 bits में रखती है ताकि GPU पर ज़्यादा समाए और serving तेज़ हो, आम तौर पर छोटी गुणवत्ता हानि के साथ जिसे आपको अपने मूल्यांकन set पर मापना चाहिए। और भी प्रासंगिक: prompt लंबाई (prefill लागत इनपुट के साथ बढ़ती है), आउटपुट लंबाई (decoding क्रमिक है), आधुनिक engines में speculative decoding और prefix caching। अपने prompts और concurrency से benchmark करें, क्योंकि vendor संख्याएँ सुविधाजनक settings उपयोग करती हैं।

Serving के लिए memory अंकगणित

योजना के लिए अंगूठे के नियम; असली engines overhead जोड़ते हैं।

weights memory  ~  parameters x bytes per parameter
   7B model, 16-bit (2 bytes):   ~14 GB      8-bit (1 byte): ~7 GB      4-bit (0.5 byte): ~3.5 GB
   70B model, 16-bit:            ~140 GB     4-bit: ~35 GB

KV cache  ~  2 x layers x kv_heads x head_dim x bytes x tokens x concurrent requests
   -> doubling context length or concurrency roughly doubles KV-cache memory

so:  GPU memory = weights + KV cache (grows with users x context) + activations/overhead
     quantise weights, shorten contexts, or add GPUs when it does not fit

अपने prompts से benchmark करें

Vendor throughput संख्याएँ सुविधाजनक prompt लंबाइयाँ और settings उपयोग करती हैं।

त्वरित जाँच: Quantisation मुख्य रूप से क्या करती है?

  • कम bits में weights रखकर memory (और अक्सर लागत) घटाती है, कुछ गुणवत्ता हानि के साथ जिसे मापना है
  • मॉडल को बड़ा बनाती है
  • मूल्यांकन की ज़रूरत हटाती है
  • Weights encrypt करती है
Answer

कम bits में weights रखकर memory (और अक्सर लागत) घटाती है, कुछ गुणवत्ता हानि के साथ जिसे मापना है — Quantised मॉडल पर अपना मूल्यांकन set हमेशा दोबारा चलाएँ।