horovod.spark: aprendizagem profunda distribuída com Horovod

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.

Requisitos

Databricks Runtime ML 7.4 ou superior.

Nota

horovod.sparknã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.

Caderno Horovod Spark Estimator Keras

Obter o bloco de notas

Notebook Horovod Spark Estimator PyTorch

Obter o bloco de notas