- MicroGPT 200 पंक्तियों के शुद्ध Python कोड में लिखा गया GPT मॉडल का न्यूनतम इम्प्लीमेंटेशन है, जिसे इस तरह बनाया गया है कि बड़े भाषा मॉडलों की मुख्य संरचना को दृश्य रूप में समझा जा सके
- यह 32,000 मानव नामों के डेटासेट पर ट्रेन होकर नए नाम बनाता है, और tokenizing, prediction, loss calculation, तथा backpropagation की प्रक्रिया को चरण-दर-चरण दृश्य रूप में दिखाता है
- Softmax, Cross-Entropy Loss, Backpropagation, Embedding, Attention जैसे GPT के प्रमुख घटकों को कोड के साथ समझाया गया है
- ट्रेनिंग प्रक्रिया में Adam optimizer का उपयोग करके loss को धीरे-धीरे कम किया जाता है, और बाद में temperature sampling के जरिए अलग-अलग नाम जनरेट किए जाते हैं
- ChatGPT जैसे बड़े मॉडलों के मुख्य algorithm का सरल रूप होने के कारण, यह LLM के अंदरूनी कामकाज को समझने के लिए एक शैक्षिक सामग्री है
MicroGPT अवलोकन
- Andrej Karpathy द्वारा लिखी गई 200-पंक्ति की Python script पर आधारित, यह GPT मॉडल के training और inference process को दृश्य रूप से समझाता है
- बिना किसी external library के, केवल शुद्ध Python में इम्प्लीमेंट किया गया
- इसमें ChatGPT जैसे बड़े भाषा मॉडलों के मूल algorithm ज्यों के त्यों शामिल हैं
- लेख beginner-friendly visual approach के माध्यम से मॉडल के हर चरण को क्रमवार दिखाता है
डेटासेट और सीखने का लक्ष्य
- 32,000 मानव नामों (उदाहरण: emma, olivia, ava आदि) को training data के रूप में उपयोग किया गया है
- हर नाम को एक document माना जाता है, और मॉडल नामों के अक्षर पैटर्न सीखता है
- training के बाद यह “kamon”, “karai”, “anna”, “anton” जैसे नए नाम जनरेट करता है
- मॉडल अक्षरों के बीच सांख्यिकीय संबंध, नामों की लंबाई, और शुरुआत व अंत के ध्वन्यात्मक पैटर्न सीखता है
टेक्स्ट को संख्याओं में बदलने की प्रक्रिया
- चूँकि neural network केवल संख्याओं को प्रोसेस करता है, इसलिए हर अक्षर को integer ID में बदला जाता है
- a–z को 0–25 और BOS(Beginning of Sequence) को 26 दिया गया है
- BOS token नाम की शुरुआत और अंत को चिह्नित करता है
- वास्तविक GPT-4 का tiktoken अक्षरों की जगह subword स्तर पर tokenization करता है, लेकिन सिद्धांत वही रहता है
अगला token prediction
- मॉडल दिए गए context से अगले अक्षर का अनुमान लगाता है
- उदाहरण: [BOS] → “e”, [BOS, e] → “m”, [BOS, e, m] → “m”, [BOS, e, m, m] → “a”
- हर चरण input (context) और target (अगला अक्षर) की जोड़ी बनाता है, और यही तरीका ChatGPT में भी उपयोग होता है
Softmax और probability calculation
- मॉडल का output 27 logit से बना होता है, जिन्हें Softmax के जरिए probability में बदला जाता है
- हर logit का exponent लेकर कुल योग से विभाजित कर probability distribution बनाई जाती है
- अधिकतम मान घटाने वाली प्रक्रिया overflow से बचाने के लिए stabilization करती है
- Softmax का परिणाम बताता है कि अगला कौन-सा token आने की कितनी संभावना है
loss calculation: Cross-Entropy
- prediction की शुद्धता को −log(p) से मापा जाता है
- सही उत्तर की probability जितनी अधिक होगी, loss उतना कम होगा; और 0 के करीब होने पर loss बहुत बड़ा होगा
- p=1 होने पर loss 0, और p→0 होने पर loss अनंत
- training इस loss को न्यूनतम करने की दिशा में आगे बढ़ती है
Backpropagation
- loss के आधार पर यह गणना की जाती है कि हर parameter का loss पर कितना प्रभाव है
- सभी operations (add, multiply, exp, log आदि) को node के रूप में संगठित करने वाले computational graph के जरिए differentiation किया जाता है
- हर node input और local derivative value को सहेजता है, और उल्टी दिशा में gradient propagate करता है
- उदाहरण: L = a⋅b + a (a=2, b=3) → a का gradient 4.0 है (दो paths का योग)
- सिद्धांत PyTorch के
loss.backward() जैसा ही है
Embedding
- हर token ID को 16-dimensional vector में बदला जाता है, जिससे अर्थ संबंधी जानकारी सीखी जा सके
- token embedding और positional embedding को जोड़कर input बनाया जाता है
- position के अनुसार एक ही अक्षर की भूमिका बदल सकती है
- training के बाद मिलते-जुलते अक्षर (जैसे vowel) मिलते-जुलते vector रखने लगते हैं
Attention
- हर token Query, Key, और Value vector बनाता है
- Query और Key के dot product से प्रासंगिकता निकाली जाती है, और Softmax से weight तय होते हैं
- weighted sum किया गया Value output के रूप में उपयोग होता है
- Causal Mask लागू किया जाता है ताकि भविष्य के token को refer न किया जाए
- 4 attention heads समानांतर रूप से काम करते हैं और अलग-अलग पैटर्न सीखते हैं
संपूर्ण GPT संरचना
- input token निम्न चरणों से गुजरते हैं
- embedding + positional embedding
- RMSNorm normalization
- multi-head attention
- residual connection
- MLP(64-dimensional expansion → ReLU → 16-dimensional reduction)
- फिर residual connection के बाद output logit calculation
- Residual connection gradient vanishing को रोकने में मदद करता है
- RMSNorm activation values के scale को स्थिर रखकर training को अधिक stable बनाता है
training loop
- 1,000 बार iterative training
- नाम चुनना → tokenize करना → forward pass → loss calculation → backpropagation → parameter update
- Adam optimizer का उपयोग
- momentum और adaptive learning rate के जरिए stable convergence
- शुरुआती loss लगभग 3.3 से घटकर 2.37 तक आता है
- जनरेट किए गए नाम random रूप से धीरे-धीरे अधिक स्वाभाविक रूप लेने लगते हैं
inference और sampling
- training के बाद BOS से शुरू करके अगला token बार-बार predict किया जाता है
- BOS दोबारा आने तक generation जारी रहती है
- Temperature के जरिए sampling diversity नियंत्रित की जाती है
- कम होने पर output अधिक deterministic (औसत-स्वरूप) होता है, अधिक होने पर अधिक creative लेकिन unstable
- नाम generation के लिए उपयुक्त temperature लगभग 0.5 है
- उदाहरण output: “karai”
दक्षता और scalability
- MicroGPT, GPT के मुख्य algorithm का सरल लेकिन पूर्ण इम्प्लीमेंटेशन है
- ChatGPT से अंतर केवल scale का है
- 32,000 नामों की जगह खरबों token, और 4,192 parameters की जगह सैकड़ों अरब parameters
- CPU आधारित scalar operations की जगह GPU tensor operations का उपयोग
- मूल loop वही रहता है: tokenize → embedding → attention → prediction → loss → backpropagation → update
निष्कर्ष
- MicroGPT, GPT के अंदरूनी कामकाज को सहज रूप से सीखने के लिए एक शैक्षिक मॉडल है
- यह बड़े LLM की जटिल संरचना को सरल बनाकर language model के मुख्य mechanism को सीधे अनुभव करने का मौका देता है
अभी कोई टिप्पणी नहीं है.