Sobes.tech
Back to questions
Middle — Senior
17

Какие чекапы делать при выборе learning rate для SFT LLM?

Companies where asked
Sensemitter
Лаборатория Касперского

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

Если нужен более прикладной чек-лист, то обычно проверяют:

  1. Кривую train loss — должна снижаться плавно, без сильных всплесков.
  2. Кривую val loss — если train улучшается, а val ухудшается, learning rate может быть слишком большим или обучение идет в переобучение.
  3. Качество генерации — модель должна сохранять полезный стиль ответов и не терять базовую адекватность.
  4. Стабильность обучения — отсутствие NaN, divergence, резких скачков градиента и loss.
  5. Скорость адаптации — если изменение слишком слабое, learning rate может быть занижен.
  6. Катастрофическое забывание — на контрольных общих задачах модель не должна заметно деградировать.

Ключевые моменты:

  • Для SFT LLM learning rate подбирают через короткие пробные прогоны, а не по одной формуле.
  • Главные индикаторы — train/val loss, качество ответов и стабильность обучения.
  • Слишком большой lr часто дает быстрый, но «ломающий» fine-tuning.
  • Слишком маленький lr делает обучение почти незаметным.
  • Полезно сравнивать несколько значений на одном и том же сплите, с одинаковыми шагами и batch size.
  • Для практики важнее не абсолютное значение lr, а его влияние на стабильность и качество модели.