Training

warmup

Начальная фаза обучения с постепенным ростом learning rate от нуля до целевого значения.

Что такое warmup

Warmup — фаза в начале обучения, в которой learning rate постепенно нарастает от нуля (или очень малого значения) до целевого. Обычно линейный рост за несколько сотен–тысяч шагов.

Зачем нужен warmup? В самом начале обучения:

  • Веса модели (при fine-tuning) уже инициализированы и значимы
  • Состояния оптимизатора Adam (m, v) ещё не набраны — первые оценки моментов ненадёжны
  • Большой lr в этот момент → нестабильность, крупные некорректные шаги

Медленный старт даёт оптимизатору «разогреться» и накопить надёжные оценки моментов.

Практические значения

Сценарий warmup_steps warmup_ratio
Fine-tuning 7B (1K шагов) 50–100 0.05
Fine-tuning 7B (5K шагов) 100–200 0.02–0.05
Pretraining (100K шагов) 1000–2000 0.01
from transformers import TrainingArguments

# Через число шагов
args = TrainingArguments(warmup_steps=100, ...)

# Через долю от общего числа шагов
args = TrainingArguments(warmup_ratio=0.03, ...)  # 3% = стандарт

Warmup + cosine decay

Стандартный combo: линейный warmup → cosine decay:

lr: 0 → peak_lr (warmup_steps) → 0 (total_steps, cosine)

Это самое популярное расписание для LLM: плавный старт, агрессивная середина, точная настройка к концу.

Связанные термины

  • lr scheduler — компонент, реализующий warmup
  • learning rate — что нарастает при warmup
  • AdamW — оптимизатор, для которого warmup особенно важен

Готовы запустить GPU-задачу?

Запустить GPU-сервер