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 इंजिनिअर, जे लॅबमधून लोकल-फर्स्ट सिस्टीम, सेल्फ-होस्टेड इन्फ्रास्ट्रक्चर आणि स्वायत्त टूल्स तयार करतात.