• 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 में से चयन संभव

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.