Какие чекапы делать при выборе learning rate для SFT LLM?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
При выборе learning rate для SFT LLM важно не искать «магическое число», а быстро проверить стабильность, скорость сходимости и качество генерации на валидации. Обычно смотрят на loss-кривые, градиентную стабильность, переобучение на небольшом датасете и деградацию базовых способностей модели. Хороший ответ — это набор практических чеков и типичный процесс подбора через несколько пробных запусков.
Определение:
Learning rate в SFT — это шаг обновления весов модели при дообучении на размеченных примерах. Слишком большой learning rate может быстро сломать pretrained-поведение, вызвать нестабильность и рост loss. Слишком маленький — даст очень медленное обучение или почти не изменит модель.
Пример использования:
Обычно делают короткий sweep по нескольким значениям learning rate и смотрят на loss на train/val, а также на качество ответов на фиксированном наборе промптов.
learning_rates = [1e-5, 2e-5, 5e-5]
for lr in learning_rates:
train_result = run_sft(
model_name="base-llm",
train_data=train_split,
val_data=val_split,
learning_rate=lr,
max_steps=1000,
)
print(
lr,
train_result["train_loss_curve"][-1],
train_result["val_loss"],
train_result["sample_outputs"]
)
На практике после каждого прогона сравнивают:
- как быстро падает train loss;
- не растет ли val loss;
- не ухудшаются ли ответы на контрольных примерах;
- не появляется ли нестабильность, NaN, резкие скачки градиентов.
Пояснение кода:
Код показывает простой перебор нескольких learning rate для одинакового SFT-эксперимента. Сначала запускается обучение с конкретным lr, затем снимаются метрики по train и validation, и отдельно смотрятся sample outputs модели. Идея не в автоматическом выборе, а в сравнении поведения модели при разных шагах обновления.
Если нужен более прикладной чек-лист, то обычно проверяют:
- Кривую train loss — должна снижаться плавно, без сильных всплесков.
- Кривую val loss — если train улучшается, а val ухудшается, learning rate может быть слишком большим или обучение идет в переобучение.
- Качество генерации — модель должна сохранять полезный стиль ответов и не терять базовую адекватность.
- Стабильность обучения — отсутствие NaN, divergence, резких скачков градиента и loss.
- Скорость адаптации — если изменение слишком слабое, learning rate может быть занижен.
- Катастрофическое забывание — на контрольных общих задачах модель не должна заметно деградировать.
Ключевые моменты:
- Для SFT LLM learning rate подбирают через короткие пробные прогоны, а не по одной формуле.
- Главные индикаторы — train/val loss, качество ответов и стабильность обучения.
- Слишком большой lr часто дает быстрый, но «ломающий» fine-tuning.
- Слишком маленький lr делает обучение почти незаметным.
- Полезно сравнивать несколько значений на одном и том же сплите, с одинаковыми шагами и batch size.
- Для практики важнее не абсолютное значение lr, а его влияние на стабильность и качество модели.