Mac Mini M4: स्थानीय LLM का अनौपचारिक बादशाह
यह अंग्रेज़ी मूल लेख का मशीनी अनुवाद है। कुछ बारीकियाँ छूट सकती हैं, इसलिए संदर्भ के लिए अंग्रेज़ी संस्करण ही मान्य है। अंग्रेज़ी में मूल लेख पढ़ें
संक्षेप में
अगर आप DFW के किसी उपनगर में लैब बना रहे हैं, तो जल्दी समझ आ जाता है कि बिजली की खपत और गर्मी आपके सबसे बड़े दुश्मन हैं। मैंने महीनों एक 3090 वाले PC बिल्ड से जूझने में गँवाए, जो जेट इंजन जैसी आवाज़ करता था और जब भी कोई एजेंट बैकग्राउंड टास्क चलाता, मेरे दफ़्तर को सौना बना देता था। फिर मैं 64GB यूनिफ़ाइड मेमोरी वाले Mac Mini M4 Pro पर आ गया। यह शांत है, डेस्क लैंप से कम बिजली खींचता है और Llama 3-70B मॉडल उपयोगी रफ़्तार पर चलाता है। पहली बार हार्डवेयर अदृश्य हो गया है, जो किसी भी इंजीनियरिंग लैब का परम लक्ष्य होता है।
आर्किटेक्चर
Apple Silicon का “जादू” CPU की रफ़्तार नहीं है, बल्कि यूनिफ़ाइड मेमोरी आर्किटेक्चर (UMA) है। पारंपरिक PC में आपकी CPU RAM और GPU RAM (VRAM) अलग-अलग होती हैं। अगर आप 40GB का मॉडल चलाना चाहें, तो आपको 1,600 डॉलर का GPU चाहिए। Mac पर सिस्टम RAM ही VRAM है।
| विशेषता | डेस्कटॉप PC (RTX 4090) | Mac Mini (M4 Pro 64GB) |
|---|---|---|
| VRAM क्षमता | 24GB की कठोर सीमा | 64GB तक (लचीली) |
| मेमोरी बैंडविड्थ | 1,000 GB/s (GDDR6X) | 273 GB/s (यूनिफ़ाइड) |
| बिजली की खपत | 450W - 600W | 20W - 50W |
| ध्वनि | पंखों का तेज़ शोर | लगभग मौन |
| आदर्श मॉडल आकार | 8B - 34B | 8B - 70B (क्वांटाइज़्ड) |
शुद्ध रफ़्तार (टोकन प्रति सेकंड) में PC, Mac से आगे है, लेकिन आकार-बनाम-लागत में Mac जीतता है। भारी छँटाई (प्रूनिंग) के बिना आप एक अकेले कंज़्यूमर NVIDIA कार्ड पर 70B मॉडल सचमुच नहीं चला सकते। Mac Mini उसे आराम से निगल जाता है।
निर्माण
प्रोडक्शन लैब के लिए Mac को कॉन्फ़िगर करने का मतलब “डेस्कटॉप ऐप” वाली सोच से हटकर हेडलेस सर्विस वाली सोच अपनाना है।
1. इन्फ़रेंस स्टैक
मैं Ollama इस्तेमाल करता हूँ क्योंकि उसमें Apple के Metal API का सबसे अच्छा इम्प्लीमेंटेशन है। यह टेंसर गणित सीधे M4 चिप के GPU कोर पर भेज देता है।
# Verify Metal acceleration is active in the logs
grep "Metal" ~/.ollama/logs/server.log
# You should see: "Metal device is available" and "offloading layers to GPU"
2. Python ब्रिज
मेरे एजेंट लोकल नेटवर्क पर GekroLLMClient की मदद से Mac Mini से बात करते हैं, जिसके बारे में मैंने अपने API सॉवरेनिटी वाले लेख में विस्तार से बताया था।
import ollama
def run_heavy_inference(prompt):
# This runs on the Mac Mini, called by a Pi or my Workstation
response = ollama.chat(
model='llama3:70b-instruct-q4_K_M',
messages=[{'role': 'user', 'content': prompt}]
)
return response['message']['content']
3. मॉडल क्वांटाइज़ेशन का चयन
64GB के Mac के लिए Llama 3-70B का “सही बैठने वाला” क्वांटाइज़ेशन Q4_K_M है। यह RAM में आराम से समा जाता है (सिस्टम और दूसरे एजेंटों के लिए 20GB छोड़कर) और बेस मॉडल की 99% बुद्धिमत्ता बनाए रखता है।
समझौते
Mac Mini बिल्कुल सही नहीं है। इसका सबसे बड़ा “टैक्स” है CUDA का न होना। अगर आप मॉडल ट्रेनिंग या फ़ाइन-ट्यूनिंग कर रहे हैं, तो NVIDIA बिल्ड के मुक़ाबले Mac पेपरवेट है। ज़्यादातर नया रिसर्च कोड पहले CUDA के लिए लिखा जाता है, और “Metal सपोर्ट” अक्सर बाद की बात होती है जो महीनों बाद आती है।
सच कहूँ तो मैं उस दीवार से कभी टकराया ही नहीं। इस लैब में मैं जो कुछ चलाता हूँ वह इन्फ़रेंस है, और Metal पर इन्फ़रेंस ठीक चलता रहा है। मैं इसे इसलिए बता रहा हूँ कि जिस दिन मैं Apple silicon पर कुछ फ़ाइन-ट्यून करने की कोशिश करूँगा, यह मुझे काटेगा, इसलिए नहीं कि इसने कभी मुझे काटा।
मुझे हीट सोक की एक बड़ी समस्या भी आई। 1,000 Tesla टेलीमेट्री लॉग की 4 घंटे की बैच प्रोसेसिंग के दौरान Mac Mini का आंतरिक पंखा आख़िरकार चल पड़ा और इन्फ़रेंस की रफ़्तार 8 TPS से गिरकर 5 TPS हो गई। घंटों तक 100% उपयोग पर धकेले जाने पर Apple की दक्षता की भी सीमाएँ हैं। आख़िर में मैंने लंबे इन्फ़रेंस रन के दौरान चेसिस का निचला हिस्सा ठंडा रखने के लिए 120mm पंखे वाला एक कस्टम स्टैंड 3D-प्रिंट किया।
आगे की राह
मैं फ़िलहाल हाई-स्पीड Thunderbolt ब्रिज के ज़रिए Mac Mini की क्लस्टरिंग पर विचार कर रहा हूँ। अगर मैं दो M4 Pro की मेमोरी को मिला सकूँ, तो 405B पैरामीटर का मॉडल लोकल पर चला सकता हूँ। यही सपना है: डेस्क की दराज़ में समा जाने वाले आकार में एक निजी, लोकल “सुपर-इंटेलिजेंस”।
लेखक
Rohit BuraniAI इंजीनियर, जो लैब से लोकल-फ़र्स्ट सिस्टम, सेल्फ़-होस्टेड इंफ्रास्ट्रक्चर और स्वायत्त टूल बनाते हैं।