Градиент и правило обновления — разные объекты
Backward вычисляет gradient при старых parameters; optimizer хранит собственное состояние и только затем меняет parameters. В Adam используются экспоненциальные moments и bias correction. AdamW добавляет decoupled weight decay непосредственно в update, а не смешивает его с gradient перед adaptive normalization. F02, F06.
Learning-rate schedule определяется по optimizer steps, а при gradient accumulation один step может включать несколько micro-batches. Checkpoint для продолжения должен содержать не только weights, но и moments, scheduler position, scaler mixed precision, step, RNG states и идентичность данных/config. Сохранение одних weights подходит для inference, но не воспроизводит продолжение training.
Что показывает модель. Пошаговая модель разделяет zero_grad → forward → masked loss → backward → clip → optimizer → scheduler. При accumulation параметры не должны обновляться после каждого micro-batch. Weight decay обычно не применяют автоматически ко всем tensors: bias и normalization gains часто получают отдельную parameter group, что обязано быть записано в config.
Граница применимости. Один scalar fixture не отражает распределение tensor gradients, mixed precision и distributed reduction. Одинаковый seed не гарантирует bitwise reproducibility между hardware/kernels. Checkpoint из недоверенного источника может быть исполняемым контейнером в некоторых форматах; безопасная загрузка и проверка hash являются отдельной обязанностью.