- MobileLLM repository ICML 2024 paper “MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases” का training code उपलब्ध कराती है, और 1 billion से कम parameters वाले language models की quality बढ़ाने वाले design पर चर्चा करती है
- Model design SwiGLU, गहरी और पतली structure, embedding sharing, grouped-query attention को integrate करके MobileLLM बनाता है
- MobileLLM-125M/350M ने zero-shot commonsense reasoning tasks में मौजूदा 125M/350M SoTA models की तुलना में क्रमशः 2.7%/4.3% accuracy improvement हासिल किया, और updated versions 600M/1B/1.5B में भी SoTA results दिखाते हैं
- Training code के लिए Python 3.9 और PyTorch 2.0 या उससे ऊपर की जरूरत है;
pretrain.sh1x8 GPU node परtorchrunसे शुरू होता है, और nodes की संख्या या batch size बढ़ाने पर learning rate को linear रूप से बढ़ाना होगा - 1T tokens के आधार पर training cost 32 NVIDIA A100 80G GPUs पर 125M के लिए करीब 3 दिन, 350M के लिए करीब 6 दिन, 600M के लिए करीब 8 दिन, 1B के लिए करीब 12 दिन, और 1.5B के लिए करीब 18 दिन है
MobileLLM का उद्देश्य और public scope
- MobileLLM एक repository है जिसमें ऑन-डिवाइस use cases के लिए sub-billion parameter language models को optimize करने वाला training code है
- इसका आधार paper MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases है, जो ICML 2024 में प्रकाशित हुआ
- मुख्य लक्ष्य 1 billion से कम parameters में भी high-quality LLM बनाने के लिए कई design elements को समग्र रूप से consider करना है
Model design elements
- MobileLLM निम्न design elements को integrate करता है
- SwiGLU activation function
- गहरी और पतली architecture
-
Embedding sharing
- grouped-query attention
- updated version में बताया गया है कि यह design philosophy बड़े models तक भी expand होती है, और MobileLLM-600M/1B/1.5B में SoTA results दिखाती है
Release और follow-up model news
- 30 अक्टूबर 2024 को MobileLLM model HuggingFace पर release हुआ
- सितंबर 2025 में follow-up work MobileLLM-R1 release हुआ
- लगभग 2T pretraining tokens और कुल 5T से कम tokens के साथ, MATH, GSM8K, MMLU, LiveCodeBench पर Qwen3-0.6B के 36T-token results की बराबरी करता है या उनसे बेहतर है
- Code, model, data, training recipe public हैं
- HuggingFace collection उपलब्ध है
- नवंबर 2025 में MobileLLM-R1.5 release हुआ
- MobileLLM-R1.5-950M ने evaluate किए गए सभी math और coding benchmarks में DeepSeek-R1-Distill-Qwen-1.5B को पीछे छोड़ा
- Parameter count 0.95B बनाम 1.5B है, यानी कम है
- जनवरी 2026 में MobileLLM-R1 ICLR 2026 में accept हुआ
Execution और training configuration
- Requirements हैं Python 3.9, PyTorch 2.0 या उससे ऊपर,
pip install -r requirement.txt - Data preprocessing tokenized dataset को divide करने या अपने dataset को tokenize करने के बाद, उसे कुल training nodes की संख्या के अनुसार distribute करने का तरीका है
- हर node 1x8 GPU से configured है
- Data structure
basepath/1,basepath/2, ...,basepath/#nodesके नीचेxxx.jsonlfiles रखने के रूप में है - हर
jsonlline{"token_ids": [1,2,3,4,...]}format का tokenized data key-value pair है - Training code LLM360/amber-data-prep की data preprocessing method के compatible है
pretrain.sh1x8 node setting मेंtorchrunसे training शुरू करने वाली script है--nnodesऔर अन्य settings को बदलकर Slurm या TorchX जैसी multi-node configurations के अनुसार adapt किया जा सकता है- Script का learning rate 1x8 node, batch size 32 के आधार पर है
- Nodes की संख्या या batch size बढ़ाने पर learning rate को linearly increase करना होगा
- Execution procedure में
pretrain.shमें--train_data_local_pathको preprocessed data पर set करना,--input_model_filenameको./configs/{model_size}/पर set करना, और फिरbash pretrain.shचलाना शामिल है - Wiki evaluation model download करने,
eval.shका checkpoint path update करने, और फिरbash eval.shचलाने से होती है
Training cost
- 1T tokens के साथ MobileLLM train करते समय 32 NVIDIA A100 80G GPUs के आधार पर लगने वाला समय इस प्रकार है
- 125M: करीब 3 दिन
- 350M: करीब 6 दिन
- 600M: करीब 8 दिन
- 1B: करीब 12 दिन
- 1.5B: करीब 18 दिन
Zero-shot commonsense reasoning results
- MobileLLM-125M ने arc_easy, arc_challenge, boolq, piqa, siqa, hellaswag, obqa, winogrande average में 46.3 score किया
- OPT-125M 42.6, GPT-neo-125M 42.9, Pythia-160M 42.5 हैं
- MobileLLM-LS-125M का average 47.0 है
- MobileLLM-350M ने average 51.3 score किया
- OPT-350M 43.9, Pythia-410M 46.6 हैं
- MobileLLM-LS-350M का average 52.1 है
- MobileLLM-600M ने average 54.3 score किया
- Qwen1.5-500M 48.8, BLOOM-560M 44.2, MobiLlama-800M 50.7 हैं
- MobileLLM-1B ने average 57.3 score किया
- Pythia-1B 48.7, MobiLlama-1B 55.2, Falcon-1B 56.3, BLOOM-1.1B 46.9, TinyLlama-1.1B 54.2 हैं
- MobileLLM-1.5B ने average 59.4 score किया
- GPT-neo-1.3B 50.6, OPT-1.3B 52.3, BLOOM-1.7B 49.6, Qwen1.5-1.8B 56.5 हैं
- GPT-neo-2.7B 52.8, OPT-2.7B 55.1, Pythia-2.8B 55.8, BLOOM-3B 52.3 हैं
Related projects और license
- Code आंशिक रूप से HuggingFace Transformers repository पर आधारित है, और वह repository Apache License का उपयोग करती है
- Related projects के रूप में ये दिए गए हैं
- Next steps के रूप में MobileLLM-R1 और MobileLLM-R1.5 models दिए गए हैं
- MobileLLM फिलहाल FAIR NC license का उपयोग करता है
1 टिप्पणियां
Hacker News की राय
छोटे मॉडल में थोड़ी बेहतरी आई है, लेकिन ऑनलाइन मॉडल जैसे उपयोगों के लिए ये अभी भी कम पड़ते लगते हैं। फिर भी क्रमिक प्रगति अपने आप में ठीक है
1.5 बिलियन पैरामीटर वाला मॉडल काफ़ी बड़ी छलांग जैसा दिखता है, और बड़े मॉडलों को भी बड़े अंतर से हरा देता है। पता नहीं इसे और बड़ा क्यों नहीं बनाया गया। Raspberry Pi जैसे हार्डवेयर में फिट हो सकने वाला ज़्यादा efficient मॉडल खेल बदल सकता है। याद से, TinyLlama 7B भी बस किसी तरह चल पाता है
इस use case में छोटे मॉडल की cloud model से तुलना करना fair नहीं है। छोटे मॉडल की precision में थोड़ी-सी बढ़ोतरी भी मायने रखती है, और सीधे revenue में बदल सकती है
भले ही 7B model Raspberry Pi पर “ठीक चलता” हो, निजी तौर पर web-based interface से download और run करने के लिए 7B model थोड़ा बड़ा लगता है। वहीं एक अच्छा 125M model webpage में चल सकता है, और local browser में download करने का समय व bandwidth cost भी ज़्यादा नहीं होती
क्या इसे ज़रूरी तौर पर mobile devices पर ही होना चाहिए? niche use case तो है, लेकिन अगर यह ज़्यादा resources नहीं खाता, तो games में NPC dialogue को ज़्यादा दिलचस्प बनाने के लिए इस्तेमाल हो सकता है
और बेहतर यह होगा कि इसे किसी तरह tune करके dialogue को NPC के व्यवहार या actions पर असर डालने लायक बनाया जा सके
game data पर LLM को train करके NPC से असली game world का वर्णन करवाना कल्पना में संभव है। लेकिन यह इंसानों से dialogue लिखवाने की तुलना में सस्ता बनने के लिए किस scale की ज़रूरत होगी, पता नहीं। Ubisoft के scale पर शायद संभव हो। जहाँ तक मुझे पता है, Ubisoft भी AI से writing की जांच करता रहा है, लेकिन मुख्य रूप से combat के दौरान चिल्लाए जाने वाले lines जैसे बहुत repetitive और लगभग noise जैसे use cases के लिए
अभी iPhone पर ऐसे models चलाने वाले कौन-से apps हैं? मुझे सिर्फ़ MLC पता है, और उसमें केवल 3 पुराने models हैं
https://llm.mlc.ai/docs/deploy/android.html
सोच रहा हूँ कि और गहरा और और पतला बनाने के तरीके को कितनी दूर तक धकेला जा सकता है। किसी बिंदु पर अगर पूरा FFN L2 cache में आ जाए, तो performance में काफ़ी jump वाला zone आ सकता है
तो इस approach के काम करने वाले छोटे networks की कोई limit point होनी चाहिए। नहीं तो results एक-दूसरे से विरोधाभासी हैं। या फिर इसका मतलब यह भी हो सकता है कि इन नए models को बहुत ज़्यादा improve किया जा सकता है
पता नहीं मैं कुछ miss कर रहा हूँ या नहीं, लेकिन knowledge distillation जैसी चीज़ यहाँ मददगार नहीं होगी?
relevant section का HTML deeplink: https://ar5iv.labs.arxiv.org/html/2402.14905#S3.SS5
“अब तक हमने next token को hard label के रूप में इस्तेमाल करके छोटे models को scratch से train किया। Knowledge distillation (KD) भी explore किया... दुर्भाग्य से, KD training time बढ़ाता है (2.6~3.2 गुना धीमा), और label-based training जैसी या उससे कम accuracy दिखाता है (details के लिए appendix देखें)।”
अभी वास्तव में on-device wake-word जैसी speech recognition की ज़रूरत है। Raspberry Pi 4B पर चल सकने वाला और सबसे कम WER वाला model कौन-सा है? DIY inventory system के लिए openWakeWord देख रहा हूँ
छोटे models में linear head और token embedding के बीच embedding sharing/weight tying से आकार सबसे ज़्यादा घटता दिखता है। जिज्ञासा है कि क्या इसे और घटाने पर research चल रही है
अफसोस, इस बारे में मुझे बस इतना मिला कि बड़े models को अलग layer से फायदा मिलता है। हालांकि यह बात मैंने Discord पर कहीं देखी थी, इसलिए पढ़ने के लिए कोई paper नहीं है, और मेरी निजी intuition कहती है कि यह बड़े models पर भी काम करना चाहिए। आखिर GPT-3 भी GPT-2 का ही scale-up था
मेरे निजी experiments में, model को ज़्यादा कठिन task देने पर उसने बेहतर सीखा। tied weights उन चीज़ों में से एक हो सकते हैं, multi-token prediction भी ऐसा हो सकता है, और bitnet को भी ऐसे देखा जा सकता है। dropout भी वैसा ही है
desktop पर generative AI नहीं, बस desktop AI हो तो कैसा रहेगा। अच्छा होगा अगर यह मेरी सारी files, emails, notes को organize करे और मेरे data से information search करने दे
अच्छा है। क्या इसे Windows PC के लिए model train करने में भी इस्तेमाल किया जा सकता है? RAM ज़्यादा नहीं है
फिर भी अंतिम लक्ष्य शायद ऐसे model को download करना, या fine-tuning का खर्च देकर उसे पाना, और फिर optimized neural network chip के जरिए इस्तेमाल करना होगा
अभी सवाल ज़्यादा यह है कि ऐसा कब होगा। नए Windows certification में भी पहले से किसी तरह की neural network chip की requirement है, और मेरा Google Pixel 8 Pro भी छोटा model host कर सकता है। Pixel सस्ता phone नहीं है, लेकिन co-processor बड़े GPU से काफी सस्ता होगा
दिलचस्प तो है, लेकिन बेहतर autocomplete के अलावा इसका इस्तेमाल कहाँ होगा, यह सोच रहा हूँ
Apple जिस direction में जाता दिख रहा है, वह approach मुझे पसंद है। रोज़मर्रा के tasks fine-tuned छोटे models संभालें, और जिन्हें वे confidence से नहीं संभाल पाते उन्हें device के बाहर बड़े model को भेज दें। ऐसे examples वाला training set बनाया जा सकता है जिनमें low-confidence answer देना हो, और output में असल में “help request” के बराबर एक option जोड़कर model को वह विकल्प चुनना सिखाया जा सकता है। छोटा model हो तो कई models parallel में चलाए जा सकते हैं, और एक और model request को सही expert तक route कर सकता है
मूल रूप से हर task जिसमें knowledge नहीं बल्कि action चाहिए। जैसे “पत्नी को बता दो कि मैं late हो रहा हूँ” कहने पर, configured magical तरीके से किसी service से बात करके काम कर दे
Siri बिना internet के भी home automation काफी अच्छी तरह कर लेती है, लेकिन पुराने Google Assistant और Alexa ऐसे बिल्कुल नहीं थे, और शायद कभी offline ऐसा कर भी नहीं पाए। यह local-first अच्छे से काम करने वाला assistant संभव बनाता है
user request को natural language में संबंधित application तक पहुँचा सकता है और applications को coordinate कर सकता है। device capabilities से बाहर की requests cloud model को भेजी जा सकती हैं। यह device के साथ interact करने का तरीका बदल सकता है, इसलिए powerful है
मुझे जो AI assistant चाहिए वह 1) English और मेरी native language समझे, 2) यह जाने कि वह Android या KDE/Linux पर चल रहा है और “Android settings का applications section खोलो”, “browser में खुला page पढ़ो”, “अभी खुले popup का text पढ़ो” जैसे commands समझे, और public API के जरिए operating system से integrate हो। बड़ी AI companies खासकर multilingual users को बेहतर assistant बेचकर compete कर सकती हैं
3) model छोटा होना चाहिए और geography, history, music bands जैसी knowledge जानना ज़रूरी नहीं। user जो tasks पूछता है, उन्हें search engine या online LLM को forward करने का option हो तो काफी है