Градиентное квантование в параллельных данных SGD с пользовательским квантователем
Я хотел бы провести параллельное обучение SGD с собственным градиентным квантованием (чтобы уменьшить связь). Каждый рабочий узел отправляет закодированный (сжатый) градиент на главный узел. Главный узел декодирует сжатый градиент и обновляет параметры. Я буду использовать свои собственные функции кодирования (квантования) и декодирования.
Мне было интересно, в каких рамках глубокого обучения это сделать относительно просто. Спасибо!
1 ответ
Tensorflow имеет встроенный распределенный подход (сервер параметров). Тензорный поток Распределенный
Horovod от uber engg исключительно посвящен этой проблеме. Horovod обзор Horovod github. Я лично предпочитаю подход Horovod, поскольку он масштабируется по тензорному потоку и pytorch. И действительно, многие команды сегодня используют diff takeits для задач diff. Так что, если вы тратите время, упростите портирование между наборами инструментов.