Компания Microsoft выпустила DeepSpeed, новую библиотеку оптимизации глубинного обучения для PyTorch, которая проектировалась с целях уменьшения объема используемой памяти и обучения моделей с расширенным параллелизмом на доступном оборудовании.
В записи блога Microsoft Research с анонсом нового фреймворка говорится, что DeepSpeed улучшит модель обучения PyTorch с помощью технологии оптимизации памяти, которая увеличивает число возможных параметров, улучшает использование локальной памяти графического процессора и требует внесения минимальных изменений в уже существующие приложения PyTorch.
Влияние на существующий код PyTorch минимально, но при этом общее потенциальное воздействие весьма высоко. По мере появления все новых библиотек машинного обучения и увеличения числа зависящих от них приложений для новых фреймворков остается все меньше места, но при этом появляются дополнительные стимулы к повышению производительности и масштабируемости существующих фреймворков.
Что касается скорости разработки и выполнения вычислений, PyTorch уже сейчас функционирует достаточно быстро, но и здесь есть пространство для улучшений. Приложения, написанные для PyTorch могут использовать DeepSpeed с минимальными изменениями в коде. При этом нет необходимости начинать все с нуля, применяя другой фреймворк.
DeepSpeed расширяет возможности PyTorch, улучшая параллелизм этой технологии. В одном из примеров, приведенных в документации Microsoft к DeepSpeed, указано, что в модели обучения, используемой системой PyTorch Distributed Data Parallel на графической плате Nvidia V100 с памятью объемом 32 Гбайт, ошибка исчерпания памяти возникла при 1,5 млрд параметров, тогда как DeepSpeed на том же оборудовании удалось разместить 6 млрд параметров.
Еще одним улучшением стало более эффективное использование DeepSpeed памяти графического процессора при обучении. Распределяя нагрузку обучения между графическими процессорами, DeepSpeed позволяет держать нужные данные под рукой, уменьшая требования к памяти для каждого графического процессора и сокращая накладные расходы на организацию связи между ними.
Третье преимущество заключается в том, что в процессе обучения модели поддерживается больше параметров, улучшающих точность прогнозирования. Гиперпараметрическая оптимизация, которая относится к настройке параметров или переменных самого процесса обучения, способна повысить точность модели, но обычно это происходит за счет усилий и действий, выполняемых вручную.
Чтобы устранить необходимость в экспертных знаниях и человеческих усилиях, многие фреймворки машинного обучения теперь поддерживают те или иные виды автоматической гиперпараметризации. В Microsoft утверждают, что с DeepSpeed модели с глубинным обучением и 100 млрд параметров могут обучаться на существующих кластерах графических процессоров с пропускной способностью, которая в три-пять раз превосходит пропускную способность лучших из нынешних систем.
DeepSpeed с открытым кодом свободно распространяется по лицензии МТИ. В руководстве, размещенном в официальном репозитарии, говорится о поддержке работы в среде Azure, но для использования DeepSpeed Azure не требуется.