Mac Mini M4: স্থানীয় LLM-এর অনানুষ্ঠানিক রাজা
এটি ইংরেজি মূল লেখাটির মেশিন অনুবাদ। কিছু সূক্ষ্মতা হারিয়ে যেতে পারে, তাই ইংরেজি সংস্করণই মূল রেফারেন্স। মূল ইংরেজি লেখাটি পড়ুন
সংক্ষেপে
আপনি যদি DFW-এর কোনো শহরতলিতে ল্যাব বানান, তাহলে দ্রুতই শিখে যাবেন বিদ্যুৎ খরচ আর তাপই আপনার সবচেয়ে বড় শত্রু। আমি মাসের পর মাস একটি 3090 পিসি বিল্ডের সঙ্গে লড়েছি, যেটা জেট ইঞ্জিনের মতো আওয়াজ করত এবং কোনো এজেন্ট ব্যাকগ্রাউন্ড টাস্ক চালালেই আমার অফিসকে সনা-ঘর বানিয়ে ফেলত। তারপর আমি 64GB ইউনিফায়েড মেমরির Mac Mini M4 Pro-তে চলে এলাম। এটা নীরব, ডেস্ক ল্যাম্পের চেয়ে কম বিদ্যুৎ টানে, আর Llama 3-70B মডেল কাজ চালানোর মতো গতিতে চালায়। প্রথমবার হার্ডওয়্যার অদৃশ্য হয়ে গেছে, যা যেকোনো ইঞ্জিনিয়ারিং ল্যাবের চূড়ান্ত লক্ষ্য।
আর্কিটেকচার
Apple Silicon-এর “জাদু” CPU-র গতিতে নয়, বরং ইউনিফায়েড মেমরি আর্কিটেকচার (UMA)-তে। চিরাচরিত পিসিতে CPU RAM আর GPU RAM (VRAM) আলাদা। আপনি যদি 40GB-এর মডেল চালাতে চান, তাহলে লাগবে 1,600 ডলারের একটি GPU। Mac-এ সিস্টেম RAM-ই হলো VRAM।
| বৈশিষ্ট্য | ডেস্কটপ পিসি (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 (কোয়ান্টাইজড) |
নিছক গতিতে (প্রতি সেকেন্ডে টোকেন) পিসি 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 ইঞ্জিনিয়ার, যিনি ল্যাব থেকে লোকাল-ফার্স্ট সিস্টেম, সেলফ-হোস্টেড অবকাঠামো এবং স্বয়ংক্রিয় টুল তৈরি করেন।