English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

guest
1 / ?
back to lessons

भाषा मॉडल क्या भविष्यवाणी करता है

एक प्रोबेबिलिस्टिक निरंतरता इंजन

एक भाषा मॉडल टोकन की एक श्रृंखला लेता है & अगला टोकन क्या आएगा, इस पर एक प्रायिकता वितरण सौंपता है। इसे the cat sat on the दें & यह पूरे शब्दकोश पर प्रायिकताएँ आउटपुट करता है: mat, floor, couch पर उच्च द्रव्यमान; xylophone, Tuesday पर निम्न द्रव्यमान।


उस वितरण से सैंपलिंग करके, एक टोकन जोड़कर, & इसे वापस फीड करके: वह लूप एक-एक टोकन पर टेक्स्ट उत्पन्न करता है। ऑटोरिग्रेसिव जेनरेशन, नामित इसलिए क्योंकि प्रत्येक चरण अपनी पूर्व आउटपुट पर रिग्रेस करता है।


तीन संख्याएँ एक भाषा मॉडल को परिभाषित करती हैं


शब्दकोश का आकार (V). मॉडल कितने भिन्न टोकन उत्पन्न कर सकता है। ANDREA-12M ने 4,353 टोकन का उपयोग किया; ANDREA-120M 8,449 का उपयोग करता है।


संदर्भ विंडो (T). एक फॉरवर्ड पास में कितने टोकन समा सकते हैं। ANDREA मॉडल T = 1,024 का उपयोग करते हैं।


पैरामीटर की संख्या (P). अंदर कितने सीखे गए वजन रहते हैं। 12M, 120M, & 480M P के आधार पर एक परिवार का नाम रखते हैं।


तीन का परिवार


प्रकारd_modelहेड्सलेयर्ससंदर्भपैरामीटर्स
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

तीन नॉब्स स्केल: d_model (हर आंतरिक वेक्टर की चौड़ाई), n_layer (स्टैक्ड ट्रांसफॉर्मर ब्लॉक्स की गहराई), n_head (समानांतर अटेंशन प्रोजेक्शन्स)। शब्दावली और संदर्भ परिवार में स्थिर रहते हैं।

परिवार तालिका पढ़ना

ANDREA-12M (d_model=384, 6 layers, 12 heads) की तुलना ANDREA-120M (d_model=768, 12 layers, 12 heads) से करें। 12M से 120M तक स्केल होने वाले दो आर्किटेक्चरल अक्षों के नाम बताएं, & एक जो स्थिर रहता है। प्रत्येक स्केलिंग विकल्प के लिए एक वाक्य का कारण सहायक होगा।

छोटे का महत्व क्यों

बाधा के रूप में मुक्ति

सैकड़ों अरबों पैरामीटर्स वाले बड़े भाषा मॉडल्स को हजारों GPUs, मालिकाना डेटासेट्स, और कॉर्पोरेट बजट्स की आवश्यकता होती है। बहुत कम लोग एक को प्रशिक्षित कर पाते हैं। बहुत कम लोग एक को ठीक कर पाते हैं।


एक GPU पर छोटा भाषा मॉडल इसे उलट देता है। कोई भी व्यक्ति जिसके पास 4090 (या 3060) है, ओपन डेटा से ANDREA को पुनरुत्पादित कर सकता है। प्रशिक्षण रेसिपी मॉडल कार्ड के रूप में दोगुनी हो जाती है। ओपन कोड, ओपन वेट्स, ओपन डेटा; 72 घंटों के कम्प्यूट में पूर्ण उत्पत्ति।


क्षमता बनाम गुणवत्ता

छोटे मॉडल्स अपने प्रशिक्षण कॉर्पस को याद नहीं रख सकते। ANDREA-12M, 12.8M पैरामीटर्स के साथ, तथ्यात्मक सामग्री को संग्रहीत करने की क्षमता की कमी है; यह टर्न संरचना, शब्दावली वितरण, और प्रतिक्रिया आकार सीखता है। ANDREA-120M, 10× क्षमता के साथ, तथ्यात्मक स्मरण, बहु-अनुच्छेद सुसंगतता, और डोमेन चौड़ाई सीखता है (बायोलॉजी और सिग्नल-प्रोसेसिंग सैंपल्स पर बाहरी ग्रेडिंग के माध्यम से 9.5/10 पर सत्यापित)।


मुख्य बिंदु: क्षमता एक सीमा निर्धारित करती है। पाठ्यक्रम तय करता है कि क्या यह सीमा प्राप्त हो जाती है। गतिविधियाँ 14-23 पाठ्यक्रम को कवर करती हैं। [TITLE decoder_only/]

ट्रांसफॉर्मर के तीन स्वाद

एनकोडर, डिकोडर, दोनों

मूल ट्रांसफॉर्मर (Vaswani et al., 2017) एक एनकोडर और एक डिकोडर के साथ आया, जो अनुवाद के लिए जोड़े गए थे। तीन वास्तुशिल्प वंशावली उस पेपर से उतरती हैं:


एनकोडर-ओनली (BERT वंशावली)। द्विदिशात्मक ध्यान, कोई कारण मास्क नहीं। वर्गीकरण के लिए अनुकूलित, उत्पन्न करने के लिए नहीं। प्रशिक्षण के दौरान एक टोकन अपना अतीत और भविष्य दोनों देखता है।


एनकोडर-डिकोडर (T5, BART)। एनकोडर इनपुट को पढ़ता है; डिकोडर आउटपुट उत्पन्न करता है, क्रॉस-अटेंशन के माध्यम से एनकोडर पर ध्यान देकर। अनुवाद, सारांशण के लिए उपयोग किया जाता है।


डिकोडर-ओनली (GPT, ANDREA)। कैजुअल मास्क: हर टोकन केवल अपने अतीत को देखता है। अगले टोकन की भविष्यवाणी करने के लिए प्रशिक्षित। पीढ़ी मुफ्त आती है; प्रशिक्षण और इन्फरेंस एक ही फॉरवर्ड पास साझा करते हैं।


एक GPU पर डिकोडर-ओनली क्यों जीतता है

तीन कारण:


1. एकल उद्देश्य। अगले-टोकन भविष्यवाणी किसी भी पाठ पर काम करती है। कोई जोड़ी गई स्रोत/लक्ष्य की आवश्यकता नहीं।

2. प्रशिक्षण और अनुमान सममिति। एक ही आगे पास, कोई विशेष पीढ़ी तर्क नहीं।

3. स्मृति सरलता। कोई क्रॉस-अटेंशन नहीं; एक स्टैक परतें; एक प्रवाह सक्रियण।


ANDREA microGPT से decoder-only विकल्प को विरासत में लेता है, जो nanoGPT से विरासत में लिया गया था, जो GPT-2 से विरासत में लिया गया था। वंशावली मानक बनी रहती है; जो बदलता है वह टोकनाइजेशन, प्रशिक्षण अवसंरचना, और पाठ्यक्रम में रहता है।

ANDREA के लिए केवल डिकोडर क्यों

प्रशिक्षण-डेटा दृष्टिकोण से एक कारण और अनुमान-व्यवहार दृष्टिकोण से एक कारण बताएं कि ANDREA T5 जैसा एन्कोडर-डिकोडर के बजाय केवल डिकोडर ट्रांसफॉर्मर का उपयोग क्यों करता है।

24 GB में क्या फिट होता है

पैरामीटर प्रति बाइट्स

एक RTX 4090 में 24 GB VRAM आता है। ANDREA-12M प्रशिक्षण ने 1.4 GB का उपयोग किया। ANDREA-120M ने काफी अधिक उपयोग किया। यह अंतर एक साधारण लेखा व्यायाम से आता है: प्रशिक्षण के दौरान हर पैरामीटर मेमोरी में कई बार दिखाई देता है।


प्रत्येक पैरामीटर के लिए, प्रशिक्षण रखता है:

- वजन स्वयं (1× वजन)

- Adam पहला क्षण (m): वजन के समान आकार (1× वजन)

- Adam दूसरा क्षण (v): वजन के समान आकार (1× वजन)

- ग्रेडिएंट्स: वजन के समान आकार (1× वजन)

- एक्टिवेशन्स और अस्थायी: ~2-4× वजन (बैच और संदर्भ के साथ भिन्न)


कुल: ~6-8× वजन की संख्या, प्रिसिजन द्वारा निर्धारित बाइट्स में।


प्रिसिजन सब कुछ को गुणा करता है


परिशुद्धताबाइट्स/पैरामीटर120M वेट्स के लिए कुलटिप्पणियाँ
FP324480 MBआधारभूत; सबसे सुरक्षित, सबसे धीमा
FP162240 MBcuBLAS, आधी मेमोरी
FP8 E4M31120 MBटेंसर कोर, NaN जोखिम

पूर्ण प्रशिक्षण-समय फुटप्रिंट के लिए 6-8× से गुणा करें। ANDREA-120M FP16 में आराम से प्रशिक्षित होता है (~2 GB वेट्स + ऑप्टिमाइज़र + ग्रेड्स के लिए); FP8 E4M3 RTX 4090 टेंसर कोर पर प्रशिक्षण समय को आधा कर देता है।


गतिविधि 13 (grow_a_language_model_precision) FP परिशुद्धता के व्यापार-बंदों को विस्तार से समझाती है।

ANDREA-120M के ऑप्टिमाइज़र स्टेट का आकार निर्धारण

ANDREA-120M में ~120,000,000 पैरामीटर हैं। प्रत्येक FP32 वजन 4 बाइट्स घेरता है। AdamW प्रत्येक वजन के लिए दो अतिरिक्त ऑप्टिमाइज़र-स्टेट फ्लोट्स (m, v) स्टोर करता है। गणना करें: (a) केवल FP32 में वजन, MB में; (b) FP32 में वजन + ऑप्टिमाइज़र स्टेट, MB में; (c) FP16 में वजन + ऑप्टिमाइज़र स्टेट, MB में। अपना अंकगणित दिखाएँ।

पच्चीस गतिविधियाँ

दो हिस्से

यह कोर्स स्पष्ट रूप से दो भागों में विभाजित है। पहला हिस्सा microGPT ने क्षेत्र को सिखाया: एक ट्रांसफॉर्मर जो एक GPU पर चलता है। दूसरा हिस्सा ANDREA का वास्तविक योगदान कवर करता है: एक पाठ्यक्रम जो सीखता है।


हिस्सा 1: एक GPU पर ट्रांसफॉर्मर (गतिविधियाँ 2-13)


#गतिविधिबीट
2हैरिस मॉर्फीम टोकनाइज़रवितरणीय विभाजन, 256+N+1 शब्दावली
3टोकनाइज़र-डाइट संरेखणसंतृप्ति बिंदु, क्यों 12M ने 63.6% बर्बाद किया
4एम्बेडिंग्स और स्थितिसीखा टोकन + स्थिति लुकअप
5स्केल्ड डॉट-प्रोडक्ट अटेंशनQ·Kᵀ/√d, कारणिक मास्क, सॉफ्टमैक्स
6मल्टी-हेड अटेंशनहेड विभाजन, समानांतर प्रोजेक्शन
7ट्रांसफॉर्मर ब्लॉकMLP, अवशेष, लेयर नॉर्म
8क्रॉस-एंट्रॉपी और पर्प्लेक्सिटीलॉग-संभावना, SMMA लॉस
9कस्टम CUDA में बैकप्रॉपmicrogpt_cuda.cu में चेन रूल
10AdamWडीकपल्ड वेट डिके; वैनिला एडम क्यों मर गया
11LR वार्मअप + कोसाइन डिके2000-स्टेप रैंप; तत्काल पीक क्यों 120M को नष्ट करता है
12ग्रेडिएंट क्लिपिंगग्लोबल L2 नॉर्म; 3 CUDA कर्नेल
13FP32 / FP16 / FP8 E4M3प्रिसिजन ट्रेडऑफ्स; टेंसर कोर

आधा 2: एक पाठ्यक्रम जो सीखता है (गतिविधियाँ 14-24)


#गतिविधिबीट
14मल्टी-आर्म्ड बैंडिट्सUCB1, अन्वेषण बनाम शोषण
15चरण-आधारित पासा नियंत्रण7/14/21/28/42 चरण, 1d3/1d4 पासे
16पुरस्कार असाइनमेंट और EMAप्रति-स्रोत हानि EMA, 1000× स्केलिंग
17स्रोत फ्लोर और एपॉक दंड1/(1+epochs) स्मरणीकरण रोकता है
18कवरेज बोनसदस्तावेज़-स्तरीय ट्रैकिंग, 1.3× ताजगी
19पाठ्यक्रम वार्मअपपहले 20K चरणों में 7 चैट/गद्य स्रोत

| 20 | आकार से फिल्टरिंग, न कि अक्षरों से | has_system_prompt_shape()

| 21 | सुसंगतता-गेटेड प्रारंभिक रोकना | बिग्राम/ट्रिग्राम/शब्द/अक्षर ऑटो-रोक |

| 22 | चेकपॉइंट, पुनरारंभ, संकेत | प्रारूप, SIGTERM/SIGUSR1, loss.json निरंतरता |

| 23 | नमूना ऑडिट और बाहरी ग्रेडिंग | एक रन पढ़ना, 9.5/10 क्षेत्र |

| 24 | माइक्रोGPT से ANDREA-120M तक | v1 पतन, v2 सुधार, v2.5 पैच, v3 पॉलिश |


इसके साथ एक साथी: geometry_of_andrea हर लेयर को ज्यामिति के रूप में देखता है (एम्बेडिंग स्पेस, ध्यान को प्रोजेक्शन के रूप में, लॉस सरफेस, बैंडिट को विवेकपूर्ण सिम्प्लेक्स पर एक वॉक के रूप में)।


सुझाया गया क्रम

गतिविधियाँ 2-13 एक कार्यशील ट्रांसफॉर्मर बनाती हैं। यदि आपने पहले ट्रांसफॉर्मर ट्रेन किए हैं तो आधे भाग 2 पर आगे बढ़ें; जिज्ञासा जागने पर वापस आएँ।


जहाँ संभव हो, प्रत्येक गतिविधि स्वतंत्र रूप से खड़ी है। Math beats संदर्भ पहले की गतिविधियों को नाम से संदर्भित करता है (see activity 5: scaled dot-product attention)। कोड संदर्भ microgpt/microgpt_cuda.cu और microgpt/training_proxy.py को ~/git/uncloseai-cli/ में इंगित करते हैं।

आप कहाँ से शुरू करेंगे?

24 गतिविधियों + ज्यामिति साथी को देखते हुए, एक गतिविधि का नाम बताएँ जिसे आप शुरू करना चाहते हैं & एक कारण: पूर्व ज्ञान अंतर, व्यावसायिक प्रासंगिकता, या शुद्ध जिज्ञासा। कोई गलत उत्तर नहीं है; कोर्स के माध्यम से का मार्ग आपका है।