2.5 साल पुराने मेरे लैपटॉप ने अब JavaScript में Space Invaders लिखा (GLM-4.5 Air)
(simonwillison.net)- 2.5 साल पुराने MacBook Pro M2 पर GLM-4.5 Air 3bit मॉडल का उपयोग करके Space Invaders गेम का कोड एक ही बार में जनरेट किया गया
- यह मॉडल चीन की Z.ai द्वारा MIT लाइसेंस के तहत जारी किया गया नवीनतम open weight मॉडल है, जो coding benchmarks में शानदार प्रदर्शन दिखाता है
- 44GB 3bit quantized version की वजह से इसे 64GB RAM वाले PC पर भी चलाया जा सकता है
- ml-explore/mlx-lm लाइब्रेरी को नवीनतम commit के साथ इस्तेमाल कर मॉडल को लोकल में चलाया गया, जहां अपेक्षाकृत तेज़ स्पीड और स्थिर व्यवहार देखने को मिला
- हाल ही में जारी लोकल coding-optimized large language models बहुत उच्च स्तर की code generation क्षमता दिखा रहे हैं और तेज़ी से आगे बढ़ रहे हैं
GLM-4.5 Air और MLX के साथ JavaScript Space Invaders बनाने का अनुभव
29 जुलाई 2025
कल परिचित कराया गया GLM-4.5 मॉडल परिवार चीन की Z.ai द्वारा MIT लाइसेंस के तहत जारी किया गया नवीनतम high-performance open weight मॉडल है
इसे coding benchmarks में Claude Sonnet 4 जैसे मौजूदा मॉडलों के बराबर उच्च प्रदर्शन दिखाने वाला माना गया है
सबसे छोटा GLM-4.5 Air मॉडल भी कुल 106 अरब parameters और लगभग 206GB आकार का है
Ivan Fioravanti ने MLX पर चलाने लायक इसका 3bit में 44GB quantized संस्करण जारी किया, जिससे यह 64GB memory वाले laptop पर भी चल सकता है
खुद आज़माने पर पता चला कि यह छोटा मॉडल भी बेहद शक्तिशाली प्रदर्शन देता है
इनपुट प्रॉम्प्ट:
HTML और JavaScript में Space Invaders को implement करने वाला पेज लिखने का अनुरोध प्रॉम्प्ट दिया गया
मॉडल को उत्तर जनरेट करने में थोड़ा समय लगा, और यह परिणाम सफलतापूर्वक आउटपुट हुआ
हालांकि यह एक शुरुआती उदाहरण है, लेकिन 2.5 साल पुराने लैपटॉप (64GB MacBook Pro M2) पर पहले ही प्रयास में काम करने वाला उच्च-गुणवत्ता का कोड सीधे जनरेट होना प्रभावशाली है
मॉडल चलाने का तरीका
- नवीनतम mlx-lm लाइब्रेरी की
mainbranch और विशिष्ट glm4_moe support commit का उपयोग करना होगा - uv से Python environment शुरू करने के बाद, नीचे दिए गए कोड से मॉडल लोड किया गया
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/GLM-4.5-Air-3bit")
-
44GB आकार के model weights
~/.cache/huggingface/hub/models--mlx-community--GLM-4.5-Air-3bitफ़ोल्डर में स्टोर होते हैं -
प्रॉम्प्ट को इस तरह देकर generation चलाया गया
prompt = "Write an HTML and JavaScript page implementing space invaders"
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True
)
response = generate(
model, tokenizer,
prompt=prompt,
verbose=True,
max_tokens=8192
)
- generation प्रक्रिया में पहले समस्या की आवश्यकताओं और गेम डिज़ाइन की जानकारी को व्यवस्थित कर आउटपुट किया गया
- इसके बाद वास्तव में काम करने वाला HTML, CSS, JavaScript कोड तेज़ गति से जनरेट किया गया
generation आँकड़े
-
प्रॉम्प्ट: 14 tokens, प्रति सेकंड 14.095 tokens जनरेट
-
मुख्य भाग generation: 4193 tokens, प्रति सेकंड 25.564 tokens जनरेट
-
अधिकतम memory उपयोग: 47.687GB
-
पूरी बातचीत का रिकॉर्ड gist लिंक पर उपलब्ध है
-
आउटपुट source को GitHub उदाहरण में देखा जा सकता है
-
इसे सीधे ब्राउज़र में चलाकर टेस्ट भी किया जा सकता है
Pelican benchmark test
- pelican riding a bicycle benchmark से इसी मॉडल की SVG image generation क्षमता का भी मूल्यांकन किया गया
Generate an SVG of a pelican riding a bicycleप्रॉम्प्ट पर रचनात्मक SVG image code सफलतापूर्वक जनरेट हुआ- मॉडल अधिकतम लगभग 48GB RAM का उपयोग करते हुए परिणाम लौटाता है
- पर्याप्त memory सुनिश्चित करने के लिए लैपटॉप पर कुछ apps बंद करने पड़े
- स्पीड भी संतोषजनक स्तर की रही
लोकल coding models की प्रगति
- 2025 में अधिकांश large language models ने code generation performance को मजबूत करने पर ध्यान केंद्रित किया
- इसके नतीजे में, लोकल hardware पर भी वास्तविक उपयोग के योग्य उच्च code generation क्षमता दिखाई दे रही है
- यह उस स्तर के करीब पहुँच रहा है जिसकी 2 साल पहले LLaMA के शुरुआती प्रयासों के समय कल्पना करना मुश्किल था
- अभी उपयोग में इसी लैपटॉप पर GLM-4.5 Air, Mistral 3.2 Small, Gemma 3, Qwen 3 जैसे लगातार सामने आ रहे high-performance open source models का लाभ लिया जा सकता है
- पिछले 6 महीनों में लोकल पर चलने वाले कई उच्च-गुणवत्ता coding-specialized language models जारी होने से development environment बेहतर हो रहा है
1 टिप्पणियां
Hacker News टिप्पणियाँ
जब मैंने 2 साल पहले पहली बार LLaMA देखा था, तब मैंने कभी कल्पना भी नहीं की थी कि उस समय मेरे पास जो laptop था, उस पर आज के GLM 4.5 Air जैसे models (Gemma 3, Qwen 3, Mistral 3.2 Small आदि) चल सकेंगे। open models की quality और release speed, दोनों ही मेरी उम्मीदों से बहुत आगे निकल गए। संदर्भ के लिए, जब ChatGPT दिसंबर 2022 में आया था, तब मौजूद सबसे अच्छे open models GPT-J (लगभग 6~7B) और GPT-neoX (करीब 22B?) थे। मैंने सच में लगभग एक महीने तक gpt-j के साथ user-facing service चलाई थी, लेकिन quality बेहद खराब थी और वह instructions बिल्कुल नहीं मानता था, इसलिए prompt को कहानी की तरह लिखना पड़ता था या कई examples देने पड़ते थे, तभी जाकर कुछ काम करता था। उसके बाद LLama model "leak" हुआ (मुझे लगता है यह शायद जानबूझकर कराया गया leak था), और इतिहास बदल गया। L1 दौर में quantization, fine-tuning जैसी कई optimizations आईं, L2 में fine-tuning सच में commercial स्तर पर पहुँच गई (ज़्यादातर fine-tunes Meta के original से बेहतर थे), और Alpaca की LoRA demo के बाद Mistral, Mixtral, L3, Gemma, Qwen, DeepSeek, glm, Granite जैसे बेहद ताकतवर models की बाढ़ आ गई। कुछ analyses के मुताबिक, open models, SotA labs के released models से लगभग 6 महीने पीछे हैं (और माना जाता है कि labs अपने सबसे अच्छे models public नहीं करते, बल्कि उन्हें internally अगली training के लिए data curation वगैरह में इस्तेमाल करते हैं)। 6 महीने का gap सच में पागलपन जैसा है। मुझे लगा था कि gpt-3.5 स्तर तक पहुँचने में 2 साल लगेंगे, लेकिन यह दुनिया आ जाएगी जहाँ मैं ऐसे models को local पर चला सकूँगा और खुद fine-tune भी कर सकूँगा, यह कभी नहीं सोचा था
मैं काफी समय तक पूछता रहा कि LLM fine-tuning या LoRA (parameter-efficient fine-tuning) कैसे बनाई जाती है, या उसका इस्तेमाल कैसे किया जाता है। वास्तव में कोई उपयोगी जवाब नहीं मिला, और web search पूरी तरह SEO/advertorial articles से भरी हुई है। SD LoRA कैसे बनाते हैं और कैसे इस्तेमाल करते हैं, यह मुझे 2 साल से पता है और मैं इसमें सहज हूँ। लेकिन सिर्फ LLM LoRA के मामले में सब कुछ किसी छिपे हुए रहस्य जैसा लगता है
ऐसा नहीं हो सकता कि Zuck (Mark Zuckerberg) ने खुद 4chan जैसी जगह पर leak किया हो
जिज्ञासा है कि क्या GLM 4.5, Qwen3 coder से बेहतर है
यह अभी भी चौंकाने वाला है कि 2.5 साल पहले खरीदे गए 64GB MacBook Pro M2 पर ऐसा code generation संभव है। खासकर यह कि code बिना किसी modification के एक ही बार में चल गया। लगता है हम मौजूदा hardware की संभावनाओं को बहुत कम आँकते हैं। मुझे चिंता है कि ‘Bitter lesson’ (जादू compute पर निर्भर है) और ‘efficient compute frontier’ जैसी सोच, innovative approaches खोजने की कोशिश करने वाले smart लोगों को उल्टा दूर कर देती है। असल में, आज के models को training के बाद weights की precision बहुत घटाने पर भी performance बची रहती है, तो कभी-कभी लगता है शायद हम उल्टा ज़्यादा inefficient दिशा में हैं
जिज्ञासा है कि क्या उसने implementation के result को समझा भी, या सिर्फ यह देखा कि वह चल गया। LLM शायद आम interview questions पर भी लगभग सही जवाब दे सकता है। मेरे सहकर्मियों ने data changes present करने के लिए LLM से एक JSON visualization app बनवाया, लेकिन पहले से ठीक-ठाक JSON viewers मौजूद होने के बावजूद नया बनाने की ज़रूरत मुझे समझ नहीं आई। लगता है लोग काम की असली tooling की बजाय presentation सुधारने के लिए LLM ज़्यादा इस्तेमाल करते हैं। एक दूसरे सहकर्मी को बड़े पैमाने पर पाठ्य-सामग्री edit करने के लिए macro चाहिए था, लेकिन उसे बनाने के लिए पहले LLM prompts के लिए rubric बनाई गई, फिर macro requirements को presentation slides में बदलकर दोबारा LLM को दिया गया। system इतना जटिल हो गया था कि मुझे नहीं लगता इससे सच में समय बचा। result दिलचस्प था, लेकिन अक्सर किसी और के लिए बेकार निकलता था
मैंने code को सरसरी तौर पर देखा और समझ लिया कि वह क्या कर रहा है, लेकिन सिर्फ चलने की पुष्टि हो जाने पर मैंने उससे ज़्यादा गहराई में नहीं देखा। जब मैं LLM से production code लिखवाता हूँ, तो हर एक line चेक करता हूँ। मैं code तभी commit करता हूँ जब उसे इतना अच्छी तरह समझ लूँ कि किसी और को समझा सकूँ। मैंने इस पर विस्तार से लिखा है कि मैंने practical code writing में LLM का कैसे उपयोग किया
https://simonwillison.net/2025/Mar/11/using-llms-for-code/
LLM खुद ही वह solution है
सच कहें तो disposable code वह क्षेत्र है जहाँ AI सच में चमकता है। अगर वह किसी बेहूदा build system के लिए boilerplate, animation code वगैरह बना दे, तो मैं उसका स्वागत करूँगा (3Blue1Brown ने animation पर जितनी मेहनत की है, उसे देखते हुए अगर AI उस काम में मदद कर सके तो मैं पूरी तरह पक्ष में हूँ)। यह कि कोई non-programmer कम-से-कम prototype बनाकर professional developer को सौंप सके, अपने आप में बहुत बड़ी value है। output code की हर detail समझना ज़रूरी नहीं होता; बस pass/fail तय करना होता है, इसलिए इसकी practical usefulness बहुत ज़्यादा है। लेकिन जिन समस्याओं की value ‘करोड़ों’ में होती है, वे आमतौर पर real services में bug fixes या feature additions जैसी चीज़ें होती हैं, और वहाँ AI सीमाओं से टकराता है। दूसरी तरफ, disposable code पहले junior developers के growth tool की तरह भी काम करता था, और उसका AI के हाथ में चले जाना सोचने वाली बात है
मेरा अनुमान है कि इस model के training data में Space Invaders के बहुत सारे implementations, कई अलग-अलग भाषाओं में, पहले से रहे होंगे
असली test यह है कि क्या model ‘function modify करो, spaceship नीचे की तरफ shoot करे, उसे left/right से enter कराओ, 2-player mode जोड़ो’ जैसे implementation-level requests भी संभाल सकता है
शायद data का कुछ हिस्सा ऐसा भी रहा हो जहाँ model ने dataset में पहले से मौजूद games की copy करके synthetic data बनाया हो। LLM से generate हुआ React frontend code देखो तो सब कुछ काफ़ी मिलता-जुलता लगता है
यह बहस तो 3 साल पहले ही खत्म हो जानी चाहिए थी। gpt3 के बाद से practically उपयोग योग्य सारा code training data में जा चुका है, और सिर्फ 2 साल में हम “अब code ऊपर-ऊपर से सही लगता है, लेकिन वास्तव में सब गलत है” से “0-shot में सही चलने वाली full-stack app तुरंत generate” तक पहुँच गए। इस छलाँग की कुंजी सिर्फ dataset नहीं है, बल्कि post-training, reinforcement learning (RL), long context, agentic behavior जैसी चीज़ें हैं। शुरुआती models 2/4k token limits में फँसे थे, लेकिन अब पूरा खेल बदल चुका है। इस नज़रिए के बिना सिर्फ data की बात करना असल मुद्दे को चूकना है
breakout game से इसकी visual समानता दिलचस्प है
ऐसी comments भी शायद training data में ढेरों बार गई होंगी, यानी बिना असली analysis के वही synthetic जैसी टिप्पणियाँ
मेरे पास 128GB RAM वाला M4 Mac है, और मैं अभी LM Studio से GLM-4.5-Air-q5-hi-mlx (80GB) download कर रहा हूँ। जल्द ही result साझा करूँगा
मुझे लगता है कि यह दिखाना कि LLM laptop पर local में चल सकता है, अपने आप में बड़ी बात है। पहले छोटे models के साथ यह लगभग असंभव था, इसलिए यह सच में एक महत्वपूर्ण milestone है। लेकिन Space Invaders जैसे विशेष/संकीर्ण domain में, शायद GitHub वगैरह से existing implementation ढूँढकर download करना ज़्यादा efficient होगा। ऐसे cases में training set खुद बहुत छोटा होता है, और model का vector space भी सीमित दायरे का होता है, इसलिए result code के original से बहुत मिलता-जुलता या लगभग copy-paste होने की संभावना अधिक है। ऊपर से model की typing speed का इंतज़ार भी करना पड़ता है, इसलिए added value बहुत कम है। मुझे तो LLM से यह कहना ज़्यादा समझदारी लगता है: "GitHub पर language X में लिखा हुआ existing Space Invaders source ढूँढो"। मज़ेदार बात यह है कि जब ChatGPT से ऐसे code की सफ़ाई माँगो, तो LLM को जैसे इस बात पर ज़ोर देने की दिशा में धकेला जाता है कि ‘overfitting लगभग नहीं होता, और model कुछ याद नहीं रखता’ (मैं तो इनमें से किसी बात पर ज़्यादा भरोसा नहीं करता)
मैंने Claude Sonnet 4 के साथ कोशिश की, लेकिन वह ठीक से काम नहीं कर पाया। 3bit quantized GLM-4.5 Air उससे आगे निकला। संबंधित chat log: https://claude.ai/share/dc9eccbf-b34a-4e2b-af86-ec2dd83687ea Claude Opus 4 भी काम तो करता है, लेकिन Simon द्वारा पोस्ट किए गए GLM-4.5 की तुलना में बहुत पीछे है: https://claude.ai/share/5ddc0e94-3429-4c35-ad3f-2c9a2499fb5d
मैंने पहले title को गलत पढ़ लिया था: “हमारा 2.5 साल का बच्चा अब JavaScript में Space Invaders बनाता है (GLM-4.5 Air)”। लेकिन कुछ साल बाद यह सच भी हो सकता है
यह चर्चा एक दिलचस्प sci-fi सवाल उठाती है। अगर भविष्य की किसी AI का binary wormhole से गिरकर आज के consumer hardware पर आ जाए, तो क्या वह superintelligence, या कम-से-कम कोई weak agent, उस पर चल सकेगा (या network और persuasion के ज़रिए दूसरे hardware पर खुद को bootstrap कर सकेगा)?
यही तो अब तक मेरे ML research की मूल परिकल्पना रही है। बस 'wormhole' की जगह 'genetic programming/neuroevolution आदि' रख दीजिए, बात वही है। demoscene के extreme-optimization software ने मुझे इसी दिशा में धकेला। इन दिनों मैं बार-बार यह सवाल पूछता हूँ: "ऐसे binary की Kolmogorov complexity क्या होगी जो current-generation LLM की पूरी functionality को समान रूप से दे सके?" अगर उसका size (complexity) इतना हो कि वह मेरे मौजूदा desktop पर चल सके, तो तस्वीर कैसी होगी? मेरा PC AAA games को 400fps पर चला देता है, इसलिए मुझे यक़ीन नहीं होता कि LLM सिर्फ utf-8 text को 100b/s की रफ्तार से उगले और दोनों के बीच अंतर इतना बड़ा हो
यही हिस्सा मुझे सच में सबसे दिलचस्प लगता है। कितनी latent capabilities छिपी हुई हैं, और उन्हें और चरम तक कैसे ले जाया जा सकता है? यहाँ तक कि अगर hardware बिल्कुल exotic और नया हो तो? हम आमतौर पर human brain की सीमाओं के कारण abstractions बनाते हैं और उन्हीं के भीतर काम करते हैं। उन abstractions की बड़ी लागत है, और उन्हें हटाने पर कितनी संभावना खुल सकती है, यह जानने की जिज्ञासा है
क्या local LLM चलाने के लिए minimum/recommended hardware की कोई अच्छी website है, जैसे games में ‘system requirements’ दिए जाते हैं?
LM Studio (और भी कई tools हैं) में अपने hardware performance के हिसाब से model चुनना बहुत आसान है
बाकी जवाबों के अलावा, एक अच्छा rule of thumb यह है कि ज़्यादातर local models q4 quantization पर सबसे अच्छा प्रदर्शन देते हैं (memory में model parameters की संख्या के आधे से थोड़ा ज़्यादा के बराबर जगह चाहिए होती है)। उदाहरण के लिए 14B model को लगभग 8GB चाहिए, और context capacity जोड़ें तो 14B model के लिए करीब 10GB VRAM ठीक रहती है। q4 पर resources बचें तो बड़ा parameter model चुनें, नहीं बचें तो छोटी quantization पर जाएँ
यह भी एक उपयोगी resource है
https://www.reddit.com/r/LocalLLaMA/
मुझे यह site बहुत उपयोगी लगती है
https://apxml.com/tools/vram-calculator
अगर आपके पास HuggingFace account है, तो आप अपना hardware profile दर्ज करके तुरंत देख सकते हैं कि कौन-सा model चल पाएगा