Training

lr scheduler

Алгоритм изменения learning rate в процессе обучения — обычно снижение со временем.

Что такое lr scheduler

Lr scheduler — компонент цикла обучения, изменяющий learning rate по заданному расписанию. Постоянный lr — не оптимален: в начале нужна осторожность (warmup), в середине — агрессивное обучение, к концу — точная настройка с малым шагом.

Популярные расписания

Cosine decay with warmup — стандарт для LLM fine-tuning: lr линейно растёт до пика за warmup_steps, затем убывает по косинусу до нуля.

from transformers import get_cosine_schedule_with_warmup
scheduler = get_cosine_schedule_with_warmup(
    optimizer,
    num_warmup_steps=100,
    num_training_steps=3000
)

Linear decay — линейное снижение после warmup. Проще cosine, работает похоже.

Constant with warmup — удерживает постоянный lr после warmup. Применяется в экспериментах.

Cosine with restarts — периодический «перезапуск» lr для выхода из локальных минимумов.

Настройка в HF Trainer

from transformers import TrainingArguments

args = TrainingArguments(
    lr_scheduler_type="cosine",    # cosine / linear / constant / ...
    warmup_steps=100,              # или warmup_ratio=0.03 (3% от шагов)
    learning_rate=2e-4,
    ...
)

Влияние на обучение

Правильный scheduler обычно даёт 0.5–2% улучшения финального качества по сравнению с константным lr и существенно снижает риск нестабильности в начале обучения (благодаря warmup).

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

  • learning rate — что планировщик изменяет
  • warmup — начальная фаза большинства планировщиков
  • AdamW — оптимизатор, работающий совместно с планировщиком
  • epoch и batch size — определяют общее число шагов

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

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