Разнородное оборудование — главная головная боль распределённого обучения, о которой никто не говорит. У вас кластер, где вперемешку стоят RTX 3090 и 4090, видеокарты с разным объёмом видеопамяти (12 ГБ против 24 ГБ), сети с непредсказуемой пропускной способностью и один проклятый узел, который тормозит всю систему.
Большинство фреймворков для обучения рассчитаны на однородные конфигурации. Они наивно распределяют нагрузку, синхронизируют всё глобально и захлёбываются, когда характеристики оборудования различаются. Разработчикам open source-проектов в реальных условиях приходится постоянно следить за кластерами, вручную распределять задачи или просто мириться с ужасно низкой загрузкой GPU.
Суть проблемы в том, что фреймворки считают все узлы равными. Но 3090 не должна получать такой же размер батча, как 4090. Для медленных сетевых соединений нужны асинхронные обновления градиентов. Узлам с ограниченной памятью нужны другие стратегии шардирования модели.
Именно поэтому такие проекты, как DeepSpeed, Megatron и распределённый PyTorch, всё ещё кажутся неудобными при работе с неоднородными конфигурациями. Их не создавали с расчётом на хаотичную реальность вычислительных ресурсов сообщества и парки GPU разных поколений.
Большинство фреймворков для обучения рассчитаны на однородные конфигурации. Они наивно распределяют нагрузку, синхронизируют всё глобально и захлёбываются, когда характеристики оборудования различаются. Разработчикам open source-проектов в реальных условиях приходится постоянно следить за кластерами, вручную распределять задачи или просто мириться с ужасно низкой загрузкой GPU.
Суть проблемы в том, что фреймворки считают все узлы равными. Но 3090 не должна получать такой же размер батча, как 4090. Для медленных сетевых соединений нужны асинхронные обновления градиентов. Узлам с ограниченной памятью нужны другие стратегии шардирования модели.
Именно поэтому такие проекты, как DeepSpeed, Megatron и распределённый PyTorch, всё ещё кажутся неудобными при работе с неоднородными конфигурациями. Их не создавали с расчётом на хаотичную реальность вычислительных ресурсов сообщества и парки GPU разных поколений.