- MLX Apple Silicon आधारित मशीन लर्निंग शोधकर्ताओं के लिए एक array framework है, जो NumPy और PyTorch जैसी usability प्रदान करता है
- MLX में CUDA backend जोड़ने का काम चल रहा है
- मुख्य उद्देश्य हैं unified memory support और NVIDIA hardware का व्यापक उपयोग
- अभी केवल tutorial examples ही चल पा रहे हैं, और build व test को Ubuntu 22.04 + CUDA 11.6 environment में verify किया गया है
- शुरुआती performance issues और bottleneck सुधार की प्रक्रिया से गुजरते हुए optimization और refactoring बार-बार किए जा रहे हैं
- MLX का CUDA backend Apple के समर्थन से विकसित किया जा रहा है, और unified memory व NVIDIA hardware support के जरिए Mac पर development और बड़े computing environment में deployment के दौरान एक consistent experience देना इसका लक्ष्य है
MLX framework का परिचय
- MLX Apple की machine learning research team द्वारा विकसित मशीन लर्निंग के लिए array framework है
- इसे engineers और researchers को प्रभावी ढंग से experiment करने और ideas को तेज़ी से validate करने में मदद देने के लिए बनाया गया है
- इसकी खासियत Apple Silicon support रही है, लेकिन अब CUDA backend जोड़कर NVIDIA GPU environment में भी इसकी उपयोग-क्षमता बढ़ाने की कोशिश की जा रही है
मुख्य विशेषताएँ
- परिचित API: Python API NumPy जैसा है, जबकि upper-level packages
mlx.nn, mlx.optimizers PyTorch जैसी interface प्रदान करते हैं
- C++, C, Swift APIs भी उपलब्ध हैं और Python API के साथ consistent usability सुनिश्चित करते हैं
- Composable function transforms: इसमें automatic differentiation, automatic vectorization, computing graph optimization जैसी सुविधाएँ शामिल हैं
- Lazy evaluation: कई operations को एक साथ बाँधकर केवल आवश्यकता होने पर ही result compute किया जाता है, जिससे resources का अधिक कुशल उपयोग संभव होता है
- Dynamic graph generation: input data का shape बदलने पर भी धीमी compilation के बिना तुरंत execution संभव है, जिससे development और debugging आसान होती है
- Multi-device और unified memory model:
- पहले यह केवल CPU और Apple GPU को support करता था, लेकिन CUDA backend के साथ NVIDIA GPU environment support की दिशा में काम चल रहा है
- Unified memory structure अपनाने से memory copy के बिना सभी supported devices पर एक ही object पर operation संभव होता है
- सरल और extensible design: researchers framework को आसानी से extend और improve कर सकते हैं
अन्य frameworks से अंतर और प्रेरणा
- इसकी design inspiration NumPy, PyTorch, Jax, ArrayFire आदि से ली गई है
- विशेष रूप से यह unified memory model, सरल interface, और immediate execution/debugging environment पर ज़ोर देता है
प्रमुख उदाहरण और उपयोग क्षेत्र
- MLX Examples रेपो में विभिन्न practice code उपलब्ध हैं
- Transformer language model training
- LLaMA आधारित large-scale text generation और LoRA का उपयोग करके fine-tuning
- Stable Diffusion से image generation
- OpenAI Whisper आधारित speech recognition सहित modern model implementations के उदाहरण
MLX का महत्व और CUDA support
- Apple Silicon-केंद्रित framework रहा MLX अब CUDA backend के जुड़ने से NVIDIA GPU environment में भी अधिक सामान्य-purpose उपयोग की संभावना बढ़ा रहा है
- नवीनतम CUDA support के साथ, यह Apple और NVIDIA दोनों hardware पर latest research और industrial use के लिए उपयुक्त framework के रूप में स्थापित हो सकता है
3 टिप्पणियां
अगर macOS में सिर्फ NVIDIA GPU इस्तेमाल करने दिया जाए, तो बस वही काफ़ी होगा... हाह.
अच्छी खबर है haha उम्मीद है जल्दी
cudaसपोर्ट आ जाए ताकि Mac पर भी हाई-स्पीड ट्रेनिंग संभव हो सके~!Hacker News राय
इंस्टॉलेशन गाइड
zcbenz परिचय
रिपॉज़िटरी readme के bullet देखें: MLX GitHub
अगर इसे सभी UMA APU तक, निर्माता की परवाह किए बिना, बढ़ाया जाए तो मज़ेदार होगा, लेकिन discrete GPU पर तरीका अलग होना चाहिए या नहीं, यह सवाल है
PR कमेंट पढ़कर लगता है कि CUDA भी सीधे UMA API को सपोर्ट करता है और ज़रूरत पड़ने पर कॉपी को पारदर्शी तरीके से संभालता है
इससे जिज्ञासा होती है कि क्या Apple पीछे से समर्थन दे रहा है लेकिन आधिकारिक रूप से सामने नहीं आ रहा। टीम के ट्रांसफ़र होने की अफवाहें भी थीं
यानी इसका मतलब है कि MLX कोड x86 + GeForce हार्डवेयर पर build और run किया जा सकता है, उल्टा नहीं
मैंने खुद टेस्ट किया, और सिर्फ Python 3.12 वर्ज़न ही pypi पर अपलोड है
MLX-CUDA PYPI पेज
हाल में YouTuber रिव्यू भी आ रहे हैं कि DGX Spark, Strix Halo की तुलना में price-to-performance के हिसाब से कमज़ोर है। कमी यह है कि ROCm अभी भी कमज़ोर है (हालाँकि जल्द बेहतर होने की उम्मीद है)। अगर Apple डिवाइसों पर CUDA पूरी तरह चलने लगे, तो Strix चाहे जितना सस्ता और अच्छा हो, फिर भी यह गंभीरता से विचार करने लायक विकल्प होगा