Распределенное обучение
Azure Databricks рекомендует обучать нейронные сети на одном компьютере, если это возможно. Распределенный код для обучения и вывода будет более сложным, чем код для работы на одном компьютере, и работает медленнее из-за затрат на поддержание связи. Но распределенное обучение и вывод могут быть хорошим вариантом, если ваша модель и (или) данные слишком велики для размещения в памяти одного компьютера. Для этих рабочих нагрузок databricks Runtime ML включает пакеты TorchDistributor, Horovod и spark-tensorflow-распространителя.
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.
spark-tensorflow-distributor
spark-tensorflow-distributor — это нативный пакет с открытым кодом в TensorFlow для распределенного обучения с помощью TensorFlow в кластерах Spark. Дополнительные сведения о распределенной подготовке с помощью TensorFlow 2.
Луч
Ray — это платформа с открытым исходным кодом, которая специализируется на параллельной обработке вычислений для масштабирования рабочих процессов машинного обучения и приложений ИИ. Узнайте , что такое Ray в Azure Databricks?).
Horovod (не рекомендуется)
Внимание
Horovod и HorovodRunner теперь устарели и не будут предварительно установлены в Databricks Runtime 16.0 ML и более поздних версий. Для распределенного глубокого обучения Databricks рекомендует использовать TorchDistributor для распределенного обучения с PyTorch или tf.distribute.Strategy
API для распределенного обучения с TensorFlow.
Платформа распределенного обучения Horovod предназначена для работы с TensorFlow, Keras и PyTorch. Azure Databricks поддерживает распределенное глубокое обучение с использованием HorovodRunner и пакета horovod.spark
. Для приложений конвейера машинного обучения Spark, использующих Keras или PyTorch, вы можете применять API оценщика horovod.spark
. См . Хоровод.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по