Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Рейтинг: 64.6% · 12 голосов
Machine learning и deep learning: обучение и дообучение моделей, датасеты, PyTorch, TensorFlow, эксперименты, метрики, MLOps и аналитика данных.
Ответить
Аватара пользователя
kungsan
Сообщения: 13
Зарегистрирован: 15 май 2026, 13:11

Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение kungsan »

Третий день бьюсь, не могу получить одинаковый результат двух прогонов одной и той же сетки на PyTorch 2.6, хотя сид зафиксирован везде где можно. torch.manual_seed(42), numpy seed, random seed, даже PYTHONHASHSEED выставил. Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента. Карта A100, CUDA 12.4. Куда копать, что ещё недетерминированного осталось?
👍4 ❤️1 🔥 😄1 🤔
✔ Лучший ответ сформирован автоматически — delphin
kungsan писал(а):Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента это классика накопления ошибки. Раз первая эпоха почти бит в бит, значит сам сид ок, а вот дальше всплывает недетерминизм в отдельных операциях которые накапливаются. Главные подозреваемые по порядку: 1) atomics в cudnn (тот же backward у некоторых сверток и pooling используе…
Перейти к ответу →
Аватара пользователя
jpearce
Сообщения: 47
Зарегистрирован: 11 май 2026, 23:34

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение jpearce »

ты torch.use_deterministic_algorithms(True) ставил? без него часть cudnn кернелов плавает
👍 ❤️ 🔥2 😄 🤔
Аватара пользователя
trasche10
Сообщения: 19
Зарегистрирован: 11 май 2026, 18:00

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение trasche10 »

И CUBLAS_WORKSPACE_CONFIG=:4096:8 в окружение не забудь, иначе матмулы на куде будут гулять. Без этой переменной use_deterministic_algorithms вообще кинет ошибку на некоторых операциях.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
delphin
Сообщения: 72
Зарегистрирован: 13 май 2026, 02:35

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение delphin »

✔ Лучший ответ — сформирован автоматически
kungsan писал(а):Loss на первой эпохе совпадает до пятого знака, а к десятой эпохе расхождение в accuracy уже 1.5 процента
это классика накопления ошибки. Раз первая эпоха почти бит в бит, значит сам сид ок, а вот дальше всплывает недетерминизм в отдельных операциях которые накапливаются. Главные подозреваемые по порядку: 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 на двух прогонах сходился бит в бит, разница ровно ноль.
👍 ❤️2 🔥 😄 🤔1
Аватара пользователя
jamesusa
Сообщения: 5
Зарегистрирован: 12 май 2026, 07:30

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение jamesusa »

@автор а зачем тебе вообще бит в бит? если у тебя 1.5 процента разброс от сида ломает выводы эксперимента, то у тебя проблема не в детерминизме а в том что модель шумная и сравнения невалидные. Лучше гоняй 3-5 сидов и смотри среднее с разбросом
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
docker13
Сообщения: 23
Зарегистрирован: 12 май 2026, 16:43

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение docker13 »

jamesusa писал(а):если у тебя 1.5 процента разброс от сида ломает выводы эксперимента, то у тебя проблема не в детерминизме а в том что модель шумная
не согласен что это всегда так. Когда катишь в прод и тебе аудит требует воспроизвести ровно ту же модель что год назад зарелизили, никакое среднее по сидам не прокатит. Нужна именно битовая воспроизводимость артефакта. Это не про науку а про регуляторку, у нас в банке именно так
👍 ❤️1 🔥2 😄 🤔
Аватара пользователя
sleepyblueteam
Сообщения: 7
Зарегистрирован: 15 май 2026, 10:38

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение sleepyblueteam »

num_workers сколько? ставь 0 для теста, сразу поймешь воркеры виноваты или нет
👍 ❤️2 🔥 😄 🤔
Аватара пользователя
ransome
Сообщения: 37
Зарегистрирован: 11 май 2026, 01:39

Re: Почему обучение в PyTorch не воспроизводится даже с фиксированным seed

Сообщение ransome »

кстати на multi-gpu через DDP вообще забей про полный детерминизм, allreduce порядок редукции по картам не гарантирован если у тебя async. Там только ddp с фиксированным порядком и то не всегда
👍1 ❤️ 🔥 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Машинное обучение и Data Science»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость