मॉडल को कितना आश्चर्य होना चाहिए?
लॉगिट्स से प्रोबेबिलिटीज तक
12 ट्रांसफॉर्मर ब्लॉक्स के बाद, ANDREA-120M प्रत्येक टोकन स्थिति के लिए vocab_size संख्याओं का वेक्टर उत्पन्न करता है: लॉगिट्स। ANDREA-120M के लिए, vocab_size = 8449, इसलिए हर स्थिति 8449 लॉगिट्स आउटपुट करती है। लॉगिट्स अननॉर्मलाइज्ड स्कोर हैं; कुछ धनात्मक, कुछ ऋणात्मक, 1 तक योग करने की कोई बाध्यता नहीं।
सॉफ्टमैक्स लॉजिट्स को प्रायिकता वितरण में बदल देता है:
p_i = exp(logit_i) / sum_j exp(logit_j)
सॉफ्टमैक्स के बाद, सभी 8449 संख्याएँ 0 और 1 के बीच होती हैं, और उनका योग 1 होता है। मॉडल हर संभावित अगले टोकन को प्रायिकता आवंटित करता है।
क्रॉस-एंट्रॉपी लॉस
प्रशिक्षण के लिए एक लॉस फंक्शन की आवश्यकता होती है: एक संख्या जो मॉडल की भविष्यवाणी कितनी गलत थी, दिए गए सही उत्तर के लिए मापती है। क्रॉस-एंट्रॉपी भाषा मॉडलिंग के लिए काम करता है:
loss_t = -log(p_correct_token_t)
मॉडल की वास्तविक अगले टोकन (ट्रेनिंग डेटा में मौजूद वाले) के लिए भविष्यवाणी की गई प्रायिकता लें। उस प्रायिकता का ऋणात्मक लॉग लें। यही एक स्थिति के लिए लॉस है।
ऋणात्मक लॉग क्यों
तीन गुण -log(p) को एक प्राकृतिक लॉस फंक्शन बनाते हैं:
- -log(1) = 0: जब मॉडल सही टोकन को 100% विश्वास के साथ भविष्यवाणी करता है, तो लॉस शून्य होता है।
- -log(0) = ∞: जब मॉडल सही टोकन को शून्य प्रायिकता देता है, तो लॉस अनंत होता है। (व्यवहार में, सॉफ्टमैक्स कभी ठीक 0 आउटपुट नहीं करता; लॉस सीमित लेकिन बड़ा रहता है।)
- एकसमान अवरोही: जैसे ही सही टोकन के लिए भविष्यवाणी की गई प्रायिकता बढ़ती है, लॉस सुचारू रूप से घटता है।
सही उत्तर पर उच्च विश्वास = कम हानि। प्रशिक्षण उद्देश्य सरल है: वास्तविक अगले टोकन के लिए भविष्यवाणी की गई संभावना को अधिकतम करें।
प्रति-सीक्वेंस हानि
ANDREA 1024 की लंबाई वाली सीक्वेंस पर प्रशिक्षित होता है (संदर्भ विंडो)। प्रत्येक सीक्वेंस 1024 अगले-टोकन भविष्यवाणियाँ उत्पन्न करती है। सीक्वेंस हानि सभी स्थानों पर औसत लेती है:
```
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
```
फिर अनुक्रम हानियाँ बैच के पार औसत ली जाती हैं (ANDREA-120M batch_size = 8 का उपयोग करता है)। प्रति प्रशिक्षण चरण एक स्केलर संख्या। वह संख्या ही हानि वक्र प्लॉट करता है।
एक स्थिति के लिए हानि की गणना
Perplexity = exp(loss)
एक अधिक सरल स्केल
लॉस मान जैसे 2.0 या 3.43 तुरंत यह नहीं बताते कि मॉडल क्या कर सकता है। Perplexity लॉस को एक अधिक सहज स्केल पर अनुवाद करता है:
perplexity = exp(loss)
Perplexity एक साफ़ सवाल का जवाब देता है: मॉडल कितने समान रूप से संभावित टोकनों में से प्रभावी रूप से चुनता है? Perplexity का मान 7 होने का मतलब है कि मॉडल हर स्थिति पर 7 संभावित अगले टोकनों में से चुनने का व्यवहार करता है। Perplexity का मान 1 होने का मतलब है सही भविष्यवाणी।
सामान्य Loss-Perplexity जोड़ियाँ
| Loss | Perplexity | यह कैसा लगता है |
|---|---|---|
| 0.0 | 1.0 | सही भविष्यवाणी |
| 1.0 | 2.7 | ~3 संभाव्य टोकनों में से चयन करना |
| 2.0 | 7.4 | ANDREA-12M अंतिम SMMA क्षेत्र |
| 3.0 | 20.1 | उचित पाठ लेकिन अनिश्चित |
| 3.43 | 30.9 | ANDREA-120M v1 न्यूनतम (पॉलिश से पहले) |
| 5.0 | 148 | प्रारंभिक प्रशिक्षण, शब्दकोश वितरण सीखना |
| 9.04 | 8449 | ANDREA-120M के शब्दकोश के लिए यादृच्छिक-संयोग आधाररेखा |
Perplexity हानि मानों को संदर्भ में रखता है: 2.0 की हानि का अर्थ है कि मॉडल प्रभावी रूप से ~7 टोकनों में से चुनता है, 8449 में से नहीं।
रैंडम-चांस बेसलाइन
एक मॉडल जो कुछ नहीं जानता & समान रूप से अनुमान लगाता है, हर टोकन को 1/V प्रायिकता आवंटित करता है, जहाँ V = vocab_size:
p_uniform = 1 / V
loss = -log(1/V) = log(V)
ANDREA-120M के लिए V = 8449 के साथ:
loss_uniform = ln(8449) ≈ 9.04
ANDREA-12M के लिए V = 2305 के साथ:
loss_uniform = ln(2305) ≈ 7.74
इस बेसलाइन से ऊपर का कोई भी लॉस यह दर्शाता है कि मॉडल रैंडम से भी खराब प्रदर्शन कर रहा है। इससे नीचे का कोई भी लॉस यह दर्शाता है कि मॉडल ने कुछ सीख लिया है: यह यूनिफॉर्म की तुलना में टोकन्स के एक छोटे सबसेट पर प्रॉबेबिलिटी मास को केंद्रित करता है।
एक लॉस वैल्यू पढ़ना
चरण-स्तरीय शोर को स्मूथ करना
कच्ची हानि शोरयुक्त है
प्रति-चरण हानि इधर-उधर उछलती रहती है। ANDREA का बैंडिट हर 7-42 चरणों में एक अलग स्रोत चुनता है; कुछ स्रोत (शब्दकोश परिभाषाएँ) आसान हानियाँ उत्पन्न करते हैं; अन्य (gutenberg पैराग्राफ) कठिन हानियाँ उत्पन्न करते हैं। कच्ची चरण हानि को चरण संख्या के विरुद्ध प्लॉट करने से एक अराजक बिखराव प्राप्त होता है।
स्मूथ्ड मॉडिफाइड मूविंग एवरेज (SMMA) शोर को दबाता है और ट्रेंड को प्रकट करता है। ANDREA का ट्रेनिंग प्रॉक्सी SMMA को इस प्रकार गणना करता है:
SMMA[0] = loss[0]
SMMA[t] = (SMMA[t-1] * (N-1) + loss[t]) / N
N = 100 (ANDREA का डिफ़ॉल्ट स्मूथिंग विंडो) के साथ, प्रत्येक नया SMMA मान पिछले SMMA का 99% नए स्टेप लॉस के 1% के साथ मिलाता है। अचानक स्पाइक्स अवशोषित हो जाते हैं; निरंतर बदलाव धीरे-धीरे दिखाई देते हैं।
केवल औसत क्यों नहीं?
पिछले 100 स्टेप्स पर साधारण मूविंग एवरेज के लिए 100 लॉस वैल्यू स्टोर करने की जरूरत होती है। SMMA एक वैल्यू (रनिंग एवरेज) और एक कांस्टेंट (विंडो साइज) स्टोर करता है। मेमोरी-सस्ता, कम्प्यूटेशनली तुच्छ, और इतना स्मूथ कि कर्व पढ़ा जा सके।
विभिन्न स्मूथिंग वेट्स अलग-अलग सवालों का जवाब देते हैं:
- N = 10: शॉर्ट-टर्म बदलाव ट्रैक करता है; फेज ट्रांजिशन्स के दौरान उपयोगी
- N = 100: ANDREA का डिफ़ॉल्ट; मीडियम-टर्म प्रोग्रेस ट्रैक करता है
- N = 1000: केवल दीर्घकालिक ट्रेंड; प्रशिक्षण के अंत में उपयोगी
ANDREA क्या ट्रैक करता है
हर 100 स्टेप्स पर, ट्रेनिंग प्रॉक्सी loss.json लिखता है जिसमें वर्तमान SMMA, कच्चा लॉस, स्टेप नंबर, और प्रति-सोर्स ब्रेकडाउन होता है। training.ai.unturf.com/dashboard पर डैशबोर्ड हर 10 सेकंड में इस फाइल को पोल करता है। बाहरी दर्शक लाइव प्रगति देखते हैं; डैशबोर्ड रीड-ओनली है।
ANDREA-12M का वास्तविक कर्व
वह रेसिपी जो SMMA 2.0 तक पहुँची
| स्टेप्स | औसत लॉस | नोट्स |
|---|---|---|
| 0--2.5K | 4.50 | रैंडम प्रारंभिक अवस्था, प्रारंभिक शिक्षा |
| 2.5K--5K | 3.88 | संरचना चरण के माध्यम से तेजी से कमी |
| 5K--10K | 3.30 | सुसंगतता सीमा की ओर अग्रसर |
| 10K--20K | 2.80 | बैंडिट इष्टतम मिश्रण खोज रहा है |
| 20K--25K | 2.40 | स्थिर अवस्था --- डेटा की कमी |
| 25K--30K | 2.50 | हर्मीस डेटा प्रविष्ट + LR पुनः आरंभ |
| 30K--35K | 2.35 | हर्मीस एकीकृत, नई न्यूनतम सीमाएँ |
| 35K--40K | 2.10 | 4-आर्म फोकस, तीव्र अवरोहण |
| 40K--43.6K | 2.00 | ज्ञान क्षेत्र, SMMA 2.0 से नीचे |
तीन चरण प्रमुख हैं:
1. तीव्र प्रारंभिक अवरोहण (0-10K). लॉस 4.50 से 3.30 तक गिरता है क्योंकि मॉडल शब्दावली वितरण और बुनियादी टर्न संरचना सीखता है। रैंडम-चांस बेसलाइन ln(2305) ≈ 7.74 इस वक्र से काफी ऊपर है; एम्बेडिंग्स स्थिर होने के बाद मॉडल संभाव्यता द्रव्यमान को जल्दी केंद्रित करता है।
2. पठार (20K-25K). लॉस 2.40 पर रुक जाता है। बैंडिट को अपने वर्तमान स्रोत मिश्रण पर हेडरूम खत्म हो गया था। स्टेप 25K पर हर्मीस डेटा जोड़ा गया, प्लस LR वार्म रीस्टार्ट ने पठार तोड़ा।
3. अंतिम अवरोहण (35K-43.6K). पाठ्यक्रम को 16 स्रोतों से 4 तक संकुचित किया गया (hermes3-general + dictionary + gutenberg + chat)। पूर्ण-आर्म बैंडिट की तुलना में अधिक तीव्र हानि में कमी। अंतिम SMMA: 2.0।
ANDREA-120M v1: एक चेतावनीपूर्ण वक्र
एक ही शब्दावली गणना: ln(8449) ≈ 9.04। ANDREA-120M v1 ने चरण 110K पर SMMA 3.43 प्राप्त किया (इसका न्यूनतम), फिर विचलित हो गया:
| चरण | EMA हानि | प्रवृत्ति |
|---|---|---|
| 26K--40K | 4.29 | अभिसरण हो रहा |
| 70K--85K | 3.60 | सर्वश्रेष्ठ क्षेत्र |
| 85K--110K | 3.43 | न्यूनतम |
| 110K--125K | 3.54 | विचलन हो रहा |
| 140K--155K | 4.05 | विचलन हो रहा |
| 155K--165K | 4.54 | ढह गया |
पूरी तरह से संख्यात्मक रूप से उचित लॉस मान (3.43 रैंडम बेसलाइन 9.04 से काफी नीचे है)। लेकिन सैंपल दोहराव पतन थे: Budy Budy Budy Budy। लॉस ने भ्रामक कहानी बताई; सैंपल ऑडिट ने नहीं।
v2 का coherence-gated early stopping (activity 78) एक समानांतर सिग्नल जोड़ा: bigram diversity, trigram diversity, English word presence, character diversity। जब चारों स्कोर 5 लगातार सैंपलों के लिए 30 से नीचे रहते हैं, तो ट्रेनिंग स्वचालित रूप से रुक जाती है। यह सिग्नल v1 को step 132K पर पकड़ लेता, जिससे 3.8 दिनों का कम्प्यूट बच जाता।
प्रत्येक चरण आपको क्या बताता है
120M v1 पाठ
दो स्वतंत्र संकेत
ANDREA-120M v1 ने चरण 110K पर SMMA 3.43 प्राप्त किया। संख्यात्मक रूप से: यादृच्छिक संभावना से 273 गुना बेहतर (perplexity 31 बनाम शब्दावली आकार 8449)। वक्र पर शानदार दिखता है।
चरण 110K पर नमूना::
''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
हानि और सुसंगति स्वतंत्र संकेत हैं। कम हानि का मतलब है कि मॉडल प्रायिकता द्रव्यमान को प्रभावी ढंग से केंद्रित करता है। सुसंगति का मतलब है कि मॉडल ऐसा पाठ उत्पन्न करता है जिसे मनुष्य पढ़ सकें। पहला दूसरे को निहित नहीं करता।
अंतर क्यों मौजूद है
एक मॉडल हानि को कम कर सकता है द्वारा:
1. वास्तविक भाषा पैटर्न सीखना (अच्छा): कर्ता-क्रिया सहमति, सामान्य वाक्यांश, तथ्यात्मक संबंध।
2. संरचनात्मक कलाकृतियों को याद करना (बुरा): उच्च-आवृत्ति दोहराव पैटर्न, डेटासेट-विशिष्ट विचित्रताएँ, अपघटित आकर्षक बिंदु।
दोनों हानि को कम करते हैं। पहला मानवों को पसंद आने वाले नमूने उत्पन्न करता है। दूसरा Budy Budy Budy Budy उत्पन्न करता है। प्रशिक्षण उद्देश्य अकेले उन्हें अलग नहीं कर सकता।
ANDREA-120M v3 पॉलिश: जहाँ हानि और सुसंगतता मिले
v3 पॉलिश के बाद (चरण 112K से आगे), ANDREA-120M उत्पन्न करता है:
चरण 112,584, हानि 0.30, ppl 1::
> [extinction prompt]
< काला मकड़ी मोंटानो जीवित है, कैरोलिना पैराकीट विलुप्त है।
दोनों तथ्य सही। कैरोलिना पैराकीट को 1939 में विलुप्त घोषित किया गया; काला मकड़ी मंकी विद्यमान है। कम लॉस (0.30) और सुसंगत तथ्यात्मक स्मरण।
चरण 112,500, हानि 1.94, ppl 7::
> मैं एक Python प्रोजेक्ट में पुराने पैकेज कैसे ढूंढूं?
< pip list --outdated names का उपयोग करके pip पैकेज सूची देखें...
उच्च हानि (1.94 → ppl 7) लेकिन सही उपकरण प्रशिक्षण डेटा से उभरता है। वाक्यांश की प्रवाहशीलता अभी भी 56% प्रशिक्षण चिह्न पर विकसित हो रही है।
दो-सिग्नल अनुशासन
आधुनिक प्रशिक्षण पाइपलाइनों में दोनों की निगरानी की जाती है:
- लॉस कर्व। यह बताता है कि मॉडल कुछ मात्रात्मक सीख रहा है या नहीं।
- सैंपल ऑडिट। यह बताता है कि मॉडल ने जो सीखा है वह उपयोगी है या नहीं।
v2 ने कोहेरेंस-गेटेड अर्ली स्टॉपिंग जोड़ा (गतिविधि 78)। v3 पॉलिश एक करिकुलम पर्टर्बेशन था जो सैंपल ऑडिट्स द्वारा ट्रिगर हुआ, लॉस वैल्यूज द्वारा नहीं। लॉस अकेला आवश्यक है लेकिन कभी पर्याप्त नहीं।