छोटे मॉडल्स को सस्ते में सर्व करना
कई यूज़र्स को मॉडल सर्व करने में हर घंटे पैसे खर्च होते हैं। बैचिंग, कैशिंग, CPU इन्फेरेंस और ऑटोस्केलिंग सीखें, और यह पहचानना सीखें कि कब कोई होस्टेड API इस्तेमाल करना वाकई सस्ता पड़ता है।
60 सेकंड में
छोटे मॉडल्स को सस्ते में सर्व करना
कई यूज़र्स को मॉडल सर्व करने में हर घंटे पैसे खर्च होते हैं। बैचिंग, कैशिंग, CPU इन्फेरेंस और ऑटोस्केलिंग सीखें, और यह पहचानना सीखें कि कब कोई होस्टेड API इस्तेमाल करना वाकई सस्ता…
लागत घटाने के चार तरीके
| तरीका | यह क्या करता है | यह कब काम आता है |
|---|---|---|
| बैचिंग | कई रिक्वेस्ट्स को एक साथ प्रोसेस करता है, ताकि हार्डवेयर लगातार व्यस्त रहे | एक साथ कई यूज़र्स होने पर; कॉन्टिन्युअस बैचिंग के बारे में स्टेप 17 में बताया गया है |
| कैशिंग | बार-बार आने वाले जवाबों या काम को सेव कर लेता है, ताकि उन्हें दोबारा प्रोसेस न करना पड़े | आम सवाल; हर रिक्वेस्ट पर वही लंबा सिस्टम प्रॉम्प्ट होना |
| CPU इन्फेरेंस | साधारण CPU सर्वर्स पर छोटा क्वांटाइज़्ड मॉडल चलाता है | कम या स्थिर ट्रैफ़िक, छोटे मॉडल्स, ऐसे काम जहाँ थोड़ा धीमा जवाब भी चल जाए |
| ऑटोस्केलिंग | व्यस्त होने पर सर्वर जोड़ता है और काम कम होने पर उन्हें हटा देता है, कभी-कभी शून्य तक भी ले जाता है | ऐसा ट्रैफ़िक जो घटता-बढ़ता रहता है, जैसे परीक्षा का समय या त्योहारों की सेल |
कैशिंग, दो तरह की
- रिस्पॉन्स कैश: अगर वही सवाल दोबारा आता है (जैसे "लाइब्रेरी का समय क्या है?"), तो सेव किया हुआ जवाब लौटा दें। ऐसा सिर्फ़ उन्हीं जवाबों के लिए करें जो यूज़र पर निर्भर नहीं करते और अक्सर नहीं बदलते।
- प्रीफ़िक्स या प्रॉम्प्ट कैश: कई रनटाइम्स प्रॉम्प्ट की लंबी, दोहराई जाने वाली शुरुआत (जैसे कि सिस्टम प्रॉम्प्ट) पर किए गए काम का दोबारा इस्तेमाल कर सकते हैं। इससे हर रिक्वेस्ट पर समय और कंप्यूट दोनों की बचत होती है। देखें कि आपका रनटाइम क्या सपोर्ट करता है।
सेल्फ़-होस्टेड या होस्टेड API? हिसाब लगाएँ
# All prices below are MADE-UP examples for practice. Use real quotes for real decisions.
api_price_per_million_tokens = 50.0 # rupees, input and output combined, example only
server_cost_per_month = 20_000.0 # rupees, including storage and bandwidth, example only
ops_hours_per_month = 10 # your team's time to run and update it
ops_cost_per_hour = 800.0 # rupees, example only
tokens_per_request = 1_500
self_hosted_monthly = server_cost_per_month + ops_hours_per_month * ops_cost_per_hour
for requests_per_day in (500, 5_000, 50_000):
monthly_tokens = requests_per_day * 30 * tokens_per_request
api_monthly = monthly_tokens / 1_000_000 * api_price_per_million_tokens
cheaper = "API" if api_monthly < self_hosted_monthly else "self-hosted"
print(f"{requests_per_day:>6} req/day: API Rs {api_monthly:,.0f} vs self-hosted Rs {self_hosted_monthly:,.0f} -> {cheaper}")सस्ते में सर्व करने की चेकलिस्ट
- 1
अपना ट्रैफ़िक मापें
प्रति दिन रिक्वेस्ट्स, पीक पर प्रति मिनट रिक्वेस्ट्स, अंदर आने वाले और बाहर जाने वाले औसत टोकन। - 2
काम चला सकने वाला सबसे छोटा मॉडल चुनें
पिछले पाठों के अपने टेस्ट सेट का इस्तेमाल करें। - 3
क्वांटाइज़ और कैश करें
कम-बिट वाले वेट्स, प्रॉम्प्ट कैशिंग, और सुरक्षित दोहराए जाने वाले सवालों के लिए रिस्पॉन्स कैश। - 4
सीमाएँ तय करें
अधिकतम इनपुट लंबाई, अधिकतम आउटपुट लंबाई, और प्रति-यूज़र रेट लिमिट। - 5
ज़रूरत के हिसाब से स्केल करें
ऑटोस्केल करें, और अगर पहली रिक्वेस्ट में थोड़ी देरी स्वीकार्य हो, तो स्केल टू ज़ीरो पर विचार करें। - 6
हर कुछ महीनों में दोबारा जाँचें
कीमतें, मॉडल्स और ट्रैफ़िक सब बदलते रहते हैं।
- दस यूज़र्स के लिए पूरी रात चलने वाला बड़ा GPU सर्वर
- जवाब की लंबाई पर कोई सीमा न होना
- बिना हिसाब लगाए "क्योंकि API महंगे हैं" सोचकर सेल्फ़-होस्टिंग चुन लेना
- कम ट्रैफ़िक होने पर होस्टेड API, और जब आँकड़े कहें तब सेल्फ़-होस्टिंग
- छोटे, सीमित जवाब और बार-बार आने वाले सवालों को कैश करना
- लिखित में लागत की तुलना, जिसे कीमतें बदलने पर अपडेट किया जाता रहे
और देखें और पढ़ें
लैब
एक वास्तविक ऐप के लिए होस्टेड API और सेल्फ़-होस्टेड छोटे मॉडल के बीच लागत की तुलना।
समस्या
ऐप: "एक कोचिंग संस्थान के लिए सवाल-जवाब करने वाला बॉट, जिसे छात्र ज़्यादातर शाम को और परीक्षा के दिनों में बहुत ज़्यादा इस्तेमाल करते हैं।"
- एक सामान्य महीने और परीक्षा वाले महीने के ट्रैफ़िक का अंदाज़ा लगाएँ: रोज़ाना रिक्वेस्ट्स, प्रति रिक्वेस्ट औसत टोकन, और पीक पर प्रति मिनट रिक्वेस्ट्स।
- एक होस्टेड API विकल्प और एक सर्वर विकल्प (क्लाउड CPU या GPU सर्वर) के लिए मौजूदा सार्वजनिक कीमतें पता करें। जिस तारीख को आपने चेक किया, वह तारीख लिखें। अगर कीमतें न मिलें, तो साफ़ तौर पर लेबल किए गए काल्पनिक नंबरों का इस्तेमाल करें।
- पाठ में दिए गए ब्रेक-ईवन स्क्रिप्ट को अपनी ज़रूरत के हिसाब से बदलें। अपनी टीम का समय जोड़ें। दोनों महीनों का हिसाब लगाएँ।
- लिखें कि आप किन तकनीकों का इस्तेमाल करेंगे: बैचिंग, कैशिंग, CPU इन्फेरेंस, ऑटोस्केलिंग, सीमाएँ। हर एक की वजह बताएँ।
- तीन वाक्यों में अपनी सलाह दें, जिसमें वह ट्रैफ़िक स्तर भी शामिल हो जिस पर आप विकल्प बदलेंगे।
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1परीक्षा के महीने में सेल्फ़-होस्टिंग सस्ती लगती है लेकिन सामान्य महीनों में ज़्यादा महंगी। कौन-से डिज़ाइन दोनों का सबसे अच्छा फ़ायदा दिला सकते हैं?दिखाएं
सामान्य ट्रैफ़िक के लिए होस्टेड API का इस्तेमाल करें और केवल पीक के लिए सेल्फ़-होस्टेड क्षमता जोड़ें, या ऑटोस्केलिंग का इस्तेमाल करें ताकि सेल्फ़-होस्टेड सर्वर्स सिर्फ़ व्यस्त होने पर ही चलें। एक और विकल्प हाइब्रिड मॉडल है: आम सवालों के जवाब कैश या छोटे सेल्फ़-होस्टेड मॉडल से दें, और मुश्किल सवालों को होस्टेड API पर भेजें। इनमें से हर तरीके से काम की जटिलता बढ़ती है, इसलिए यह ज़रूर देख लें कि होने वाली बचत इसके लायक है या नहीं।
Q2बैच साइज़ दोगुना करने से हर रिक्वेस्ट सस्ती तो हो सकती है, लेकिन कुछ यूज़र्स को ज़्यादा इंतज़ार क्यों करना पड़ सकता है?दिखाएं
बड़े बैच हार्डवेयर को ज़्यादा व्यस्त रखते हैं, जिससे प्रति रिक्वेस्ट लागत घट जाती है। लेकिन सर्वर ज़्यादा रिक्वेस्ट्स इकट्ठी करने के लिए इंतज़ार कर सकता है, और हर स्टेप में ज़्यादा काम संभालता है, इसलिए अलग-अलग रिक्वेस्ट्स को शुरू होने या खत्म होने में ज़्यादा समय लग सकता है। कॉन्टिन्युअस बैचिंग इस समस्या को कम करती है, लेकिन फिर भी थ्रूपुट (लागत) और लेटेंसी (इंतज़ार का समय) के बीच एक समझौता रहता है जिसे आप सीमाओं और टेस्टिंग के ज़रिए तय करते हैं।
अक्सर पूछे जाने वाले सवाल
क्या असली यूज़र्स के लिए CPU सर्विंग काफी है?
छोटे क्वांटाइज़्ड मॉडल्स, छोटे जवाबों और सीमित ट्रैफ़िक के लिए यह काफी हो सकती है। लंबे जवाबों या एक साथ कई यूज़र्स के लिए, प्रति रिक्वेस्ट के हिसाब से आमतौर पर GPU ज़्यादा किफ़ायती होता है। फ़ैसला लेने से पहले असली सर्वर पर स्पीड ज़रूर मापें।
"स्केल टू ज़ीरो" का क्या मतलब है?
जब कोई रिक्वेस्ट नहीं होती, तो सभी मॉडल सर्वर्स बंद कर दिए जाते हैं, जिससे आपको लगभग कुछ भी नहीं देना पड़ता। अगली रिक्वेस्ट को तब तक इंतज़ार करना पड़ता है जब तक कोई सर्वर शुरू होकर मॉडल लोड न कर ले। यह लाइव चैट के बजाय अंदरूनी टूल्स और बैकग्राउंड में चलने वाले कामों के लिए ज़्यादा मुफ़ीद है।
लागत में अपनी टीम का समय क्यों शामिल करें?
किसी न किसी को सर्वर अपडेट करना होता है, सिक्योरिटी से जुड़ी कमियों को ठीक करना होता है, दिक्कतों पर नज़र रखनी होती है और मॉडल को अपग्रेड करना होता है। उस समय की अपनी एक असली लागत होती है, और API से तुलना करते समय अक्सर लोग इसी हिस्से को भूल जाते हैं।
क्या होस्टेड API की कीमतें स्थिर रहती हैं?
नहीं। कीमतें बदलती रहती हैं, अक्सर कम होती हैं, और नए सस्ते मॉडल्स आते रहते हैं। अपनी तुलना को एक छोटे स्क्रिप्ट या स्प्रेडशीट में रखें ताकि आप मौजूदा कीमतों के साथ इसे दोबारा चला सकें।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।