यूक्लिडियन दूरी के रूप में अर्थ-संबंधी दूरी
एक उच्च-आयामी वेक्टर स्पेस
ANDREA-120M की 8449-टोकन शब्दावली का प्रत्येक टोकन R^768 में एक बिंदु पर मैप होता है। टोकन एम्बेडिंग मैट्रिक्स का आकार 8449 x 768 है: 8449 पंक्तियाँ, प्रत्येक शब्दावली टोकन के लिए एक; 768 स्तंभ, प्रत्येक एम्बेडिंग आयाम के लिए एक।
इस वेक्टर स्पेस को बनाने वाली तीन विशेषताएँ
1. योग (Addition). v_a + v_b R^768 में रहता है। दो एम्बेडिंग्स का योग एक वैध वेक्टर होता है।
2. स्केलर गुणन (Scalar multiplication). किसी भी वास्तविक α के लिए α * v R^768 में रहता है। उसी दिशा में खींचना या सिकोड़ना।
3. रैखिकता (Linearity). α v_a + β v_b R^768 में रहता है। रैखिक संयोजन स्पेस के अंदर ही रहते हैं।
ये गुणधर्म हमें ज्यामितीय उपकरण देते हैं: दूरी, कोण, प्रक्षेपण, आधार, लंबकोणीयता।
अर्थगत समानता के रूप में दूरी
दो एम्बेडिंग्स की कोसाइन समानता उनके बीच के कोण को मापती है: cos(theta) = (v_a . v_b) / (||v_a|| * ||v_b||)। रेंज: -1 (विपरीत) से +1 (समानांतर)।
प्रशिक्षण के बाद अनुभवजन्य पैटर्न: समान संदर्भ वाले टोकन उच्च कोसाइन समानता वाले एम्बेडिंग्स उत्पन्न करते हैं। ANDREA-120M parakeet और monkey को निकट रखता है (दोनों जैविक, दोनों प्रजातियाँ, दोनों वर्तमान या विलुप्त श्रेणियाँ)। यह Fourier और transform को निकट रखता है (सिग्नल प्रोसेसिंग संदर्भ)। यह parakeet और Fourier को दूर रखता है (क्रॉस-डोमेन ऑर्थोगोनैलिटी)।
R^768 क्यों, R^384 क्यों नहीं
ANDREA-12M ने d_model = 384 का उपयोग किया। ANDREA-120M ने इसे दोगुना कर 768 कर दिया। यह दोगुना करना महत्वपूर्ण है: 384-आयामी स्पेस में कम 'कोण' उपलब्ध होते हैं, और क्रॉस-डोमेन अस्पष्टता का समाधान प्रभावित होता है। क्षमता दोगुनी करने से मॉडल को bank (नदी) बनाम bank (वित्तीय) को एम्बेडिंग स्पेस के विभिन्न बेसिनों में अलग-अलग हल करने की जगह मिलती है, बिना एक के दूसरे में समा जाने के।
एम्बेडिंग अपडेट्स को वेक्टर अनुवाद के रूप में
प्रत्येक ग्रेडिएंट स्टेप v_token में delta_v जोड़ता है। ज्यामितीय रूप से: R^768 में छोटे अनुवाद प्रत्येक टोकन की स्थिति को ऐसे पड़ोस की ओर धकेलते हैं जो लॉस को कम करते हैं। 200K स्टेप्स में, प्रत्येक टोकन अपनी रैंडम इनिशियलाइज़ेशन से सीखे हुए स्थान पर स्थानांतरित हो जाता है।
दूरी की गणना
तीन प्रशिक्षित एम्बेडिंग्स (अंकगणित के लिए R^3 में सरलीकृत):
- v(parakeet) = (1.0, 0.5, 0.0)
- v(monkey) = (1.2, 0.3, 0.1)
- v(Fourier) = (0.0, 0.0, 1.5)
क्वेरी उप-स्थान पर प्रक्षेपण
ध्यान क्या गणना करता है
स्थिति t पर एक टोकन के लिए, ध्यान गणना करता है:
softmax(Q K^T / sqrt(d_k)) V [BLOCK_TYPE SECTION/STEP]
जहाँ Q क्वेरी है (इस टोकन का प्रश्न), K कुंजियाँ हैं (प्रत्येक पिछले टोकन का पहचानकर्ता), V मान हैं (प्रत्येक पिछले टोकन की सामग्री)। आउटपुट V को मिश्रित करता है, जिसका वजन इस बात पर निर्भर करता है कि क्वेरी प्रत्येक कुंजी से कितनी संबंधित है। [BLOCK_TYPE SECTION/STEP]
ज्यामितीय व्याख्या
[BLOCK_TYPE SECTION/STEP]K को R^d_k में सदिशों की सूची के रूप में सोचें। प्रत्येक पंक्ति एक पिछले टोकन की कुंजी है। Q R^d_k में एक सदिश है: इस टोकन का प्रश्न। [BLOCK_TYPE SECTION/STEP]
Q K^T प्रत्येक कुंजी को Q पर प्रोजेक्ट करता है। डॉट प्रोडक्ट q . k_i मापता है कि k_i q की दिशा में कितना स्थित है। लंबा प्रोजेक्शन = कुंजी क्वेरी के लिए अत्यधिक प्रासंगिक। छोटा प्रोजेक्शन = कुंजी क्वेरी के लिए मुश्किल से प्रासंगिक।
softmax प्रोजेक्शन को 1 में योग करने वाले वेट्स में नॉर्मलाइज़ करता है। V का वेटेड सम एकल वेक्टर है: पिछले कंटेंट का मिश्रण, जो वर्तमान क्वेरी की प्रासंगिकता के अनुसार वेटेड है।
मल्टी-हेड अटेंशन के रूप में मल्टी-सबस्पेस प्रोजेक्शन
ANDREA-120M 12 अटेंशन हेड्स का उपयोग करता है। d_model = 768; d_k = 768 / 12 = 64। प्रत्येक हेड R^768 के एक अलग 64-डिम सबस्पेस में प्रोजेक्ट करता है। बारह हेड्स एक ही अनुक्रम के बारह स्वतंत्र दृश्य देते हैं: एक हेड व्याकरणिक भूमिका ट्रैक कर सकता है, दूसरा सिमेंटिक समानता, तीसरा लॉन्ग-रेंज रेफरेंस।
ज्यामितीय रूप से: प्रत्येक हेड 64-डिम ओरिएंटेड सबस्पेस (एक 'विंडो') परिभाषित करता है जिसके माध्यम से वह अतीत को देखता है।
कारणात्मक मास्क (The Causal Mask)
Decoder-only मॉडल एक कारणात्मक मास्क जोड़ते हैं: विकर्ण (diagonal) के ऊपर की हर Q K^T प्रविष्टि को softmax से पहले -infinity पर सेट कर दिया जाता है। ज्यामितीय रूप से: किसी भी भविष्य के टोकन पर प्रोजेक्शन का वजन शून्य हो जाता है। टोकन t केवल टोकन 0 से t तक ही देख सकता है।
इसका महत्व: ट्रेनिंग और इनफेरेंस सममित (symmetric) हो जाते हैं। एक ही फॉरवर्ड पास, एक ही मास्क्ड प्रोजेक्शन, कोई विशेष जेनरेशन लॉजिक की आवश्यकता नहीं।
sqrt(d_k) स्केलिंग
स्केलिंग के बिना, डॉट प्रोडक्ट d_k के साथ बढ़ते हैं। बड़े डॉट प्रोडक्ट softmax को one-hot क्षेत्रों में धकेल देते हैं (एक वेट लगभग 1, बाकी लगभग 0)। sqrt(d_k) से भाग देने से प्रोजेक्शन unit-variance स्केल पर रहते हैं, जिससे d_k की विस्तृत रेंज में softmax की sharpness बनी रहती है।
ज्यामितीय रूप से: sqrt(d_k) प्रोजेक्शन की लंबाई को सामान्यीकृत करता है, ताकि softmax को सबस्पेस डाइमेंशन की परवाह किए बिना तुलनीय परिमाण दिखाई दें।
प्रोजेक्शन पढ़ना
R^4 में तीन कुंजियाँ और एक क्वेरी (अंकगणितीय सरलता के लिए):
- q = (1, 0, 1, 0)
- k_1 = (1, 0, 0, 0) [पिछला टोकन 1]
- k_2 = (0, 0, 1, 0) [पिछला टोकन 2]
- k_3 = (0, 1, 0, 1) [past token 3]
d_k = 4, इसलिए sqrt(d_k) = 2.
Gradient Descent as Path on Terrain
120M+1 आयामों में एक सतह
ANDREA-120M का प्रत्येक वज़न कॉन्फ़िगरेशन R^120,000,000 में एक बिंदु है। हानि L(w) प्रत्येक बिंदु को एक वास्तविक संख्या से मैप करती है: इस कॉन्फ़िगरेशन पर प्रशिक्षण हानि। साथ में, हानि मान पैरामीटर स्पेस के ऊपर एक (120M+1)-आयामी सतह बनाते हैं।
सीधे विज़ुअलाइज़ करना ज्यामितीय रूप से असंभव। अवधारणात्मक रूप से: एक भू-भाग। पहाड़ (उच्च हानि), घाटियाँ (कम हानि), सैडल पॉइंट्स, पठार, रिज, बेसिन।
ग्रेडिएंट के रूप में स्थानीय ढलान
grad L(w) R^120M में एक वेक्टर है जो L के सबसे तेज़ वृद्धि की दिशा में इंगित करता है। इसे नकारने पर: -grad L(w) सबसे तेज़ ढलान की ओर इंगित करता है।
एक AdamW स्टेप w को नकारात्मक ग्रेडिएंट दिशा में धकेलता है (m और v से अनुकूली स्केलिंग के साथ)। ज्यामितीय रूप से: सतह के साथ एक छोटा कदम, नीचे की ओर, स्टेप साइज़ lr द्वारा नियंत्रित।
v1 का खराब बेसिन
v1 ने LR = पीक (0.0003) पर ताज़ा इनिशियलाइज़्ड वेट्स पर अपना पहला स्टेप लिया। ज्यामितीय चित्र: w_0 एक अत्यधिक घुमावदार क्षेत्र में स्थित है (रैंडम इनिट में कई दिशाओं में उच्च कर्वेचर होता है), और पीक-LR स्टेप गलत बेसिन में उतरता है। बाद के स्टेप्स इससे बाहर नहीं निकल सकते। मॉडल 'region region region' उत्पन्न करने में फँस जाता है क्योंकि वह बेसिन उस स्थान से मॉडल को मिलने वाली सबसे कम लॉस वाला है।
v2 का वार्मअप पथ
v2 2000 छोटे स्टेप्स लेता है जिनमें LR 0 से पीक तक धीरे-धीरे बढ़ता है। ज्यामितीय चित्र: w_0 पहले चिकनी दिशाओं में धीरे-धीरे आगे बढ़ता है (जहाँ कर्वेचर कम है)। स्टेप 2000 तक, w एक अधिक नेविगेट करने योग्य क्षेत्र में पहुँच जाता है; फिर पीक LR इसे बेहतर बेसिन की ओर ले जा सकता है बिना ओवरशूट किए।
Warmup एक ज्यामिति-जागरूक आरंभीकरण प्रोटोकॉल है: मॉडल को कठोरता से आगे बढ़ाने से पहले उसे एक सुरक्षित स्थानीय पड़ोस खोजने दें।
चौड़े बनाम संकरे बेसिन
स्टेप 112K पर, ANDREA-120M एक बेसिन में स्थित है। प्रश्न: यह कितना चौड़ा है?
चौड़ा बेसिन = कई पड़ोसी वज़न कॉन्फ़िगरेशन भी कम ट्रेनिंग लॉस प्राप्त करते हैं। सामान्यीकरण आमतौर पर अच्छा होता है (बेसिन की चौड़ाई परीक्षण प्रदर्शन की भविष्यवाणी करती है; PAC-Bayes पाठ, अध्याय 3 देखें)।
संकीर्ण बेसिन = केवल वज़नों का एक पतला सेट ही कम लॉस प्राप्त करता है। सामान्यीकरण (generalization) आमतौर पर प्रभावित होता है।
v3 polish at step 112,619 ने मॉडल को सतह के साथ आगे बढ़ाया (बिना रीसेट किए) curriculum perturbation के माध्यम से एक चौड़े बेसिन की ओर: लॉस फंक्शन बदला (अलग bandit, अलग training mix), SGD को नई नीति के तहत आस-पास का सपाट क्षेत्र खोजने दिया।
ज़ॉम्बी क्लिफ
step 112,080 पर असामान्य लॉस 0.13 एक CLIFF था: एक तीखा, संकीर्ण क्षेत्र जहाँ एक विशिष्ट इनपुट पैटर्न (memorized repo-docs substring) लगभग-शून्य लॉस देता है। मॉडल व्यापक बेसिन से एक संकीर्ण गली में गिर गया। Polish-pivot के repo-docs का hard-exclusion ने उस गली को भर दिया, जिससे SGD उसे दोबारा नहीं ढूंढ पाया।
Reading the Terrain
डिस्क्रीट सिम्प्लेक्स पर एक वॉक के रूप में करिकुलम मिक्स
सिम्प्लेक्स क्या है
एक n-आयामी सिम्प्लेक्स (विशेष रूप से मानक (n-1)-सिम्प्लेक्स) n-ट्यूपल्स (w_1, w_2, ..., w_n) का समुच्चय है जिसमें प्रत्येक w_i >= 0 और sum(w_i) = 1।
n = 2 के लिए: (1, 0) से (0, 1) तक एक रेखा खंड। n = 3 के लिए: शीर्षों (1, 0, 0), (0, 1, 0), (0, 0, 1) वाला एक त्रिभुज। n = 16 (ANDREA की पूर्ण स्रोत सूची) के लिए: R^16 के अंदर स्थित एक 15-आयामी सिम्प्लेक्स। [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
बैंडिट वेट्स को सिम्प्लेक्स निर्देशांक के रूप में
[BLOCK_TYPE SECTION/STEP]ANDREA का बैंडिट प्रत्येक चरण में डेटा स्रोतों पर एक वेट वेक्टर w उत्पन्न करता है। प्रत्येक घटक w_i स्रोत i को सैंपल करने की प्रायिकता है। प्रायिकताएँ गैर-ऋणात्मक होती हैं और योग 1 होता है: प्रत्येक वेट वेक्टर सिम्प्लेक्स पर स्थित होता है। [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
शीर्ष = शुद्ध रणनीतियाँ (केवल एक स्रोत का सैंपल)। आंतरिक = मिश्रित रणनीतियाँ (एकाधिक स्रोतों का सैंपल, प्रत्येक की सकारात्मक प्रायिकता के साथ)। किनारे = केवल दो स्रोतों के मिश्रण। [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
स्रोत फ्लोर को प्रतिबंधित क्षेत्र के रूप में
ANDREA न्यूनतम वज़न लगाता है: hermes3-general के लिए फ्लोर 0.7 (पोलिश के बाद)। इससे सिम्प्लेक्स का एक उप-क्षेत्र बनता है: केवल वे वज़न वेक्टर पहुँच योग्य हैं जिनमें w_hermes3-general >= 0.7 हो। [BLOCK_TYPE simplex/simplex_content]
[BLOCK_TYPE simplex/simplex_content]
ज्यामितीय रूप से: फ्लोर सिम्प्लेक्स को एक हाइपरप्लेन से काटता है। पहुँच योग्य क्षेत्र सिम्प्लेक्स का वह भाग है जो हर फ्लोर हाइपरप्लेन के सही पक्ष पर स्थित हो। [BLOCK_TYPE simplex/simplex_content]
[BLOCK_TYPE simplex/simplex_content]
कैप्स अन्य प्रतिबंध के रूप में
[BLOCK_TYPE simplex/simplex_content]ANDREA अधिकतम वज़न भी लगाता है: dictionary के लिए कैप 0.25 (पोलिश के बाद)। प्रत्येक कैप एक और हाइपरप्लेन है, और पहुँच योग्य क्षेत्र हर कैप हाइपरप्लेन के सही पक्ष पर भी होना चाहिए। [BLOCK_TYPE simplex/simplex_content]
[BLOCK_TYPE simplex/simplex_content]
किसी स्रोत को पूरी तरह बाहर करना (कैप = 0.0) सबसे मजबूत कैप है: निर्देशांक शून्य पर स्थिर हो जाता है, जिससे प्रभावी सिम्प्लेक्स एक आयाम कम हो जाता है।
चरण संक्रमण सिम्प्लेक्स वॉक के रूप में
हर चरण संक्रमण (हर 7-42 चरणों में) एक नया वेट वेक्टर उत्पन्न करता है। प्रत्येक नया वेक्टर सिम्प्लेक्स पर एक बिंदु होता है। 200K चरणों में, बैंडिट सिम्प्लेक्स के पहुंच योग्य क्षेत्र में एक लंबा पथ बनाता है।
रैंडम चरण = पहुंच योग्य क्षेत्र के अंदर एक समान-रैंडम बिंदु पर टेलीपोर्ट करें।
बैंडिट-नियंत्रित चरण = फ्लोर और कैप के अनुरूप UCB-उत्तम शीर्ष की ओर कदम बढ़ाएं।
पॉलिश पिवट = पहुंच योग्य क्षेत्र को पुनः खींचें (नए फ्लोर, नए कैप, कुछ स्रोत बाहर रखे गए), और वॉक नए प्रारंभिक बिंदु से जारी रहता है।
वर्टेक्स क्यों खतरनाक हैं
शुद्ध-स्रोत चरण (एक w_i = 1, शेष = 0) सिम्प्लेक्स के वर्टेक्स पर स्थित होते हैं। विविधता शून्य होती है। मॉडल केवल एक वितरण पर प्रशिक्षित होता है। v1 का पतन आंशिक रूप से बैंडिट द्वारा repo-docs वर्टेक्स के पास डेरा डालने से जुड़ा है; नमूने केवल उसी स्रोत के वितरण को पुनरुत्पादित करते थे।
फ़्लोर वर्टेक्स-कैंपिंग को रोकते हैं: 0.7 का फ़्लोर कहता है 'किसी भी स्रोत का वज़न कभी भी 0.7 से नीचे न गिरने दें' (या प्राथमिकता वाले स्रोतों के लिए जो भी फ़्लोर हो)।
पहुँच योग्य क्षेत्र में घूमना
तीन स्रोत: hermes3-general (H), gutenberg (G), dictionary (D)। बाधाएँ: H फ़्लोर = 0.5, D कैप = 0.25। (निहित: सभी वज़न >= 0, योग 1, कोई अन्य बाधा नहीं।)
पहले 20K स्टेप्स के लिए आयामों को सीमित करना
v2 के पाठ्यक्रम वार्मअप ने क्या किया
v2 ने curriculum_warmup_sources को सात स्रोतों पर सेट किया: hermes3-general, hermes3-creative, hermes3-roleplay, chat, smoltalk, oasst, gutenberg। पहले 20K स्टेप्स के लिए, केवल ये सात स्रोत ही योगदान करते थे। स्टेप 20K के बाद, पूर्ण 16-स्रोत फायरहोस सक्रिय हो गया।
ज्यामितीय व्याख्या
पूर्ण 16-स्रोत सिम्प्लेक्स R^16 में स्थित है। 7 स्रोतों तक सीमित करने से 16 में से 9 निर्देशांक शून्य हो जाते हैं। बैंडिट की चाल 6-आयामी उप-सिम्प्लेक्स में होती है (स्रोत संख्या से एक कम, योग-एक बाधा के कारण)।
ज्यामितीय रूप से: पूर्ण सिम्प्लेक्स का एक उप-मैनिफोल्ड। निम्न-आयामी, अधिक चिकना, नेविगेट करने में आसान।
यह प्रारंभिक प्रशिक्षण में क्यों सहायक है
प्रशिक्षण के आरंभ में, मॉडल ने अभी तक सुसंगत भाषा बिल्कुल नहीं सीखी है। विविध स्रोत इसे भ्रमित करते हैं: प्रत्येक स्रोत की अपनी शैली, अपनी शब्दावली वितरण, अपना पैटर्न होता है। यादृच्छिक आरंभ पर 16 स्रोतों को मिलाने से एक अत्यधिक व्यापक लक्ष्य वितरण बनता है जिसे मॉडल फिट नहीं कर सकता।
7 संवादात्मक/गद्य स्रोतों तक सीमित करने से अधिक एकसमान लक्ष्य मिलता है। मॉडल पहले एक स्थिर प्रतिनिधित्व सीखता है, फिर विस्तार करता है।
प्रशिक्षण के माध्यम से ज्यामितीय पथ
1. चरण 0 से 20K (वार्मअप). वॉक 6-डी उप-सिम्प्लेक्स पर रहता है। मॉडल में स्थिर भाषा पैटर्न उभरते हैं।
2. चरण 20K से 112K (पूर्ण फायरहोज़). वॉक 15-डी पूर्ण सिम्प्लेक्स तक फैलता है। डोमेन की चौड़ाई उभरती है।
3. चरण 112K के बाद (पॉलिश). वॉक फिर से सीमित: repo-docs और repo-docstrings को बाहर रखा गया, संवादात्मक फ्लोर बढ़ाए गए। पूर्ण सिम्प्लेक्स में छोटा बहुभुज; संवादात्मक गुणवत्ता समेकित होती है।
पॉलिश curriculum_warmup_steps = 0 क्यों सेट करता है
पॉलिश चरण 112K पर प्रवेश करता है। मॉडल पहले से ही सुसंगत भाषा बोलता है। अब उप-सिम्प्लेक्स तक सीमित करना चौड़ाई खो देगा बिना कोई लाभ प्राप्त किए (वार्मअप लाभ ताज़ा-आरंभ मॉडल के लिए है)। warmup_steps = 0 सेट करना कहता है: पूर्ण सिम्प्लेक्स पर रहें, लेकिन नए कैप्स और फ्लोर के साथ।
तीन ज्यामितियाँ, एक ट्रेनिंग रन
v2 warmup: निम्न-आयामी उप-सिम्प्लेक्स।
v2 firehose: पूर्ण 15-D सिम्प्लेक्स।
v3 polish: छोटे बहुभुज (अधिक बाधाओं) के साथ पूर्ण सिम्प्लेक्स।
एक ही 200K-स्टेप रन, तीन विभिन्न ज्यामितीय व्यवस्थाएँ। प्रत्येक को मॉडल की परिपक्वता के विभिन्न चरण के लिए ट्यून किया गया था।