treinamento distribuído

Quando possível, a Databricks recomenda que você ensine rede neural em uma única máquina; o código distribuído para treinamento e inferência é mais complexo do que o código de máquina única e mais lento devido à sobrecarga de comunicação. No entanto, você deve considerar o treinamento distribuído e a inferência se seu modelo ou seus dados forem muito grandes para caber na memória de uma única máquina. Para essas cargas de trabalho, o Databricks Runtime ML inclui o pacote TorchDistributor, Horovod e spark-tensorflow-distributor.

O Databricks também oferece treinamento distribuído para modelos Spark ML com o módulo pyspark.ml.connect. Consulte ensinar modelos Spark ML no Databricks Connect com PySpark.ml.connect.

Distribuidor DeepSpeed

O distribuidor DeepSpeed é construído sobre o TorchDistributor e é uma solução recomendada para clientes com modelos que exigem maior poder compute , mas são limitados por restrições de memória. DeepSpeed é uma biblioteca de código aberto desenvolvida pela Microsoft e oferece uso otimizado de memória, sobrecarga de comunicação reduzida e paralelismo de pipeline avançado. Saiba mais sobre o treinamento distribuído com o distribuidor DeepSpeed

Distribuidor de tochas

TorchDistributor é um módulo de código aberto no PySpark que ajuda os usuários a fazer treinamento distribuído com PyTorch em seus clusters Spark, permitindo que você inicie Job de treinamento PyTorch como Spark Job. Sob o capô, ele inicializa o ambiente e o canal de comunicação entre o worker e utiliza o comando CLI torch.distributed.run para executar o treinamento distribuído entre os nós worker . Saiba mais sobre treinamento distribuído com TorchDistributor.

spark-tensorflow-distributor

spark-tensorflow-distributor é um pacote nativo de código aberto no TensorFlow para treinamento distribuído com TensorFlow em clusters Spark. Saiba mais sobre o treinamento distribuído com o TensorFlow 2.

Ray

Ray é uma estrutura de código aberto especializada em processamento paralelo compute para escalonamento de ML fluxo de trabalho e aplicativos de IA. Consulte O que é Ray on Databricks?)

Horovod (obsoleto)

Importante

Horovod e HorovodRunner agora estão obsoletos e não serão pré-instalados em Databricks Runtime 16.0 ML e acima. Para a aprendizagem profunda distribuída, a Databricks recomenda usar o TorchDistributor para treinamento distribuído com o PyTorch ou a API tf.distribute.Strategy para treinamento distribuído com o TensorFlow.

O Horovod é uma estrutura de treinamento distribuída para TensorFlow, Keras e PyTorch. A Databricks oferece suporte ao treinamento de aprendizagem profunda distribuída usando o HorovodRunner e o pacote horovod.spark. Para aplicativos Spark ML pipeline que usam Keras ou PyTorch, o senhor pode usar o estimador horovod.spark API. Ver Horovod.