केक्यूवी, ट्रांसफॉर्मर्स और जीपीटी | मूल, AI द्वारा अनुवादित
मैंने ट्रांसफॉर्मर्स में KQV मैकेनिज्म कैसे सीखा
2025.07.16
K, Q, V Mechanism in Transformers पढ़ने के बाद मुझे कुछ हद तक समझ आया कि K, Q, और V कैसे काम करते हैं।
Q का मतलब Query (प्रश्न) है, K का मतलब Key (कुंजी) है, और V का मतलब Value (मूल्य) है। किसी वाक्य के लिए, Query एक मैट्रिक्स है जो उस टोकन के मूल्य को संग्रहीत करता है जिसे उसे अन्य टोकन से पूछना होता है। Key टोकन का वर्णन करती है, और Value टोकन के वास्तविक अर्थ का मैट्रिक्स होती है।
इनकी विशिष्ट आकार (शेप) होती हैं, इसलिए इनके आयामों और विवरणों को समझना आवश्यक है।
मैंने इसे जून 2025 की शुरुआत में समझा। मैंने पहली बार इसके बारे में 2023 के अंत में सुना था। उस समय मैंने The Illustrated Transformer जैसे लेख पढ़े थे, लेकिन मुझे बहुत कुछ समझ नहीं आया।
लगभग दो साल बाद, अब मुझे यह समझना आसान लगा। इन दो वर्षों में मैंने बैकएंड काम और अपने एसोसिएट डिग्री परीक्षाओं की तैयारी पर ध्यान केंद्रित किया, और मैंने मशीन लर्निंग के बारे में बहुत कम पढ़ा या सीखा। हालांकि, कभी-कभी जब मैं गाड़ी चला रहा होता था या अन्य काम करता था, तो इन अवधारणाओं पर विचार करता रहता था।
यह मुझे समय के प्रभाव की याद दिलाता है। हम बहुत सी चीजें पहली बार में सीख सकते हैं, भले ही हम उन्हें पूरी तरह समझ न पाएं। लेकिन किसी न किसी तरह, यह हमारे सोचने की शुरुआत को ट्रिगर करता है।
समय के साथ, मैंने पाया कि ज्ञान और खोज के लिए, पहली बार में चीजों के बारे में सोचना या समझना मुश्किल होता है। लेकिन बाद में, सीखना और जानना आसान लगने लगता है।
एक कारण यह है कि AI के युग में सीखना आसान है क्योंकि आप किसी भी विवरण या पहलू में गहराई से जा सकते हैं और अपने संदेहों को दूर कर सकते हैं। संबंधित AI वीडियो भी अधिक उपलब्ध हैं। सबसे महत्वपूर्ण बात, आप देखते हैं कि इतने सारे लोग उसी पर सीख रहे हैं और प्रोजेक्ट बना रहे हैं, जैसे llama.cpp।
Georgi Gerganov की कहानी प्रेरणादायक है। 2021 के आसपास मशीन लर्निंग सीखना शुरू करने वाले एक नए छात्र ने AI समुदाय में शक्तिशाली प्रभाव डाला।
ऐसी चीजें बार-बार होंगी। इसलिए, रीनफोर्समेंट लर्निंग और नवीनतम AI ज्ञान के लिए, हालांकि मैं अभी भी इनके लिए बहुत समय नहीं दे पा रहा हूँ, लेकिन मुझे लगता है कि मैं कुछ समय निकालकर जल्दी सीख सकता हूँ और इनके बारे में बहुत सोच सकता हूँ। दिमाग अपना काम करेगा।
न्यूरल नेटवर्क से GPT तक
2023.09.28
YouTube वीडियो
Andrej Karpathy - Let’s build GPT: from scratch, in code, spelled out.
Umar Jamil - Attention is all you need (Transformer) - Model explanation (including math), Inference and Training
StatQuest with Josh Starmer - Transformer Neural Networks, ChatGPT’s foundation, Clearly Explained!!!
Pascal Poupart - CS480/680 Lecture 19: Attention and Transformer Networks
The A.I. Hacker - Michael Phi - Illustrated Guide to Transformers Neural Network: A step-by-step explanation
मैंने कैसे सीखा
जैसे ही मैंने “Neural Networks and Deep Learning” पुस्तक का आधा भाग पढ़ा, मैंने हाथ से लिखे अंकों को पहचानने वाले न्यूरल नेटवर्क के उदाहरण को दोहराना शुरू किया। मैंने GitHub पर एक रिपॉजिटरी बनाई, https://github.com/lzwjava/neural-networks-and-zhiwei-learning।
यही असल चुनौती है। यदि कोई बिना किसी कोड की नकल किए इसे स्क्रैच से लिख सकता है, तो उसे बहुत अच्छा समझ होता है।
मेरे दोहराए गए कोड में अभी भी update_mini_batch और बैकप्रोपागेशन की कार्यान्वयन कमी है। हालांकि, डेटा लोड करने, फीड फॉरवर्ड करने, और मूल्यांकन करने के चरणों में चरों को ध्यान से देखकर मुझे वेक्टर, आयाम, मैट्रिक्स, और ऑब्जेक्ट के आकार की बहुत बेहतर समझ हो गई।
और मैंने GPT और ट्रांसफॉर्मर के कार्यान्वयन को सीखना शुरू किया। शब्द एम्बेडिंग और पोजिशनल एन्कोडिंग के माध्यम से, टेक्स्ट संख्याओं में बदल जाता है। फिर, मूल रूप से, यह हाथ से लिखे अंकों को पहचानने वाले सरल न्यूरल नेटवर्क से कोई अंतर नहीं रखता।
Andrej Karpathy का व्याख्यान “Let’s build GPT” बहुत अच्छा है। वे चीजों को बहुत अच्छा समझाते हैं।
पहला कारण यह है कि यह वास्तव में स्क्रैच से है। हम पहले देखते हैं कि टेक्स्ट कैसे जनरेट होता है। यह थोड़ा धुंधला और यादृच्छिक होता है। दूसरा कारण यह है कि Andrej चीजों को बहुत सहजता से समझा सकते हैं। Andrej ने nanoGPT प्रोजेक्ट पर कई महीने काम किया।
मुझे व्याख्यान की गुणवत्ता का आकलन करने का एक नया विचार आया। क्या लेखक वास्तव में इन कोड को लिख सकता है? मैं क्यों नहीं समझ पा रहा हूँ और लेखक ने कौन सा विषय छूट गया है? इन सुंदर डायग्राम और एनीमेशन के अलावा, इनकी क्या कमियाँ और दोष हैं?
मशीन लर्निंग के विषय पर वापस आते हैं। जैसे Andrej कहते हैं, ड्रॉपआउट, रेजिडुअल कनेक्शन, सेल्फ-अटेंशन, मल्टी-हेड अटेंशन, मास्क्ड अटेंशन।
उपरोक्त वीडियो देखने के बाद, मुझे थोड़ा समझने लगा।
पोजिशनल एन्कोडिंग में साइन और कोसाइन फंक्शन से हमें कुछ वेट मिलते हैं। शब्द एम्बेडिंग से हम शब्दों को संख्याओं में बदल देते हैं।
\[PE_{(pos,2i)} = sin(pos/10000^{2i/d_{model}}) \\ PE_{(pos,2i+1)} = cos(pos/10000^{2i/d_{model}})\]The pizza came out of the oven and it tasted good.
इस वाक्य में, एल्गोरिदम कैसे जानता है कि यह पिज्जा के बारे में है या ओवन के? हम वाक्य के हर शब्द के लिए समानताओं की गणना कैसे करते हैं?
हमें वेट की एक सेट चाहिए। यदि हम ट्रांसफॉर्मर नेटवर्क का उपयोग अनुवाद के कार्य के लिए करते हैं, तो हर बार जब हम एक वाक्य इनपुट करते हैं, तो यह दूसरी भाषा का संगत वाक्य आउटपुट कर सकता है।
यहाँ डॉट प्रोडक्ट के बारे में। हम यहाँ डॉट प्रोडक्ट का उपयोग इसलिए करते हैं क्योंकि डॉट प्रोडक्ट वेक्टर में हर संख्या को ध्यान में रखेगा। अगर हम स्क्वायर डॉट प्रोडक्ट का उपयोग करें? हम पहले संख्याओं का वर्ग निकालते हैं, फिर उन्हें डॉट प्रोडक्ट करते हैं। अगर हम कुछ रिवर्स्ड डॉट प्रोडक्ट करें?
मास्किंग के बारे में, हम मैट्रिक्स के आधे हिस्से की संख्याओं को नेगेटिव इन्फिनिटी में बदल देते हैं। फिर हम सॉफ्टमैक्स का उपयोग करते हैं ताकि मान 0 से 1 के बीच हों। क्या होगा अगर हम बाएं-नीचे की संख्याओं को नेगेटिव इन्फिनिटी में बदल दें?
योजना
कोड और पेपर पढ़ना और वीडियो देखना जारी रखें। बस मजा लें और अपनी जिज्ञासा का पालन करें।
https://github.com/karpathy/nanoGPT
https://github.com/jadore801120/attention-is-all-you-need-pytorch