Поделиться через


Распределенное обучение

Azure Databricks рекомендует обучать нейронные сети на одном компьютере, если это возможно. Распределенный код для обучения и вывода будет более сложным, чем код для работы на одном компьютере, и работает медленнее из-за затрат на поддержание связи. Но распределенное обучение и вывод могут быть хорошим вариантом, если ваша модель и (или) данные слишком велики для размещения в памяти одного компьютера. Для этих рабочих нагрузок машинное обучение Databricks Runtime включает в себя факелDistributor, распространитель DeepSpeed и пакеты Ray.

Azure Databricks также предлагает распределенное обучение для моделей машинного обучения Spark с pyspark.ml.connect помощью модуля, см. в статье Обучение моделей машинного обучения Spark в Databricks Connect с помощью pyspark.ml.connect.

Примечание.

Databricks не рекомендует выполнять распределенное обучение с несколькими узлами с использованием виртуальных машин серии NC из-за низкой производительности сети между узлами. Вместо этого используйте один узел с несколькими GPU или другой размер виртуальной машины GPU, например серию NCasT4_v3, которая поддерживает ускоренную работу сети.

Распространитель DeepSpeed

Распространитель DeepSpeed построен на основе TorchDistributor и является рекомендуемым решением для клиентов с моделями, которые требуют более высокой вычислительной мощности, но ограничены ограничениями памяти. DeepSpeed — это библиотека с открытым исходным кодом, разработанная корпорацией Майкрософт и предлагает оптимизированное использование памяти, снижение затрат на обмен данными и расширенный параллелизм конвейера. Дополнительные сведения о распределенной подготовке с помощью распространителя DeepSpeed

ФакелDistributor

TorchDistributor — это модуль с открытым исходным кодом в PySpark, который помогает пользователям выполнять распределенное обучение с помощью PyTorch в кластерах Spark, поэтому он позволяет запускать задания обучения PyTorch в качестве заданий Spark. Она инициализирует среду и каналы связи между работниками и использует команду torch.distributed.run CLI для выполнения распределенного обучения между рабочими узлами. Дополнительные сведения о распределенной подготовке с помощью TorchDistributor.

Луч

Ray — это платформа с открытым исходным кодом, которая специализируется на параллельной обработке вычислений для масштабирования рабочих процессов машинного обучения и приложений ИИ. См. статью "Что такое Ray в Azure Databricks?".