Систематический поиск причины, почему модель не учится или ведёт себя странно.
Ключевые тезисы
- Первый тест: переобучите модель на 10 объектах до нулевой ошибки.
- Проверьте порядок меток, нормализацию и распределение градиентов.
- Слишком хороший результат — повод искать утечку, а не радоваться.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Чек-лист отладки
По порядку — от самых частых причин к редким.
- Переобучите модель на 10 объектах. Если она не может выучить их наизусть — баг в коде, а не в данных.
- Проверьте порядок и соответствие
Xиyпосле всех перестановок и мержей. - Посмотрите на распределения признаков в train и test: они должны совпадать.
- Проверьте масштабирование: расходящийся почти всегда означает его отсутствие.
- Посмотрите на нормы градиентов: нули означают затухание, NaN — взрыв или деление на ноль.
- Сравните с константным бейзлайном: модель обязана быть лучше.
Если метрика подозрительно высока — это не удача. Ищите утечку: признак из будущего, дубликаты между частями выборки, target encoding без out-of-fold.
2Воспроизводимость
Без неё отладка превращается в гадание.
import os, random, numpy as np, torch
def seed_all(seed=42):
random.seed(seed); np.random.seed(seed)
torch.manual_seed(seed); torch.cuda.manual_seed_all(seed)
os.environ["PYTHONHASHSEED"] = str(seed)
torch.backends.cudnn.deterministic = TrueПолная детерминированность на GPU иногда невозможна (атомарные операции, разный порядок сложения). Тогда фиксируйте seed и оценивайте разброс по нескольким запускам — это честнее, чем делать вид, что результат точный.
Связанные темы
Рабочий цикл ML-инженера
Problem formulation70%
Постановка задачи · Практика MLПеревод бизнес-вопроса в ML-задачу с целевой переменной, метрикой и ограничениями.
Baselines70%
Бейзлайны · Практика MLПростейшее решение, с которым сравнивается всё остальное: константа, правило, логистическая регрессия.
Hyperparameter tuning70%
Настройка гиперпараметров · Практика MLПоиск конфигурации модели по валидационной метрике — последний, а не первый шаг работы.
Overfitting70%
Переобучение · Практика MLМодель запомнила обучающую выборку вместе с шумом: train-метрика отличная, val — плохая.
Error analysis70%
Анализ ошибок · Оценка моделейРучной разбор случаев, где модель ошибается: почти всегда даёт больше, чем очередной перебор гиперпараметров.
Production ML70%
ML в продакшене · Практика MLМодель в проде — это сервис с SLA, мониторингом, версионированием и планом отката.