Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Рейтинг: 51.8% · 22 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- juniorstack
- Сообщения: 62
- Зарегистрирован: 12 май 2026, 12:04
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Кстати, между версиями torch вообще никто не обещает воспроизводимость. У меня модель обученная на 1.13 и 2.1 давала разный loss на одинаковом сиде, потому что поменяли реализацию SDPA (flash attention). Так что зафиксируйте ещё и версию в requirements намертво.
✔ Лучший ответ сформирован автоматически — ama123
Короче подытожу что у меня сейчас работает приемлемо: generator с manual_seed в DataLoader, num_workers оставил 8 но с worker_init_fn, use_deterministic_algorithms(True), CUBLAS_WORKSPACE_CONFIG в env, версии заморожены. Bit-exact на GPU так и не получил между разными машинами, но на одной и той же — да. Между CPU и GPU даже не пытаюсь, это в доке прямо написано что не гарантируется.
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Замечу: bench=False убивает автотюнинг свёрток, для фиксированного размера входа это прям больно. Если у тебя image size постоянный, benchmark=True наоборот ускоряет, но ценой недетерминизма. Классический trade-off.
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
@juniorstack ага, seed=42 в ноутбуке на CPU работает прекрасно. А потом ты выкатываешь на мультигпу с DDP и понимаешь что у каждого ранка свой сид нужен, иначе все воркеры генерят одинаковые аугментации и ты фактически уменьшаешь разнообразие данных.
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
✔ Лучший ответ — сформирован автоматически
Короче подытожу что у меня сейчас работает приемлемо: generator с manual_seed в DataLoader, num_workers оставил 8 но с worker_init_fn, use_deterministic_algorithms(True), CUBLAS_WORKSPACE_CONFIG в env, версии заморожены. Bit-exact на GPU так и не получил между разными машинами, но на одной и той же — да. Между CPU и GPU даже не пытаюсь, это в доке прямо написано что не гарантируется.
- lonelygoblin
- Сообщения: 61
- Зарегистрирован: 12 май 2026, 12:45
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
@ninja_anton честно, к этому и иду. Спасибо всем, реально помогли.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
- Контора поставила трекер со скриншотами каждые 10 минут. Терпеть или валить?
8 ответов · 82 просмотров
-
-
-
- Тимлид поставил exceeds, после калибровки пришло meets. Кто видел эти комитеты изнутри?
5 ответов · 56 просмотров
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость