Дообучение на 500 примерах теперь дословно повторяет обучающий набор и потеряло общие способности — разберитесь и почините.
Чат-модель на 7B полностью дообучили на 500 написанных вручную ответах поддержки. Теперь она почти дословно воспроизводит обучающие ответы и отказывается от посторонних задач, которые раньше решала.
Ограничения: эти 500 примеров — все размеченные данные на этот месяц, доступна одна GPU. Рецепт менять можно, базовую модель — нельзя.
run=support-sft-v3 base=7B-chat examples=500 method=full lr=2e-5 epochs=8
epoch 1 train_loss=1.42 heldout_loss=1.51 general_bench=64.1
epoch 2 train_loss=0.83 heldout_loss=1.49 general_bench=61.7
epoch 4 train_loss=0.21 heldout_loss=1.88 general_bench=52.3
epoch 8 train_loss=0.02 heldout_loss=2.640 general_bench=38.9
Назовите упорядоченные проверки, укажите строку, локализующую проблему, и дайте починку.
Это переобучение и забывание на крошечном наборе — train loss почти ноль, а отложенный лосс растёт после первой эпохи. Урежьте до одной-двух эпох с early stopping, снизьте learning rate, перейдите на LoRA и разбавьте данные replay.
- ✗Принимают почти нулевой train loss за успех, а не за заучивание
- ✗Смотрят только на целевую метрику, пока общий бенчмарк тихо обваливается
- ✗Добавляют эпохи или learning rate на наборе из 500 примеров вместо уменьшения обновления
- →Как выделять отложенную часть, когда размеченных примеров всего 500?
- →Почему умеренный ранг LoRA часто обгоняет полный fine-tuning на таких малых данных?
Строка epoch 2 уже локализует проблему: отложенный лосс перестал падать и пошёл вверх, а general_bench начал снижаться — дальше идёт заучивание, а не обучение. Порядок проверок — от кривых к рецепту, а не от весов.
- Сверить train и heldout лосс поэпохно: расхождение с эпохи 2 — классическое переобучение.
- Посмотреть
general_benchотдельно от целевой метрики: падение 64 → 39 это забывание. - Проверить размер обновления: 8 эпох при
lr=2e-5на 500 примерах — это много проходов. - Проверить разнообразие данных: 500 однотипных ответов легко запоминаются дословно.
fix: method=lora rank=16 lr=1e-5 epochs=2 early_stop=heldout_loss replay=20%
epoch 1 train_loss=1.39 heldout_loss=1.44 general_bench=63.8
epoch 2 train_loss=1.11 heldout_loss=1.40 general_bench=63.2
Ранняя остановка по отложенному лоссу, LoRA умеренного ранга и подмешанные replay-примеры держат общие способности на месте, а целевое качество растёт без дословного повтора.