22 पॉइंट द्वारा GN⁺ 2025-12-30 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Z80-μLM 1976 के Z80 प्रोसेसर (4MHz, 64KB RAM) पर चलने वाला एक अल्ट्रा-छोटा संवादी AI मॉडल है
  • Quantization-Aware Training (QAT) लागू करके यह सिर्फ 2-बिट वेट्स और 16-बिट integer operations के साथ कैरेक्टर-स्तरीय टेक्स्ट जनरेशन करता है
  • लगभग 40KB के .COM executable में inference engine, weights और chat UI सब शामिल हैं
  • trigram hash encoding इनपुट को 128 buckets में बदलता है, जिससे टाइपो या शब्द क्रम बदलने पर भी स्थिर जवाब मिलते हैं
  • जटिल context समझना संभव नहीं, लेकिन सीमित 8-bit वातावरण में चलने वाले एक प्रायोगिक AI मॉडल के रूप में यह ध्यान खींचता है

प्रोजेक्ट ओवरव्यू

  • Z80-μLM एक रेट्रो-कंप्यूटिंग वातावरण में चल सकने वाला अल्ट्रा-छोटा language model है
    • यह 64KB RAM वाले Z80 CPU पर चलता है और कैरेक्टर-स्तरीय संवादात्मक जवाब उत्पन्न करता है
    • मॉडल, inference code और UI सहित कुल आकार लगभग 40KB है
  • प्रोजेक्ट का मुख्य सवाल था: “इसे कितना छोटा बनाया जा सकता है और फिर भी इसकी एक पहचान बनी रहे?” और इसका self-hosted deployment भी संभव है
  • यह Turing Test स्तर तक नहीं पहुँचता, लेकिन सरल बातचीत के जरिए उपयोगकर्ता को आनंद देने वाला रूप प्रस्तुत करता है

दो उदाहरण शामिल

  • tinychat

    • रोज़मर्रा के Q&A डेटा पर प्रशिक्षित एक सरल chatbot
      • अभिवादन, परिचय और सामान्य बातचीत पर छोटे लेकिन व्यक्तित्वपूर्ण जवाब देता है
      • उदाहरण: “hello” → “HI”, “are you a robot” → “YES”, “do you dream” → “MAYBE”
  • guess

    • 20 Questions गेम शैली का मॉडल
      • यह एक गुप्त विषय जानता है और YES/NO/MAYBE में जवाब देता है
      • उपयोगकर्ता सही उत्तर बता दे तो “WIN” दिखाता है
  • ट्रेनिंग डेटा Ollama या Claude API का उपयोग करके बनाया जा सकता है, और class distribution balance tool भी शामिल है

मुख्य फीचर्स

  • Trigram hash encoding: इनपुट टेक्स्ट को 128 buckets में hash करता है, टाइपो-सहनशील और शब्द क्रम से स्वतंत्र
  • 2-बिट weight quantization: हर weight {-2, -1, 0, +1}, 1 byte में 4 स्टोर
  • 16-बिट integer inference: Z80 की 16-बिट arithmetic का उपयोग
  • ~40KB .COM फ़ाइल: CP/M के Transient Program Area(TPA) के अनुकूल
  • Autoregressive generation: कैरेक्टर-स्तर पर आउटपुट जनरेट करता है
  • floating-point operations नहीं, fixed-point scaling का उपयोग
  • interactive mode support: CHAT कमांड से चलता है

इंटरैक्शन का तरीका

  • मॉडल इनपुट को ‘समझता’ नहीं, बल्कि इनपुट के shape के आधार पर प्रतिक्रिया देता है
    • इनपुट वाक्य 128 trigram buckets में बदले जाते हैं, जिससे semantic similarity बनी रहती है
    • उदाहरण: “hello there” और “there hello” को एक ही bucket structure के रूप में प्रोसेस किया जाता है
  • लंबे वाक्य या क्रम-निर्भर वाक्यों में अंतर करना मुश्किल है
  • छोटे जवाबों का अर्थ

    • 1–2 शब्दों के जवाब भी अनपेक्षित nuance व्यक्त कर सकते हैं
      • OK: तटस्थ स्वीकृति
      • WHY?: सवाल पर पलट-प्रश्न
      • R U?: अस्तित्व पर प्रश्न
      • MAYBE: अनिश्चितता
      • AM I?: आत्म-परावर्तक प्रश्न
    • ऐसे छोटे जवाब उपयोगकर्ता को context का अनुमान लगाने के लिए प्रेरित करते हैं

ताकत और सीमाएँ

  • ताकत
    • छोटे इनपुट पर सुसंगत classification-जैसे जवाब
    • टाइपो, पुनर्गठन और शब्द क्रम बदलाव के प्रति मजबूत
    • शब्द चयन के जरिए व्यक्तित्व की अभिव्यक्ति
    • सीमित 8-bit hardware पर भी चल सकता है
  • सीमाएँ
    • नए वाक्य नहीं बना सकता
    • multi-turn context track नहीं कर सकता
    • व्याकरण नहीं समझता
    • सामान्य बुद्धिमत्ता के स्तर तक नहीं पहुँचता

आर्किटेक्चर

  • इनपुट लेयर: 128 query buckets + 128 context buckets
  • hidden layers: उदाहरण कॉन्फ़िगरेशन 256 → 192 → 128
  • आउटपुट लेयर: कैरेक्टर सेट के हर कैरेक्टर के लिए 1 neuron
  • activation function: ReLU
  • quantization constraints

    • Z80 एक 8-bit CPU है, लेकिन 16-बिट register pairs (HL, DE, BC) का उपयोग accumulation और activation के लिए करता है
    • weights 1 byte में 4-4 करके स्टोर किए जाते हैं (2-bit units)
    • 16-बिट accumulator 256 inputs के sum पर overflow रोकता है
    • 2-बिट weights के कारण अभिव्यक्ति क्षमता सीमित है, और QAT के बिना training results अस्थिर हो सकते हैं
  • Z80 inner loop

    • inference का केंद्र multiply-accumulate loop (MAC) है
      • weights को unpack करके -2~-1~0~+1 मान के अनुसार accumulator (ACC) में जोड़ा या घटाया जाता है
      • हर layer की गणना के बाद overflow रोकने के लिए 2-bit right shift किया जाता है
    • पूरी inference प्रक्रिया हर कैरेक्टर पर लगभग 100,000 operations दोहराती है

लाइसेंस

  • MIT या Apache-2.0 में से चयन संभव

2 टिप्पणियां

 
crawler 2025-12-30

मुझे सच में यह बहुत हैरान करने वाली बात लगती है कि नवीनतम तकनीक को पुराने हार्डवेयर पर चलाया जा सकता है।

भविष्य में अगर AGI आ गया, तो क्या अभी पृथ्वी पर मौजूद सारी computing power को एक साथ जुटाकर उसे चलाया जा सकेगा?

 
GN⁺ 2025-12-30
Hacker News की राय
  • एकदम सही टाइमिंग है। मैंने Unreal Engine गेम के अंदर VT100 टर्मिनल(coding agent चलाने के लिए), Z80 emulator, और CP/M machine को प्रोग्राम कर सकने वाला serial bridge डाला है
    स्क्रीनशॉट
    मैंने सोचा भी नहीं था कि कोई इतना बिल्कुल फिट बैठने वाली चीज़ पोस्ट करेगा। यह सच में अजीब लेकिन कमाल का संयोग है
    • लगता है हम दोनों में telepathy हो गई
      मैंने browser-based CP/M emulator और IDE बनाया है: lockboot.github.io/desktop
      मैं वही पोस्ट करने वाला था, लेकिन ‘शानदार demo’ ढूँढते-ढूँढते rabbit hole में फँस गया
    • James Burke की Connections: Alternative History of Technology किताब ऐसे संयोगपूर्ण जुड़ावों को अच्छी तरह कवर करती है
    • दिलचस्प है, लेकिन अफसोस कि मैं imgur नहीं देख सकता
  • यह सच में बहुत पसंद आया। मैंने तुरंत GitHub star दे दिया
    मैंने 60 के दशक की punch card machine के लिए Fortran IV में MLP लिखा था (Xortran project)
    भले ही उसमें attention mechanism नहीं था और context सिर्फ आखिरी sentence के trigram तक सीमित था, फिर भी interaction काफ़ी ठीक था
    अगर ऐसा 60 के दशक के hardware पर भी संभव था, तो उस दौर का SF और विज्ञान पूरी तरह अलग होता
    • ऐसे प्रोजेक्ट सच में बहुत दिलचस्प हैं। यह छूट चुके रास्ते को देखने जैसा लगता है
      थोड़ा conspiracy theory की तरह कहूँ तो, लगता है AI कंपनियाँ RAM बड़े पैमाने पर इसलिए खरीद रही हैं ताकि लोगों को यह एहसास न हो कि आज का समय home computer revolution जैसा है
      मैं 1TB RAM machine इस्तेमाल करता हूँ, और custom agent के साथ इसका प्रदर्शन commercial model से बेहतर है। यह personal है, safe है, और monetize नहीं किया गया
  • मैं भी अक्सर यही सोचता हूँ। ‘minimum viable LLM’ आखिर क्या होगा? यानी ऐसा model जो साधारण बातचीत कर सके
    और अगला सवाल यह है कि क्या ऐसा छोटा model बनाया जा सकता है जो बाहरी data को देखते हुए सीख भी सके
    अगर real-time में सीखने वाला ultra-small model बन जाए, तो हमारे पास पूरी तरह localized personal assistant होगा
    • यह लगभग Karpathy के ‘cognitive core’ कॉन्सेप्ट जैसा ही है
      ऐसा बहुत छोटा model जिसमें encyclopedic knowledge लगभग न हो, लेकिन basic reasoning और tools इस्तेमाल करने की क्षमता हो
      संदर्भ ट्वीट
    • अगर 90 के दशक में ऐसी तकनीक होती, तो शायद basic LLM पहले ही मौजूद होते
      तब शायद आज की दुनिया पूरी तरह अलग होती
    • RWKV को देखना दिलचस्प है: rwkv.com
      यह experimental case study है कि ‘अगर RNN, LLM के लिए उपयुक्त होता तो क्या होता’
      CPU पर यह पागलों की तरह तेज़ है
    • Minecraft के अंदर किसी ने एक LLM बनाया है, जो 50 लाख 8-bit weights के साथ सरल बातचीत संभालता है
      हालांकि बड़े context window का अच्छा उपयोग करना शायद मुश्किल होगा
  • मज़ाक यह है कि AI कंपनियाँ सारे Z80 chips खरीदकर उनकी कीमत बढ़ा देंगी
    • अब बहुत देर हो चुकी। पिछले साल ही stock खत्म हो गया था
  • अगर किसी model को secret (passphrase) सिखाया जाए, और user को सवाल पूछकर उसे guess करना पड़े,
    तो क्या model के weights तक पहुँचने पर उस secret को reverse-engineer किया जा सकता है, या वह सिर्फ सवालों के ज़रिए ही हासिल होगा—यह जानने की जिज्ञासा है
    • यह सवाल देखकर मुझे यह paper याद आया: Planting Undetectable Backdoors in Machine Learning Models
      यह ऊपर से सामान्य दिखने वाले, लेकिन अंदर undetectable backdoor छिपाए हुए model बनाने के तरीके पर है
    • model जितना छोटा होगा, ऐसे secret को weights analysis से आसानी से निकाला जा सकेगा
      आम तौर पर यह ‘interpretability’ की समस्या के अंतर्गत आता है
  • अगर सही code और training infrastructure होता, तो ELIZA भी कहीं ज़्यादा ताकतवर होती
    • मूल ELIZA 1960s के IBM 7094 mainframe पर चलती थी
      उसकी संरचना 32K×36-bit words की थी, और byte operations का समर्थन नहीं था
      40KB के Z80 executable को ज्यों का त्यों ले जाना काफ़ी तंग पड़ता
      लेकिन अगर ज़्यादातर हिस्सा 2-bit weights होता, तो शायद संभव था
      बाद के hardware, खासकर 1976 के Z80 पर, यह काफी आसान होता
  • मैंने भी खुद एक Z80 computer डिज़ाइन और बनाया है। अभी उसमें 32KB ROM और 32KB RAM है
    अगले version में इसे expand करने वाला हूँ, इसलिए इसे ज़रूर आज़माने का सोच रहा हूँ
    • आजकल RAM की कीमतें बहुत ज़्यादा हैं
  • अगर पूरे input को एक बार में embedding की तरह प्रोसेस किया जाए, तो यह Transformer या RNN नहीं बल्कि MLP architecture जैसा लगता है
  • पुराने free-input RPG में ऐसा fuzzy matcher होता तो अच्छा रहता
    उस समय सिर्फ exact keyword matching होती थी, इसलिए सब कुछ अटपटा लगता था
    शायद उस तरह का आखिरी game 2001 का Wizardry 8 रहा होगा
  • बढ़िया काम है। वैसे AGI तक पहुँचने का अनुमानित timeline क्या है?
    • शायद अप्रैल की शुरुआत तक
    • लगता है बस अगला मोड़ पार करते ही मिल जाएगा