सोलह दिनों का region region region
वह रन जो समाप्त हो गया
ANDREA-120M v1 2026-03-22 को लॉन्च हुआ & 2026-04-15 को 200,000 नियोजित में से 165,000 चरण पर समाप्त हुआ। EMA हानि न्यूनतम: 3.23 चरण 110K पर (यादृच्छिक संभावना: ln(8449) = 9.04, इसलिए हानि सम्मानजनक लग रही थी)। सैंपल्स नहीं।
चरण 80K: क्षेत्र क्षेत्र क्षेत्र क्षेत्र क्षेत्र क्षेत्र क्षेत्र
चरण 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
चरण 140K: खेल, खेल, खेल, खेल, खेल, खेल
चरण 165K: बडी बडी बडी बडी बडी बडी बडी बडी बडी
आरटीएक्स 4090 कम्प्यूट के सोलह दिन। 130W निरंतर। चरण 80K से आगे कचरा।
microGPT काम कर गया लेकिन 120M क्यों नहीं
ANDREA-12M ने वही ट्रेनिंग प्रॉक्सी का उपयोग किया & पास कर गया। छोटे वेट मैट्रिक्स ग्रेडिएंट शॉक्स के प्रति अधिक मजबूत साबित हुए। 120M पैरामीटर्स तक स्केलिंग ने हर नाजुकता को गुणा कर दिया। पांच असफलताएँ संयुक्त रूप से बढ़ीं।
पांच संयुक्त असफलताएँ
असफलता 1: कोई ग्रेडिएंट क्लिपिंग नहीं। हर 7-42 स्टेप्स पर सोर्स ट्रांजिशन ने अनबाउंडेड ग्रेडिएंट स्पाइक्स उत्पन्न किए। 120M पर एक खराब बैच मॉडल को एक डिजेनरेट एट्रैक्टर में धकेल सकता है जहाँ ऑप्टिमाइज़र से बचना असंभव हो। 12M मॉडल छोटे वेट्स के कारण शॉक्स को सहन कर गया।
असफलता 2: LR वार्मअप की कमी। लर्निंग रेट ताज़ा प्रारंभीकृत वेट्स पर तुरंत 0 से पीक पर कूद गया। कोई प्रतिनिधित्व बनने से पहले मॉडल एक बुरी बेसिन में गिर गया।
असफलता 3: वेट डिके की कमी। वैनिला Adam ने मनमाने रूप से बड़े वेट्स की अनुमति दी जो 120M क्षमता पर दोहराव पैटर्न को बढ़ा देते थे।
असफलता 4: सैंपल क्वालिटी मॉनिटरिंग की कमी। eval_chat_quality() केवल पुराने मल्टी-फेज रनर से जुड़ा था; फायरहोज़ पाठ्यक्रम ने इसे कभी कॉल नहीं किया। मॉडल ने स्टेप 80K से कचरा उत्पन्न किया, जो 10+ दिनों तक अनदेखा रहा।
असफलता 5: बैंडिट ने दोहराव वाले स्रोतों को पुरस्कृत किया। repo-docs, repo-docstrings, और unfirehose-chat ने सबसे ऊँचे स्कोर किए (औसत रिवॉर्ड्स 340-453) क्योंकि सूची-संरचित सामग्री क्रॉस-एंट्रॉपी को तुच्छ रूप से कम करती है। बैंडिट ने मॉडल को वही और अधिक खिलाया जो इसे खराब कर रहा था।
चक्रवृद्धि
कोई एक विफलता अकेले v1 को ढहा नहीं सकती थी। प्रत्येक ने दूसरों को बढ़ाया। ग्रेडिएंट शॉक्स (1) बिना वार्मअप (2) के ने ताज़ा-प्रारंभित मॉडल को मनमाने रूप से बड़े वेट्स (3) के साथ मारा, जिससे दोहराव उत्पन्न हुआ जिसे बैंडिट ने पुरस्कृत किया (5) जबकि कोई आउटपुट को देख नहीं रहा था (4)। पाँच परस्पर काटने वाले कारण, एक ढहाव।
पाँच विफलताएँ क्यों, एक नहीं
प्रत्येक असफलता के लिए एक सुधार
v2 कॉन्फ़िगरेशन (2026-04-15)
| सुधार | लक्षित असफलता | कार्यान्वयन |
|---|---|---|
| ग्रेडिएंट क्लिपिंग | F1 (कोई क्लिपिंग नहीं) | ग्लोबल L2 नॉर्म, max_norm=1.0; तीन CUDA kernels (k_grad_norm_partial, k_grad_norm_final, k_grad_scale) pre-Adam कम्प्यूट और लागू करते हैं |
| LR वार्मअप | F2 (कोई वार्मअप नहीं) | 2000 स्टेप्स पर 0 से पीक तक लीनियर रैंप। lr(t) = lr_scheduled(t) * min(1, (t+1)/warmup_steps) |
| AdamW | F3 (कोई वेट डिके नहीं) | डिकअपल्ड वेट डिके (Loshchilov & Hutter 2019), weight_decay=0.01. p -= lr (m_hat/(sqrt(v_hat)+eps) + weight_decayp) |
| कोहेरेंस-गेटेड अर्ली स्टॉपिंग | F4 (कोई मॉनिटरिंग नहीं) | हर सैंपल का स्कोर करें (बाइग्राम/ट्राइग्राम/शब्द/अक्षर विविधता)। 5 लगातार सैंपल के स्कोर 30 से नीचे होने पर स्वचालित रूप से रुकें |
| पाठ्यक्रम वार्मअप | F5 (बैंडिट दोहराव खाता है) | पहले 20K स्टेप्स 7 चैट/गद्य स्रोतों तक सीमित; उसके बाद फायरहोज सक्रिय; repo-docstrings पूरी तरह से बाहर |
इसके अलावा sample_every को 200 से 100 स्टेप्स तक कम किया गया (ऑडिट कैडेंस दोगुना), & repo-docs कैप को 0.5 से 0.3 तक कम किया गया।
बैक-टेस्ट
कोहेरेंस गेट का v1 पर बैक-टेस्ट: स्टेप 132K पर ट्रिगर होता, 3.8 दिनों का कम्प्यूट बचाता। गेट अकेले v1 के बर्बाद कम्प्यूट को ~30% काट देता; अन्य चार फिक्सेस v1 को उस गेट ट्रिगर तक पहुंचने से रोकते।
v2 ने क्या ठीक नहीं किया
डेटा प्रदूषण। v2 ने hermes3-* स्रोतों को 'पूर्व-स्वच्छ' के रूप में विश्वास किया क्योंकि वे LLM शिक्षक से आए थे। Makefile में DEEP_CLEAN_SKIP ने hermes3-general, hermes3-creative, और hermes3-roleplay को make deep-clean से बाहर रखा। unfirehose-chat ने एजेंट सिस्टम प्रॉम्प्ट्स को उपयोगकर्ता टर्न्स के रूप में कैप्चर किया। ये दो दोष डेटा परत पर प्रतीक्षा कर रहे थे, सतह पर आने के लिए तैयार।
सुधारों को विफलताओं से जोड़ना
चरण 15K: दो डेटा दोष सामने आते हैं
v2 ने क्या देखा
v2 2026-04-15 को लॉन्च हुआ। 200K के ~15K चरण तक (7.5% पूर्ण), नमूनों ने एजेंट-हार्नेस आभूषण (○ ●) उत्पन्न किए & लेख-प्रभुत्व फॉलबैक (a = चरण 14,966 पर शब्दों का 26%; the = चरण 14,798 पर 21%)। v2 के पांच स्थिरता सुधार सही ढंग से काम कर रहे थे। विफलता वास्तुकला से डेटा में स्थानांतरित हो गई थी।
दो स्वतंत्र पाइपलाइन दोष
दोष A: unfirehose-chat ने एजेंट सिस्टम प्रॉम्प्ट्स को उपयोगकर्ता टर्न्स के रूप में कैप्चर किया। unfirehose-chat ~/.claude/, ~/.fetch/, ~/.uncloseai/ पर हार्नेस सेशन JSONL फाइलों से बनाता है। इनजेस्ट पाइपलाइन ने मल्टी-सेक्शन एजेंट सिस्टम प्रॉम्प्ट्स (# Agent X, ## Identity, ## Rules, आदि) को > user / < assistant जोड़ियों के उपयोगकर्ता-टर्न स्लॉट में परिवर्तित कर दिया। मॉडल ने सीखा कि 'उपयोगकर्ता' मल्टी-सेक्शन मार्कडाउन में बोलते हैं, & अपने आउटपुट्स में उन आभूषणों को पुन: उत्पन्न किया।
दोष B: hermes3-* ने सभी फिल्टरों को बायपास कर दिया। Makefile में DEEP_CLEAN_SKIP ने hermes3-general, hermes3-creative, और hermes3-roleplay को make deep-clean से बाहर रखा, यह गलत धारणा पर कि LLM-डिस्टिल्ड डेटा पहले से क्लीन था। एक विस्तृत स्कैन ने दिखाया कि मौजूदा फिल्टर, जब लागू किए गए, तो hermes3 लाइनों के 87-93% को अस्वीकार कर देंगे (ओवरसाइज पैराग्राफ >2000 chars जो block_size=1024 से ओवरफ्लो हो जाते हैं; CJK/Cyrillic/Arabic में अनुवाद प्रतिक्रियाएँ; कम-bigram-विविधता रन)।
v2.5 पैच (कमिट de24332, 2026-04-18)
दो संरचनात्मक परिवर्तन।
परिवर्तन 1: filter-dataset.c में has_system_prompt_shape()। SHAPE द्वारा लीक हुए सिस्टम प्रॉम्प्ट का पता लगाता है, कैरेक्टर मैचिंग द्वारा नहीं। तीन संकेत संयुक्त:
1. एक ही टर्न में 3+ मार्कडाउन हेडर्स = ड्रॉप।
2. 2+ हेडर्स के साथ टर्न लंबाई >=500 अक्षर = ड्रॉप।
3. एजेंट-शार्ड फिंगरप्रिंट वाक्यांश (# Agent , Shadow Clone, Your shard, Read it. Become it, This file defines) किसी भी हेडर या लंबाई >=400 के साथ संयुक्त = ड्रॉप।
अलगाव नियम: / विभाजक (स्पेस के साथ, न कि नंगे / जो URL पथों को खंडित करता है) पर पहले यूजर टर्न की जाँच करें ताकि असिस्टेंट प्रतिक्रियाओं में वैध मार्कडाउन पर फॉल्स-पॉजिटिव से बचा जा सके।
परिवर्तन 2: hermes3-* को DEEP_CLEAN_SKIP से हटा दिया गया। किसी भी अनफ़िल्टर्ड चीज़ पर भरोसा न करें।
पैच के बाद ड्रॉप रेट्स
| स्रोत | इन-लाइन्स | आउट-लाइन्स | ड्रॉप्ड |
|---|---|---|---|
| hermes3-general | 536,858 | 67,395 | 87.7% |
| hermes3-roleplay | 35,191 | 2,481 | 93.0% |
| hermes3-creative | 14,258 | 1,373 | 90.4% |
| unfirehose-chat | 3,816 | 2,653 | 30.5% |
| चैट | 45,257 | 44,538 | 1.6% (शोर) |
| स्मॉलटॉक | 11,812 | 11,812 | 0.0% |
बेसलाइन फिल्टर पहले से ही हर्मीस3 कंटैमिनेशन का 87-93% पकड़ रहे थे; DEEP_CLEAN_SKIP लोड-बेयरिंग दोष था। नया शेप डिटेक्टर कुल मिलाकर ~0.1% अतिरिक्त रिजेक्शन जोड़ता है, जो unfirehose-chat में केंद्रित है जहां यह मौजूदा फिल्टर मिस करने वाले विशिष्ट एजेंट-शार्ड लीक हटाता है।
आकार क्यों श्रेष्ठ है
सजावट विकसित होती हैं। एक कैरेक्टर-मैचिंग फिल्टर जो ○ को गिरा देता है, अगले सप्ताह ◇ के बारे में कुछ नहीं करेगा। एक शेप-आधारित फिल्टर (हेडर गिनें, कैरेक्टर गिनें, फिंगरप्रिंट वाक्यांशों को पहचानें) सजावट के वेरिएंट्स में सामान्यीकृत करता है। पैटर्न: कंटैमिनेशन डिटेक्शन को संरचनात्मक ह्यूरिस्टिक्स का उपयोग करना चाहिए।
आकार से क्यों फिल्टर करें
कोई डेटा वाला बैंडिट आर्म नहीं
v3 लॉन्च 2026-04-18
v2 जैसी ही वास्तुकला & हाइपरपैरामीटर; v2.5 पैच के बाद साफ़ डेटा। सैंपल ऑडिट में शून्य आभूषण रिसाव। v3 चरण 112K तक साफ़ चला।
चरण 112,619: नमूना ऑडिट एक पैटर्न पकड़ता है
नमूना ऑडिट ने सुसंगत संवादात्मक मोड़ों (हाइकू, प्रश्नोत्तर, संवाद) का खुलासा किया लेकिन ज्ञान शाखाओं (gutenberg, repo-docstrings, repo-docs) पर केंद्रित आवर्ती चरणों में कोड-जैसे टुकड़ों और रिपॉजिटरी टोकेनाइजेशन शोर का रिसाव हुआ। चरण 112,080 पर एक नमूना ने हानि 0.13 प्राप्त की: असामान्य रूप से कम, जो सीखी गई चैट वितरण के बजाय याद की गई repo-docs उपस्ट्रिंग्स का संकेत देती है।
ज़ॉम्बी आर्म
निदान: exclude_sources ने प्रशिक्षण शुरूआत में repo-docstrings को सही ढंग से हटा दिया, लेकिन स्थायी बैंडिट स्थिति ने पूर्व रन से वजन 1.546 के साथ अवशिष्ट repo-docstrings शाखा को ले जाया। स्थिति पुनःलोड ने इसे UCB पूल में पुनर्स्थापित कर दिया भले ही सैंपलिंग के लिए कोई .btok अस्तित्व में न हो, जिससे अन्वेषण लेखांकन को विकृत करने वाला ज़ॉम्बी पुल उत्पन्न हुआ।
पाठ: बैंडिट स्थिति फाइलें (.state.json) पुनरारंभों में आश्चर्यजनक तरीकों से ड्रिफ्ट करती हैं। कॉन्फ़िगरेशन अपवर्जन अवशिष्ट शाखा स्मृति को मिटाते नहीं हैं। बेल्ट-एंड-सस्पेंडर्स आवश्यक: अपवर्जन के साथ cap = 0.0।
पॉलिश कॉन्फ़िगरेशन
पाठ्यक्रम गड़बड़ीのみ। आर्किटेक्चर, ऑप्टिमाइज़र स्थिति, लर्निंग रेट शेड्यूल, और लॉस इतिहास सभी step_112600.bin से संरक्षित।
| स्रोत | v3 बेस | v3 पॉलिश |
|---|---|---|
| repo-docs | कैप 0.3 | बाहर किया गया (कैप 0.0) |
| repo-docstrings | बाहर किया गया | बाहर किया गया + कैप 0.0 |
| repo-commits | cap 0.4 | cap 0.2 |
| dictionary | cap 0.5 | cap 0.25 |
| gutenberg | cap 0.8 / floor 0.3 | cap 0.7 / floor 0.4 |
| irc-qa-strict | -- | cap 0.3 |
| unweapon | -- | cap 0.3 |
| synthetic-chat | -- | cap 0.4 |
| hermes3-general | floor 0.5 | floor 0.7 |
| hermes3-creative | floor 0.4 | floor 0.55 |
| hermes3-roleplay | floor 0.4 | floor 0.5 |
| chat | floor 0.4 | floor 0.6 |
| smoltalk | floor 0.3 | floor 0.5 |
| oasst | floor 0.3 | floor 0.5 |
| dolly | -- | floor 0.4 |
| curriculum_warmup_steps | 20000 | 0 |
पॉलिश प्रोटोकॉल
1. SIGUSR1 को CUDA भेजने से अगली 100-चरण सीमा पर तत्काल चेकपॉइंट लागू होता है।
2. Proxy रुक जाता है।
3. .samples.json & .state.json को संग्रहित किया जाता है (नमूना लॉग & बैंडिट स्थिति को ऐतिहासिक रिकॉर्ड के रूप में सहेजा जाता है)।
4. .loss.json को बनाए रखा जाता है -- संचयी प्रशिक्षण इतिहास; कभी संग्रहित नहीं किया जाता।
5. Proxy पुनः आरंभ होता है। Polish कॉन्फ़िग सबमिट की जाती है।
6. CUDA step_112600.bin से पुनः आरंभ होता है नई कैप्स & फ्लोर्स के तहत ताज़ा बैंडिट स्थिति के साथ।
लॉस इतिहास बिना रुके जारी रहता है।
पॉलिश क्यों, रीस्टार्ट नहीं
पॉलिश ने क्या उत्पादित किया
सैंपल ऑडिट, पिवट के घंटों बाद
पॉलिश पिवट के कुछ ही घंटों के भीतर, सैंपल ऑडिट ने चार मूल ANDREA-120M लक्ष्यों पर अभिसरण की पुष्टि की।
तथ्यात्मक स्मरण (जीवविज्ञान), चरण 112,584, हानि 0.30, ppl 1।
> [extinction prompt]
> < black spider montano is alive, carolina parakeet is extinct.
दो सही तथ्य। बाहरी ग्रेडिंग: 9.5/10।
तथ्यात्मक स्मरण (सिग्नल प्रोसेसिंग), चरण 112,668, हानि 0.74, ppl 2।
> [Fourier transform prompt]
> < फूरियर ट्रांसफॉर्म सिग्नलों को आवृत्ति घटकों में विघटित करता है, जिससे सिग्नल की विशेषताओं का विश्लेषण और आवृत्ति डोमेन में फिल्टरिंग संभव हो जाती है।
पाठ्यपुस्तक की एक-वाक्य परिभाषा। बाहरी ग्रेडिंग: 9.5/10।
नियम अनुसरण (हाइकु), चरण 112,248, हानि 1.05, ppl 3।
> 'r' से शुरू होने वाले तीन शब्दों का उपयोग करके बारिश के बारे में एक हाइकु लिखें।
> < बारिश की लयबद्ध धुन, खिड़की पर धाराएँ, जीवन की पीड़ा से राहत।
उपकरण ज्ञान (पायथन), चरण 112,500, हानि 1.94, ppl 7.
> मैं एक पायथन प्रोजेक्ट में पुराने पैकेज कैसे ढूंढूं?
> < अपने प्रोजेक्ट प्रबंधन में पिप पैकेज सूची देखने के लिए pip list --outdated names का उपयोग करें...
सही उपकरण उभरता है; वाक्यांशण अस्पष्ट।
700 चरणों में छह डोमेन
जीवविज्ञान, सिग्नल प्रोसेसिंग, कविता, पायथन उपकरण, संवादात्मक संवाद, ऑप्स संवाद। 700 चरणों के भीतर छह असंबंधित डोमेन हमें बताते हैं कि बैंडिट और मॉडल सामंजस्य में काम कर रहे हैं। डोमेन चौड़ाई ही अभिसरण संकेत है।
बाहरी ग्रेडिंग
स्वतंत्र समीक्षक ने नमूनों को '120M पैरामीटर मॉडल के लिए मजबूत -- इस पैमाने पर प्रभावशाली सुसंगति और ज्ञान प्रतिधारण' रेट किया, कैरोलिना पैराकीट और फूरियर ट्रांसफॉर्म नमूनों को 9.5/10 और 'ज्ञान कार्यों पर अपने वजन से अधिक मुक्का मारते हुए' रेट किया।
प्रत्येक चरण ने क्या सिखाया
v1 ने सिखाया: पांच चक्रवृद्धि विफलताएँ प्रशिक्षण को ढहा देती हैं। अलग-थलग कोई सुधार काम नहीं करता; सभी पाँच को एक साथ उतारना चाहिए।
v2 ने सिखाया: वास्तुशिल्प सुधार आवश्यक हैं लेकिन पर्याप्त नहीं। डेटा परत उन्हें चुपचाप हरा सकती है।
v2.5 ने सिखाया: आकार से फिल्टर संदूषण करें, चरित्र से नहीं। पैटर्न स्थिर होते हैं; प्रतीक विकसित होते हैं।
v3 base ने सिखाया: बैंडिट स्टेट रीस्टार्ट्स पर आश्चर्यजनक तरीकों से ड्रिफ्ट करता है। केवल एक्सक्लूड्स पर्याप्त नहीं हैं; 0.0 कैप बेल्ट-एंड-सस्पेंडर्स आवश्यक है।
v3 polish ने सिखाया: जब विफलता नीति में हो & मॉडल स्वस्थ हो, तो नीति को परेशान करें। वेट्स रखें। लॉस हिस्ट्री रखें। आगे बढ़ें।
एक सत्य
अभिसरण एक एकल घटना नहीं है; यह सुधारों की एक श्रृंखला है। प्रत्येक चरण ने एक दोष को उजागर किया, उसे ठीक किया, और अगले को खोला। ANDREA-120M चरण 112,584 पर 9.5/10 पढ़ता है क्योंकि v1, v2, v2.5, v3 base, और v3 polish ने प्रत्येक अपना काम किया।