horovod.spark
: aprendizagem profunda distribuída com Horovod
Importante
Horovod e HorovodRunner estão agora obsoletos. As versões posteriores ao 15.4 LTS ML não terão este pacote pré-instalado. Para aprendizagem profunda distribuída, a Databricks recomenda o uso do TorchDistributor para treinamento distribuído com o PyTorch ou a API para treinamento distribuído com o tf.distribute.Strategy
TensorFlow.
Saiba como usar o horovod.spark
pacote para realizar treinamento distribuído de modelos de aprendizado de máquina.
horovod.spark
no Azure Databricks
O Azure Databricks dá suporte ao horovod.spark
pacote, que fornece uma API de estimador que você pode usar em pipelines de ML com Keras e PyTorch. Para obter detalhes, consulte Horovod no Spark, que inclui uma seção sobre Horovod no Databricks.
Nota
- O Azure Databricks instala o
horovod
pacote com dependências. Se você atualizar ou fazer downgrade dessas dependências, pode haver problemas de compatibilidade. - Ao usar
horovod.spark
com retornos de chamada personalizados no Keras, você deve salvar modelos no formato TensorFlow SavedModel.- Com o TensorFlow 2.x, use o sufixo
.tf
no nome do arquivo. - Com o TensorFlow 1.x, defina a opção
save_weights_only=True
.
- Com o TensorFlow 2.x, use o sufixo
Requisitos
Databricks Runtime ML 7.4 ou superior.
Nota
horovod.spark
não suporta pyarrow versões 11.0 e superiores (consulte o problema relevante do GitHub). O Databricks Runtime 15.0 ML inclui pyarrow versão 14.0.1. Para usar horovod.spark
com o Databricks Runtime 15.0 ML ou superior, você deve instalar manualmente o pyarrow, especificando uma versão abaixo de 11.0.
Exemplo: Função de treinamento distribuído
Aqui está um exemplo básico para executar uma função de treinamento distribuído usando horovod.spark
:
def train():
import horovod.tensorflow as hvd
hvd.init()
import horovod.spark
horovod.spark.run(train, num_proc=2)
Exemplos de blocos de anotações: estimadores Horovod Spark usando Keras e PyTorch
Os blocos de anotações a seguir demonstram como usar a API do Horovod Spark Estimator com Keras e PyTorch.