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

Two Problems at Either End of Training

Early-Step Problem: Fresh Weights Cannot Take Big Steps

At step 0, every weight starts as a small random number sampled from a near-zero distribution. Activations stay near zero. Gradients carry almost no information about a final solution. Apply a peak learning rate to those gradients & a model jumps far away from initialization in directions that do not encode meaningful structure.


ANDREA-120M v1 made this mistake. No warmup. Step 1 used lr = 0.0003 on freshly initialized weights. Result: model landed in a bad parameter basin within a few hundred steps. Loss numbers looked reasonable; samples produced repetition loops by step 80K & never recovered.


देर-चरण समस्या: बड़े कदम समाधान को पॉलिश नहीं कर सकते

स्टेप 100K तक मॉडल ने मोटी संरचना सीख ली होती है। अब ग्रेडिएंट्स बारीक संकेत ले जाते हैं: कौन-सा टोकन वेट को छोटा धक्का चाहिए, कौन-सा अटेंशन हेड को हल्का रीबैलेंसिंग। इस स्टेज पर पीक लर्निंग रेट लगाने से हर बारीक समायोजन ओवरशूट हो जाता है, जिससे ऑप्टिमम के आसपास दोलन होता है और स्थिरता नहीं मिलती।


दो समस्याएँ, ट्रेनिंग के विपरीत छोर। एक शेड्यूल, दो क्षेत्र: धीरे-धीरे रैंप-अप, फिर सहजता से डिके।

रैखिक वार्मअप: पहले 2000 स्टेप्स

सूत्र

ANDREA-120M v2 2000 स्टेप्स में रैखिक वार्मअप का उपयोग करता है:


lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)


जहाँ t स्टेप संख्या है (0-इंडेक्स्ड), warmup_steps = 2000, और lr_scheduled(t) वह कोसाइन शेड्यूल है जो वार्मअप को नजरअंदाज़ करके निर्धारित करता है।


फॉर्मूला पढ़ना:


- t = 0 पर: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. पहला स्टेप बहुत छोटा।

- t = 1000 पर: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. आधी ताकत।

- t = 2000 पर: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. पूर्ण ताकत।

- t > 2000 पर: क्लैंप मल्टीप्लायर को 1 पर रखता है, वार्मअप अब कुछ भी प्रभावित नहीं करता, कॉसाइन डेके अकेले काम करता है।


शून्य से रैखिक वृद्धि मॉडल को 2000 स्टेप्स देती है ताकि वह मोटे प्रतिनिधित्व बना सके, इससे पहले कि AdamW और ग्रेडिएंट क्लिपिंग पूर्ण-शक्ति अपडेट देखें। स्टेप 2000 तक वेट्स इतने बदल चुके होते हैं कि पीक lr उन्हें गलत बेसिन में नहीं धकेलता।

वार्मअप के दौरान LR की गणना

ANDREA-120M v2 `lr_scheduled = 0.0003` (पीक) और `warmup_steps = 2000` का उपयोग करता है। वार्मअप के दौरान कॉसाइन डेके को नजरअंदाज करें (मान लें `lr_scheduled` स्थिर रहता है)। निम्नलिखित स्टेप्स पर वास्तविक लर्निंग रेट ज्ञात करें: (a) स्टेप 0, (b) स्टेप 500, (c) स्टेप 2000, (d) स्टेप 5000। अपनी गणना दिखाएं।

Cosine Decay After Warmup

The Curve

After warmup ends at step 2000, learning rate follows a cosine curve from peak down to zero over the remaining steps:


lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))


जहाँ progress = (t - warmup_steps) / (total_steps - warmup_steps)। प्रोग्रेस = 0 (warmup के ठीक बाद) पर, cos(0) = 1, lr = peak। प्रोग्रेस = 1 (अंतिम स्टेप) पर, cos(pi) = -1, lr = lr_min (आमतौर पर 0 या बहुत छोटा मान)।


कोसाइन क्यों, लीनियर या एक्सपोनेंशियल क्यों नहीं?

कोसाइन डेके शुरू में धीमा (पीक के पास वक्र लगभग सपाट), मध्य में तेज़ी से घटता है, फिर शून्य के पास फिर धीमा हो जाता है। तीन फायदे:


1. पीक के पास पठार। warmup के बाद शुरुआती स्टेप्स को लगभग पूरा lr मिलता है, जिससे मॉडल को लंबे समय तक उच्च लर्निंग रेट से रिप्रेजेंटेशन बनाने का मौका मिलता है।

2. मध्य में सहज संक्रमण। कोई अचानक उछाल नहीं जिसे AdamW को संभालना पड़े।

3. शून्य के पास पठार। अंतिम चरणों में बारीक पॉलिशिंग के लिए बहुत छोटा lr मिलता है, जो simulated annealing के समान है।


ANDREA-120M कुल 200K चरणों तक ट्रेन करता है; इनमें से 198K चरण cosine decay क्षेत्र में होते हैं, जो 2000-चरण के warmup के बाद आते हैं।


LR Warmup & Cosine Decay

ANDREA-12M का स्टेप 25K पर Warm Restart

The Plateau

ANDREA-12M ने lr = 0.0004 पीक से cosine decay के साथ 60K चरणों तक ट्रेन किया। स्टेप 22K के आसपास, EMA ~2.4 पर loss पठार पर पहुँच गया। Cosine decay ने lr को ~0.00015 तक घटा दिया था। बैंडिट विविध डेटा देता रहा; मॉडल सुधारना बंद हो गया।


निदान: lr इतना कम हो चुका था कि मॉडल अपनी वर्तमान बेसिन से बाहर नहीं निकल पा रहा था। हर्मीस डेटा पाठ्यक्रम में प्रवेश करने वाला था (स्टेप 25K), जिससे 590K नई बातचीतें आएंगी। मॉडल को उस डेटा शॉक को अवशोषित करने के लिए ऊर्जा की आवश्यकता थी।


पुनः आरंभ

स्टेप 25K पर, शेड्यूल ने एक वार्म रीस्टार्ट निष्पादित किया: lr को 0.00015 (क्षयित) से बढ़ाकर 0.0004 (मूल शिखर) कर दिया, फिर शेष स्टेप्स पर कोसाइन क्षय फिर से शुरू किया।


लोशचिलोव और हटर (2017) ने इस तकनीक को "SGDR" (स्टोकास्टिक ग्रेडिएंट डिसेंट विद वार्म रीस्टार्ट्स) नाम दिया। अंतर्ज्ञान: एक उच्च lr पर्याप्त गतिज ऊर्जा जोड़ता है ताकि स्थानीय बेसिन से बाहर निकला जा सके और पड़ोसी बेसिनों का अन्वेषण किया जा सके; बाद में कोसाइन क्षय एक बेहतर बेसिन में पुनः-एनीलिंग करता है।


Outcome. Loss EMA 2.40 से घटकर अगले 10K स्टेप्स में 2.10 हो गया। मॉडल को स्टेप 43.6K पर SMMA loss 2.0 के साथ शिप किया गया, जो सुसंगत Q&A टर्न स्ट्रक्चर दर्शाता है।


ANDREA-120M v2 ने warm restarts का उपयोग नहीं करने का फैसला किया: 200K स्टेप्स उपलब्ध होने और बहुत बड़े पैरामीटर काउंट के कारण, smooth monotonic decay ने स्थिर convergence दिया। Restart तब सबसे अच्छा काम करता है जब ट्रेनिंग छोटी हो और plateau किसी ज्ञात data shift के साथ मेल खाता हो।

v1 की विफलता का निदान

ANDREA-120M v1 ने स्टेप 1 से `lr = 0.0003` इस्तेमाल किया, बिना warmup के। स्टेप 80K तक सैंपल्स ने `region region region region` उत्पन्न किया। यांत्रिक रूप से कारण बताएं: `lr = 0.0003` बनाम 2000-स्टेप warmup के तहत स्टेप 1 से 100 तक freshly initialized weight matrix के साथ क्या होता है, इस पर चरणबद्ध चर्चा करें। no-warmup पथ खराब basin में क्यों पहुँचता है?

अभ्यास में शेड्यूल विकल्प

यदि आप एक शोरयुक्त डेटासेट पर 120M मॉडल को कुल केवल 50K स्टेप्स के लिए ट्रेनिंग कर रहे थे, तो क्या आप ANDREA-120M v2 के 2000 स्टेप्स से अधिक लंबा या छोटा वॉर्मअप इस्तेमाल करेंगे? एक यांत्रिक तर्क के साथ औचित्य बताएं।

आसन्न गतिविधियाँ

LR शेड्यूल से जुड़े तीन सिबलिंग्स:


- Activity 10: AdamW. वॉर्मअप AdamW के बायस करेक्शन को स्थिर होने का समय देता है। बिना वॉर्मअप के, स्टेप 1 पर 10x एम्प्लिफिकेशन जो भी नॉइज़ ग्रेडिएंट्स ले जाते हैं उसे गुणा कर देता है; वॉर्मअप के साथ, मल्टीप्लायर असली सिग्नल पर लगता है।

- Activity 12: Gradient clipping. क्लिपिंग ग्रेडिएंट L2 नॉर्म को 1.0 पर कैप करती है AdamW से पहले। वॉर्मअप lr को डैम्प करता है; क्लिपिंग g को डैम्प करती है। साथ मिलकर वे शुरुआती स्टेप्स को शॉक-प्रोन करिकुला पर भी सुरक्षित रखते हैं।

- Activity 22: Checkpointing. वॉर्म रीस्टार्ट के लिए चेकपॉइंट से ऑप्टिमाइज़र स्टेट (m, v, स्टेप काउंटर) लोड करना, फिर शेड्यूल को मिड-रन में बदलना आवश्यक है। ANDREA-12M का स्टेप 25K पर रीस्टार्ट इसे दर्शाता है; स्टेट-लोडिंग लॉजिक को सही करने में दो प्रयास लगे।


शेड्यूल, ऑप्टिमाइज़र, और क्लिपिंग एक स्थिरता त्रिकोण बनाते हैं। एक शीर्ष गिराओ, ANDREA को v1 कोलैप्स दोहराते देखो।