- 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 में से चयन संभव
अभी कोई टिप्पणी नहीं है.