मुख्य बिंदु
- लोकल रन के लिए क्वांटाइज्ड फ़ाइल और कॉन्टेक्स्ट कैश के लिए पर्याप्त RAM या VRAM की आवश्यकता होती है।
- Ollama सबसे तेज़ शुरुआत है; llama.cpp क्वांटाइजेशन और फ्लैग पर अधिक नियंत्रण प्रदान करता है।
- दोनों OpenAI-शैली का सर्वर प्रदान करते हैं, इसलिए एक ही क्लाइंट कोड लोकल या होस्टेड दोनों की ओर इशारा कर सकता है।
- एक होस्टेड एंडपॉइंट का खर्च 1M इनपुट टोकन के लिए $0.15 और 1M आउटपुट टोकन के लिए $0.50 है और सेटअप करने में मिनट लगते हैं।
पहले निर्णय लें: आपके पास कौन सा हार्डवेयर है?
मेमोरी ही सब कुछ तय करती है। एक लैंग्वेज मॉडल संख्याओं का एक बहुत बड़ा समूह है, और जनरेट करते समय पूरा सेट तेज़ मेमोरी में होना चाहिए। क्वांटाइजेशन उन संख्याओं को छोटा कर देता है। एक 4-बिट क्वांटाइज्ड मॉडल प्रति पैरामीटर लगभग आधा बाइट लेता है, इसलिए 8 अरब पैरामीटर वाला मॉडल लगभग 5 GB के आसपास आता है, और 70 अरब वाला 40 GB के आसपास आता है। इन्हें अनुमानित आंकड़े मानें, क्योंकि सटीक आकार क्वांटाइजेशन फॉर्मेट पर निर्भर करता है।
वेट्स के अलावा आपको कॉन्टेक्स्ट कैश के लिए स्थान की आवश्यकता होती है। यह प्रॉम्प्ट की लंबाई के साथ बढ़ता है, इसलिए एक लंबा रोलप्ले इतिहास या एक बड़ा दस्तावेज़ एक छोटे प्रश्न की तुलना में अधिक मेमोरी लेता है। मध्यम कॉन्टेक्स्ट के लिए कुछ अतिरिक्त गीगाबाइट्स की योजना बनाएं, यदि आप लंबे प्रॉम्प्ट्स की ओर बढ़ते हैं तो और अधिक।
- GPU के बिना 8 GB लैपटॉप: केवल छोटे मॉडल, धीमा आउटपुट।
- 16 से 32 GB Apple Silicon Mac: मध्यम आकार के मॉडल अच्छी तरह चलते हैं क्योंकि CPU और GPU मेमोरी साझा करते हैं।
- 12 से 24 GB VRAM वाला एकल उपभोक्ता GPU: मध्यम आकार के मॉडल अच्छी गति पर चलते हैं।
- इससे बड़ा: कई GPU या किराए पर लिया गया सर्वर।
विधि 1: Ollama कुछ कमांडों में
Ollama सबसे छोटा मार्ग है। यह एक क्वांटाइज्ड मॉडल डाउनलोड करता है, एक बैकग्राउंड सर्वर शुरू करता है और आपको एक चैट प्रॉम्प्ट देता है। अपने ऑपरेटिंग सिस्टम के लिए आधिकारिक साइट से इसे इंस्टॉल करें, फिर जांचें कि Ollama मॉडल लाइब्रेरी वर्तमान में कौन से Dolphin टैग सूचीबद्ध करती है, क्योंकि नाम और आकार रिलीज़ के बीच बदल जाते हैं।
# replace <tag> with a Dolphin tag from the Ollama library
ollama pull <tag>
ollama run <tag>
पहली कमांड फ़ाइल डाउनलोड करती है, जिसमें धीमे कनेक्शन पर थोड़ा समय लग सकता है। दूसरी कमांड टर्मिनल में एक इंटरैक्टिव चैट खोलती है। Ollama आपकी मशीन पर एक HTTP API भी प्रदान करता है, जिसमें /v1 के तहत एक OpenAI-शैली का राउट शामिल है, ताकि अन्य प्रोग्राम इसका उपयोग कर सकें।
यदि जनरेशन बहुत धीमी है, तो मॉडल संभवतः VRAM में फिट नहीं हुआ और उसका एक हिस्सा CPU पर चल रहा है। एक छोटा टैग या कम-बिट क्वांटाइजेशन चुनें।
विधि 2: अधिक नियंत्रण के लिए llama.cpp
llama.cpp वह C++ इंजन है जिस पर कई अन्य टूल्स बनाए गए हैं। आप मॉडल का एक GGUF फ़ाइल डाउनलोड करते हैं, फिर इसके सर्वर को शुरू करते हैं। इसमें Ollama की तुलना में अधिक कदमों की आवश्यकता होती है, लेकिन यह आपको कॉन्टेक्स्ट लंबाई, GPU पर रखी परतों की संख्या और आपकी पसंद के क्वांटाइजेशन को सेट करने की अनुमति देता है।
# after building llama.cpp and downloading a GGUF file
llama-server -m ./model.gguf -c 8192 -ngl 99 --port 8080
यहाँ -c कॉन्टेक्स्ट लंबाई सेट करता है, -ngl सेट करता है कि कितनी परतें GPU पर जाएँगी, और --port पोर्ट चुनता है। अपने संस्करण में फ्लैग के लिए प्रोजेक्ट के README की जाँच करें, क्योंकि वे विकसित होते हैं। एक बड़ा -c अधिक मेमोरी का उपयोग करता है, इसलिए इसे केवल तभी बढ़ाएँ जब आपको इसकी आवश्यकता हो।
ग्राफ़िकल उपयोग के लिए, Open WebUI जैसे फ्रंट-एंड किसी भी सर्वर से बात कर सकते हैं। Open WebUI API एंडपॉइंट पर हमारा नोट दिखाता है कि कैसे कस्टम एंडपॉइंट जोड़ा जाए।
कोड से अपने लोकल सर्वर को कॉल करना
दोनों टूल्स OpenAI चैट फॉर्मेट समझ सकते हैं, इसलिए आप क्लाइंट एक बार लिखते हैं और लक्ष्य को दो सेटिंग्स के साथ बदलते हैं। यह स्क्रिप्ट दोनों लक्ष्यों को एक साथ रखती है। लोकल वाला डिफ़ॉल्ट रूप से Ollama द्वारा उपयोग किए जाने वाले पोर्ट का उपयोग करता है; यदि आपने llama.cpp को 8080 पर शुरू किया है तो इसे बदलें।
from openai import OpenAI
TARGETS = {
"local": {"base_url": "http://localhost:11434/v1", "key": "not-needed", "model": "your-local-tag"},
"hosted": {"base_url": "https://api.dolphinllm.com/v1", "key": "YOUR_KEY", "model": "uncensored"},
}
t = TARGETS["hosted"]
client = OpenAI(base_url=t["base_url"], api_key=t["key"])
resp = client.chat.completions.create(
model=t["model"],
messages=[{"role": "user", "content": "Summarize what a GGUF file is."}],
)
print(resp.choices[0].message.content)
लोकल सर्वर आमतौर पर कुंजी को नज़रअंदाज़ करते हैं, लेकिन SDK को एक गैर-खाली स्ट्रिंग की आवश्यकता होती है। लोकल सर्वर के लिए मॉडल नाम वह टैग या एलियास है जिसे आप लोड करते हैं, जबकि होस्टेड मॉडल ID हमेशा uncensored होती है।
विधि 3: सेटअप छोड़ें और होस्टेड एंडपॉइंट का उपयोग करें
यदि हार्डवेयर गणित खराब लगती है, या आप हर मशीन पर समान व्यवहार चाहते हैं, तो एक होस्टेड एंडपॉइंट सरल है। यह सेवा एक ओपन-वेट मॉडल प्रदान करती है, जो एक स्वतंत्र प्रदाता द्वारा चलाया जाता है और कानूनी वयस्क उपयोग के लिए कंटेंट अस्वीकार किए बिना जवाब देने के लिए ट्यून्ड किया गया है। यह किसी मॉडल विक्रेता की आधिकारिक API नहीं है, और यह आपको अन्य मॉडल चुनने की अनुमति नहीं देता है। आपको एक स्थिर URL, एक कुंजी और टोकन के आधार पर बिलिंग मिलती है।
चरण छोटे हैं। Google या ईमेल और पासवर्ड से साइन अप करें, API कुंजी पेज खोलें, और एक क्लिक से $0.50 का ट्रायल क्रेडिट क्लेम करें। इसके लिए कार्ड की आवश्यकता नहीं है, यह 7 दिनों के लिए मान्य है, और प्रति व्यक्ति एक सीमित है। फिर होस्टेड टारगेट के साथ ऊपर दिया गया Python स्क्रिप्ट चलाएं। यदि आप curl पसंद करते हैं:
curl https://api.dolphinllm.com/v1/chat/completions -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":false}'
कॉन्टेक्स्ट विंडो 100,000 टोकन की है, जो अधिकांश लैपटॉप कैश में आराम से नहीं रख सकते। प्रॉम्प्ट को प्रशिक्षण के लिए उपयोग नहीं किया जाता है।
लागत और प्रयास की तुलना
लोकल मुफ़्त लगता है, लेकिन यह ऐसा नहीं है। आप हार्डवेयर, बिजली और अपने स्वयं के समय के लिए भुगतान करते हैं। होस्टेड प्रति अनुरोध पैसे खर्च करता है, लेकिन संख्याएँ छोटी हैं। 1M इनपुट टोकन के लिए $0.15 और 1M आउटपुट टोकन के लिए $0.50 पर, 3,000 इनपुट टोकन और 700 आउटपुट टोकन वाले एक चैट टर्न की लागत होती है:
- इनपुट: 3,000 x $0.15 / 1,000,000 = $0.00045
- आउटपुट: 700 x $0.50 / 1,000,000 = $0.00035
- कुल: प्रति टर्न $0.0008, इसलिए 1,000 टर्न के लिए $0.80
यहाँ तक कि एक भारी उपयोगकर्ता जो एक महीने में 5,000 ऐसे टर्न भेजता है, उस पर लगभग $4 खर्च होंगे। सैकड़ों डॉलर की लागत वाली एक GPU को उस वॉल्यूम पर ब्रेक-ईवन करने में वर्षों लगेंगे। तुलना तब उलट जाती है जब आपके पास निरंतर उच्च वॉल्यूम हो, आपको एक विशिष्ट फाइन-ट्यून की आवश्यकता हो, या आप मशीन से बाहर डेटा नहीं भेज सकते।
+5%, +10% और +15% टॉप-अप बोनस सहित पूर्ण मूल्य विवरण मूल्य निर्धारण पेज पर हैं, और प्रलेखन लिमिट्स और पैरामीटर कवर करता है।
चुनने के लिए एक सरल नियम
अगर आप कई फाइन-ट्यून के साथ प्रयोग करना चाहते हैं, ऑफ़लाइन काम करना चाहते हैं, या हर प्रॉम्प्ट को अपने स्वयं के डिस्क पर रखना चाहते हैं, तो लोकल पर चलाएँ। यदि आप कुछ ऐसा बना रहे हैं जिसे लोग उपयोग करेंगे, यदि आपका हार्डवेयर मामूली है, या यदि आप मेमोरी प्रबंधित किए बिना एक लंबी 100,000-टोकन संदर्भ विंडो चाहते हैं, तो होस्टेड एंडपॉइंट का उपयोग करें। कई डेवलपर दोनों करते हैं: निजी प्रयोगों के लिए एक लोकल मॉडल, और किसी भी चीज़ के लिए होस्टेड एंडपॉइंट जो ऑनलाइन रहना चाहिए। क्योंकि क्लाइंट कोड समान है, स्विच करने में केवल एक लाइन लगती है।

