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

un

гість
1 / ?
назад до уроків

Дві проблеми на обох кінцях навчання [BLOCK_TYPE SECTION/STEP]

Проблема на ранніх кроках: свіжі ваги не можуть робити великі кроки
[BLOCK_TYPE SECTION/STEP]

На кроці 0 кожна вага починається як невелике випадкове число, вибране з розподілу, близького до нуля. Активації залишаються близькими до нуля. Градієнти майже не несуть інформації про остаточне рішення. Застосування пікової швидкості навчання до цих градієнтів змушує модель стрибати далеко від початкових значень у напрямках, які не кодують значущу структуру. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

ANDREA-120M v1 припустилася цієї помилки. Без розігріву. На кроці 1 використовувалася lr = 0.0003 на щойно ініціалізованих вагах. Результат: модель потрапила в поганий параметричний басейн протягом кількох сотень кроків. Значення втрат виглядали прийнятними; зразки почали повторювати цикли до кроку 80K і ніколи не відновилися.


Проблема на пізніх етапах: Великі кроки не можуть відшліфувати рішення

До кроку 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: clamp тримає множник на 1, розігрів більше не впливає, cosine decay працює самостійно.


Лінійне зростання від нуля дає моделі 2000 кроків для формування грубих уявлень, перш ніж AdamW та gradient clipping отримають оновлення повної сили. До кроку 2000 ваги вже достатньо змінилися, тому пік lr не виштовхує їх у погану область.

Обчислення LR під час Warmup

ANDREA-120M v2 використовує `lr_scheduled = 0.0003` (пік) та `warmup_steps = 2000`. Ігноруйте cosine decay під час warmup (вважайте, що `lr_scheduled` залишається сталою). Обчисліть фактичну швидкість навчання на: (a) кроці 0, (b) кроці 500, (c) кроці 2000, (d) кроці 5000. Покажіть обчислення.

Косинусне згасання після розігріву

Крива

Після завершення розігріву на кроці 2000 швидкість навчання слідує косинусній кривій від піку до нуля протягом решти кроків:


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


де progress = (t - warmup_steps) / (total_steps - warmup_steps). При progress = 0 (відразу після warmup), cos(0) = 1, lr = peak. При progress = 1 (останній крок), cos(pi) = -1, lr = lr_min (зазвичай 0 або дуже мала нижня межа).


Чому косинус, а не лінійний чи експоненціальний?

Косинусне згасання починається повільно (крива майже плоска біля піку), прискорюється в середині, а потім знову сповільнюється біля нуля. Три переваги:


1. Плато біля піку. Перші кроки після warmup все ще отримують майже повний lr, дозволяючи моделі використовувати довгий період високого learning rate для побудови представлень.

2. Плавний перехід через середину. Немає різких стрибків, які має поглинати AdamW.

3. Плато біля нуля. На останніх кроках lr стає дуже малим для тонкого доопрацювання, подібно до симульованого відпалу.


ANDREA-120M тренується загалом 200K кроків; 198K з них припадають на область косинусного згасання після 2000-крокового розігріву.


LR Warmup & Cosine Decay

Теплий перезапуск ANDREA-12M на кроці 25K

Плато

ANDREA-12M тренувалася 60K кроків з косинусним згасанням від піку lr = 0.0004. Близько кроку 22K втрата вийшла на плато з EMA ~2.4. Косинусне згасання знизило lr до ~0.00015. Бандит продовжував подавати різноманітні дані; модель перестала покращуватися.


Діагноз: lr занадто сильно зменшився, і модель не могла вийти з поточної улоговини. Дані Hermes мали незабаром увійти в навчальну програму (крок 25K), додаючи 590K нових розмов. Моделі потрібна була енергія, щоб поглинути цей шок даних.


Перезапуск

На кроці 25K розклад виконав теплий перезапуск: стрибок lr з 0.00015 (зменшене) назад до 0.0004 (початковий пік), а потім продовження косинусного зменшення на решту кроків.


Loshchilov & Hutter (2017) назвали цю техніку «SGDR» (стохастичний градієнтний спуск із теплими перезапусками). Інтуїція: високий lr додає достатньо кінетичної енергії, щоб вийти з локальної улоговини та дослідити сусідні; подальше косинусне зменшення повторно відпалює модель у кращу улоговину.


Результат. EMA втрат зменшилася з 2.40 до 2.10 за наступні 10K кроків після перезапуску. Модель була випущена на кроці 43.6K з втратою SMMA 2.0, демонструючи когерентну структуру черги запитань-відповідей.


ANDREA-120M v2 вирішила НЕ використовувати теплі перезапуски: маючи 200K кроків і значно більшу кількість параметрів, плавне монотонне зменшення забезпечило стабільнішу збіжність. Перезапуск найкраще працює, коли тренування коротке і плато збігається з відомим зсувом даних.

Діагностика невдачі v1

ANDREA-120M v1 використовувала `lr = 0.0003` з кроку 1, без розігріву. До кроку 80K зразки видавали `region region region region`. Поясніть механістично: пройдіть кроки 1–100 для щойно ініціалізованої матриці ваг під `lr = 0.0003` порівняно з 2000-кроковим розігрівом. Чому шлях без розігріву призводить до поганого басейну?

Вибір розкладу на практиці

Якщо ви тренуєте модель на 120M параметрів на зашумленому наборі даних лише протягом 50K кроків загалом, чи використовували б ви довший чи коротший warmup, ніж у ANDREA-120M v2 (2000 кроків)? Обґрунтуйте одним механістичним аргументом.

Суміжні активності

Три споріднені посилання на LR-розклад:


- Activity 10: AdamW. Розігрів дає корекції зміщення AdamW час стабілізуватися. Без розігріву 10-кратне посилення на кроці 1 множить будь-який шум, який несуть градієнти; з розігрівом множник потрапляє на реальний сигнал.

- Activity 12: Gradient clipping. Обрізання обмежує L2-норму градієнта значенням 1.0 ДО AdamW. Розігрів послаблює lr; обрізання послаблює g. Разом вони роблять ранні кроки безпечними навіть на нестабільних навчальних програмах.

- Activity 22: Checkpointing. Теплий перезапуск потребує завантаження стану оптимізатора (m, v, лічильник кроків) із чекпойнту, а потім зміни розкладу під час виконання. Перезапуск ANDREA-12M на кроці 25K демонструє це; знадобилося дві спроби, щоб правильно реалізувати логіку завантаження стану.


Розклад, оптимізатор і обрізання градієнтів утворюють трикутник стабільності. Якщо прибрати одну вершину, ANDREA повторить свій колапс v1.