Microsoft Research выпустила библиотеку с открытым исходным кодом, совместимую с PyTorch. DeepSpeed — это библиотека оптимизации для глубокого обучения, которая упрощает работу с большими моделями для обучения, позволяя обучать модели со 100 миллиардами параметров.
Microsoft заявляет, что новая библиотека использует технологию оптимизации памяти для улучшения обучения модели PyTorch, что означает, что исследователи могут использовать больше параметров. Библиотека лучше использует память, локальную для графического процессора, и может использоваться с существующими приложениями PyTorch с незначительными изменениями в приложении.
Преимущества, предлагаемые DeepSpeed, включают распределенное обучение, смешанную точность и контрольные точки с помощью легких API, совместимых с PyTorch.
Одна часть библиотеки DeepSpeed, ZeRO, представляет собой распараллеленный оптимизатор, который отвечает за сокращение использования ресурсов. Microsoft заявляет, что исследователи использовали эти открытия для создания Turing Natural Language Generation (Turing-NLG), крупнейшей публично известной языковой модели с 17 миллиардами параметров. Оптимизатор без избыточности (ZeRO) может обучать модели глубокого обучения со 100 миллиардами параметров на кластерах графических процессоров текущего поколения, что в три-пять раз превышает пропускную способность лучшей текущей системы.
Другие методы оптимизации, включенные в DeepSpeed, включают оптимизацию постоянного буфера и интеллектуальное накопление градиента. Оптимизация постоянного буфера (CBO) обеспечивает высокую пропускную способность сети и памяти, ограничивая использование памяти постоянным размером. Это работает так, что для большинства операций, связанных с памятью и сетью, производительность зависит от размера операнда. CBO в DeepSpeed объединяет меньшие операнды в буфер заранее определенного размера, достаточно большой для повышения производительности без ненужных накладных расходов на память.
Третий метод оптимизации — это умное накопление градиента. Это можно использовать для запуска пакетов большего размера с ограниченной памятью, разбив эффективный пакет на несколько последовательных микропакетов и усреднив градиенты параметров по этим микропакетам.
Исследователи asy DeepSpeed поддерживают все формы параллелизма моделей, включая подходы на основе тензорного среза, такие как Megatron-LM, или подход конвейерного параллелизма, такой как PipeDream или GPipe. Это достигается за счет того, что от инфраструктуры параллелизма моделей требуется только предоставить модуль параллелизма модели (mpu), который реализует несколько функций бухгалтерского учета.
DeepSpeed доступен для загрузки на GitHub.