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

un

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

Two Problems at Either End of Training [BLOCK_TYPE SECTION/STEP]

Early-Step Problem: Fresh Weights Cannot Take Big Steps
[BLOCK_TYPE SECTION/STEP]

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. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

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) — значение, которое предписывает косинусное расписание без учёта warmup.


Чтение формулы:


- При 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, разогрев больше не влияет, остаётся только косинусное затухание.


Линейный рост от нуля даёт модели 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. Покажите вычисления.

Косинусное затухание после warmup

Кривая

После завершения warmup на шаге 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, позволяя модели использовать длительный период высокой скорости обучения для построения представлений.

2. Плавный переход через середину. Нет резких скачков, которые должен компенсировать AdamW.

3. Плато около нуля. На финальных шагах lr становится очень маленьким для тонкой полировки, аналогично имитации отжига.


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


LR Warmup & Cosine Decay

Тёплый перезапуск ANDREA-12M на шаге 25K

Плато

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


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


Перезапуск

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


Loshchilov & Hutter (2017) назвали эту технику «SGDR» (стохастический градиентный спуск с тёплыми перезапусками). Идея: высокое значение lr даёт достаточно кинетической энергии, чтобы выйти из локального бассейна и исследовать соседние; последующее косинусное затухание снова «отжигает» модель в более удачном бассейне.


Результат. Loss EMA снизился с 2.40 до 2.10 за следующие 10K шагов после перезапуска. Модель была выпущена на шаге 43.6K с SMMA loss 2.0, демонстрируя coherent структуру Q&A.


ANDREA-120M v2 отказалась от использования warm restarts: при наличии 200K шагов и значительно большем числе параметров плавное монотонное затухание обеспечило более стабильную сходимость. Restart работает лучше всего, когда обучение короткое и плато совпадает с известным сдвигом данных.

Диагностика сбоя v1

ANDREA-120M v1 использовала `lr = 0.0003` с шага 1, без warmup. К шагу 80K сэмплы выдавали `region region region region`. Объясните механистически: пройдите по шагам 1–100 для свежеинициализированной матрицы весов при `lr = 0.0003` и при 2000-шаговом warmup. Почему путь без warmup приводит в плохой бассейн?

Выбор расписания на практике

Если бы вы обучали модель 120M на зашумлённом датасете всего за 50K шагов, использовали бы вы более длинный или более короткий warmup по сравнению с 2000 шагами ANDREA-120M v2? Обоснуйте одним механистическим аргументом.

Смежные активности

Три родственных ссылки на расписание 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.