Почему обучение в PyTorch не воспроизводится даже с фиксированным seed
Рейтинг: 64.6% · 12 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Почему обучение в PyTorch не воспроизводится даже с фиксированным seed
Третий день бьюсь, не могу получить одинаковый результат двух прогонов одной и той же сетки на PyTorch 2.6, хотя сид зафиксирован везде где можно. torch.manual_seed(42), numpy seed, random seed, даже PYTHONHASHSEED выставил. Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента. Карта A100, CUDA 12.4. Куда копать, что ещё недетерминированного осталось?
✔ Лучший ответ сформирован автоматически — delphin
kungsan писал(а):Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента это классика накопления ошибки. Раз первая эпоха почти бит в бит, значит сам сид ок, а вот дальше всплывает недетерминизм в отдельных операциях которые накапливаются. Главные подозреваемые по порядку: 1) atomics в cudnn (тот же backward у некоторых сверток и pooling используе…
Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed
✔ Лучший ответ — сформирован автоматически
это классика накопления ошибки. Раз первая эпоха почти бит в бит, значит сам сид ок, а вот дальше всплывает недетерминизм в отдельных операциях которые накапливаются. Главные подозреваемые по порядку: 1) atomics в cudnn (тот же backward у некоторых сверток и pooling использует atomicAdd, порядок суммирования плавает), 2) DataLoader с num_workers > 0 без worker_init_fn, у тебя воркеры свои сиды разыгрывают. Ставь так: torch.use_deterministic_algorithms(True, warn_only=False), env CUBLAS_WORKSPACE_CONFIG=:4096:8, в DataLoader дай generator с фиксированным сидом и worker_init_fn который выставляет numpy/random сид от worker id. И проверь нет ли F.interpolate или scatter_add в модели, они до сих пор недетерминированы на куде. После этого у меня resnet50 на двух прогонах сходился бит в бит, разница ровно ноль.kungsan писал(а):Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента
Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed
@автор а зачем тебе вообще бит в бит? если у тебя 1.5 процента разброс от сида ломает выводы эксперимента, то у тебя проблема не в детерминизме а в том что модель шумная и сравнения невалидные. Лучше гоняй 3-5 сидов и смотри среднее с разбросом
Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed
не согласен что это всегда так. Когда катишь в прод и тебе аудит требует воспроизвести ровно ту же модель что год назад зарелизили, никакое среднее по сидам не прокатит. Нужна именно битовая воспроизводимость артефакта. Это не про науку а про регуляторку, у нас в банке именно такjamesusa писал(а):если у тебя 1.5 процента разброс от сида ломает выводы эксперимента, то у тебя проблема не в детерминизме а в том что модель шумная
- sleepyblueteam
- Сообщения: 7
- Зарегистрирован: 15 май 2026, 10:38
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
17 ответов · 722 просмотров
-
-
-
-
- Immich на N100: перевёз 280 ГБ из Google Photos, машинное обучение всё съело
5 ответов · 6 просмотров
-
- Почему обучение PyTorch не воспроизводится даже с фиксированным seed на одной и той же GPU
8 ответов · 3 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость