ब्लॉग पर वापस

कोई RAM की बात नहीं करता। local-LLM का हर पछतावा RAM की समस्या है

19 सितंबर 2026

लोकल LLM वाली किसी भी थ्रेड में घुसिए, बहस GPU पर होगी। VRAM बेंचमार्क, 24 GB कार्ड, CUDA बनाम ROCm, और यह कि 3060 अब भी ‘जनता का कार्ड’ है या नहीं। इधर ही वह नंबर बैठा है जो तय करता है कि आपका मॉडल चलेगा भी या नहीं — बेंचमार्क भी नहीं, मार्केटिंग भी नहीं: मशीन में कितनी RAM है।

VRAM सपना बेचता है। RAM तय करता है कि मॉडल चलेगा भी या नहीं — और चलने पर कितना कॉन्टेक्स्ट बचेगा।

यह पोस्ट लिखते हुए मैंने इसे सामने वाली मशीन पर जाँचा: Ryzen डेस्कटॉप, 32 GB RAM, और 12 GB VRAM वाली GeForce RTX 3060। llama3.1:8b खींचा — डाउनलोड पेज पर 4.9 GB लिखा है। अब देखिए उसने असल में क्या आरक्षित किया:

टेस्ट मशीन का टर्मिनल कैप्चर: ollama ps दिखाता है कि llama3.1:8b ने 32,000-टोकन कॉन्टेक्स्ट पर 100% GPU के साथ 7.0 GB आरक्षित किया, nvidia-smi 12,288 MiB में से 7,963 MiB उपयोग दिखाता है, और free -h में 31 GiB RAM है

पूरा तर्क इसी एक स्क्रीन में है। «4.9 GB का मॉडल» पहले प्रॉम्प्ट का जवाब देने से पहले 7.0 GB आरक्षित कर चुका था — 43% का कॉन्टेक्स्ट टैक्स — और VRAM का 12,288 MiB में से 7,963 MiB अपने नाम कर चुका था। वेट्स कभी बजट नहीं थे। बजट कॉन्टेक्स्ट था।

बचे हुए गीगाबाइट कहाँ से आते हैं

llama.cpp के मेमोरी नोट्स वह गणित समझाते हैं जो डाउनलोड पेज छोड़ देते हैं: कुल मेमोरी = मॉडल वेट्स + KV कैश + कंप्यूट बफ़र। सिर्फ़ पहला पद स्थिर है। KV कैश कॉन्टेक्स्ट लंबाई के साथ रैखिक बढ़ता है, और कंप्यूट बफ़र बैच के साथ। Ollama, llama.cpp को ही लपेटता है, इसलिए वही क़ानून लागू होता है — इसीलिए ollama ps ने 32,000-टोकन विंडो पर 4.9 GB टैग के लिए 7.0 GB दिखाया, और वह सब GPU पर ही रहा।

क्वांटाइज़्ड मॉडल कोई समझौता नहीं है। यह मान लेना है कि मेमोरी ही हमेशा असली बजट रही है।

GGUF क्वांटाइज़ेशन सीढ़ी के होने की वजह भी यही है। Q4 कोई धर्म नहीं; Q4 वह तरीका है जिससे मेमोरी का गणित लोगों के पास मौजूद हार्डवेयर के भीतर उतरता है। और इसीलिए दो «एक जैसे» 8B सेटअप कभी एक जैसे नहीं होते: वही मॉडल, अलग कॉन्टेक्स्ट लंबाई, अलग मशीनें।

वह तालिका जिसे कोई ख़रीदने से पहले नहीं भरता

तीन मॉडल श्रेणियाँ, दोनों तरह की मेमोरी, 12 GB कार्ड और 32 GB RAM — वही कॉन्फ़िगरेशन जो हज़ारों डेवलपर के पास सचमुच है:

मॉडल श्रेणी (Q4)डाउनलोडलोड + 32k ctx12 GB VRAM पर32 GB RAM पर
7–8B (llama3.1:8b)4.9 GB7.0 GB (मापा हुआ)100% GPU, ~8 GiB उपयोगशायद ख़बर तक न लगे
13–14B (qwen2.5:14b)9.0 GB~12 GBऑफ़लोड शुरूठीक-ठाक
27–32B (gemma3:27b)17 GB~20 GB से ऊपरCPU वेट्स खींचता हैचलने की वज़ह बस यही

आख़िरी दो पंक्तियाँ दोबारा पढ़िए। सिर्फ़ VRAM पर, असली कॉन्टेक्स्ट के साथ 14B पहले से बँटा हुआ ऑफ़लोड है, और 27B असंभव है। 32 GB RAM पर दोनों बस धीमे हैं। यही फ़र्क़ — असंभव और धीमा होने के बीच का फ़र्क़ — VRAM और RAM का पूरा व्यावहारिक फ़र्क़ है। VRAM में समाए तो तेज़। RAM में समाए तो चलेगा। कहीं न समाए तो NVMe पर स्वैप चल रहा है और समय अर्थ खो देता है।

ऑफ़लोड PCIe से गुज़रता है, और Ollama के FAQ में क़ीमत साफ़ लिखी है: GPU में न समाने वाली लेयर CPU पर चलती हैं, और GPU का हिस्सा घटते ही थ्रूपुट गिर जाता है। कोई इस सौदे को जानबूझकर नहीं चुनता। वह चुपचाप, एक-एक लेयर करके आता है, और लक्षण बस यह होता है — «लोकल मॉडल अति-प्रचारित हैं»।

ईमानदार खाता

यह लिखते हुए क्या टूटा या चौंकाया, क्रम से:

  1. 43% वाला नंबर खुद। मुझे लगा था कि 8B मॉडल «लगभग अपनी फ़ाइल के बराबर» जगह लेगा। 4.9 GB डाउनलोड के मुक़ाबले 7.0 GB आरक्षित किए। अगर मुझे चौंकाया, तो ps की जगह स्पेक-शीट पढ़ने वाले हर व्यक्ति को चौंकाएगा।
  2. स्क्रीनशॉट सत्र। पहली कैप्चर ने ग़लत विंडो पकड़ी। दूसरी सफल रही — वही ऊपर है। सबूत एक वर्कफ़्लो है, कोई माहौल नहीं; और pull → कैप्चर → ollama rm का चक्कर डिस्क को ईमानदार रखता है।
  3. जो नहीं टूटा: GPU कभी नहीं भरा। 12 GB पर 32k कॉन्टेक्स्ट के साथ 8B वाकई आरामदायक है। कार्ड ठीक है। ग़लत कैलिब्रेट है कार्ड के इर्द-गिर्द की बहस।

इसका मतलब यह नहीं कि GPU मायने नहीं रखते — कैप्चर की 100% GPU वाली लाइन ही वज़ह है कि जनरेशन तुरंत लगी। मतलब बस यह है कि GPU दूसरा सवाल है। Ollama या llama.cpp का चुनाव तब होता है जब आप जान चुके हों कि क्या समाता है — उससे पहले नहीं।

संभालकर रखने वाला नियम

चाहिए RAM = मॉडल फ़ाइल + आपके असली कॉन्टेक्स्ट के लिए KV कैश + कंप्यूटर बने रहने के लिए 4 GB। Q4 में 7–8B के लिए 16 GB आरामदायक। 14B–32B के लिए 32 GB विलासिता नहीं रहती, मूल बात बन जाती है। VRAM उस रफ़्तार के लिए ख़रीदिए जो आप अपने कॉन्टेक्स्ट पर चाहते हैं; RAM उस सबके लिए जो आप कभी भी लोड करेंगे।

ollama ps पर एक नज़र डालिए, और स्पेक-शीट का धर्म चुपचाप ख़त्म हो जाता है।

तो, दो सवाल। अगली मशीन जोड़ते वक़्त आप VRAM उस बेंचमार्क के लिए ख़रीदते हैं जो आप पोस्ट करेंगे — या RAM उन मॉडल के लिए जो आप सच में चलाएँगे? और ईमानदारी से: रात दो बजे खींचे गए मॉडलों में से कितने आपने नाश्ते से पहले मिटा दिए? मैंने आज मिटाए, पोस्ट के बीच में। कमेंट में बताइए कि मैं अकेला नहीं — और यह भी कि आपकी मशीन RAM/VRAM रेखा के किस ओर खड़ी है।

FAQ

लोकल LLM चलाने के लिए कितनी RAM चाहिए?

मॉडल फ़ाइल का आकार + कॉन्टेक्स्ट + आपके डेस्कटॉप का अपना हिस्सा। Q4 में 7–8B मॉडल के लिए 16 GB आरामदायक है; 14–32B को डेमो से रोज़ के औज़ार में बदलने वाली चीज़ 32 GB है।

लोकल LLM के लिए VRAM ज़्यादा मायने रखता है या RAM?

सब कुछ VRAM में समा जाए तो रफ़्तार VRAM तय करता है। मॉडल चलेगा भी या नहीं और कितना कॉन्टेक्स्ट बचेगा, यह RAM तय करता है। बीच का PCIe ऑफ़लोड वह धीमा ज़ोन है जिसे कोई पसंद नहीं करता।

लोड होने के बाद मॉडल डाउनलोड साइज़ से ज़्यादा मेमोरी क्यों लेता है?

KV कैश और कंप्यूट बफ़र कॉन्टेक्स्ट लंबाई के साथ बढ़ते हैं। llama.cpp के मेमोरी नोट्स में गणित है: वेट्स + KV कैश + कंप्यूट बफ़र — और डाउनलोड पेज पर सिर्फ़ पहला नंबर लिखा होता है।

— mrsaynothing

— mrsaynothing

Opinions load-tested before shipping. Mostly.

इस पोस्ट पर dev.to पर चर्चा करें dev.to ↗

Get the next argument by email

One email per post. Agree or tear it apart.

self-hosted · कोई थर्ड पार्टी नहीं · वन-क्लिक अनसब्सक्राइब

यह क्या है?

SSH Permission denied (publickey): असली समाधान

लेख पसंद आए? मैं पेशेवर रूप से ऐसे ही काम करता हूँ। मुझे हायर करें