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-сервер