horovod.spark: aprendizagem profunda distribuída com Horovod

Saiba como usar o pacote horovod.spark para realizar o treinamento distribuído da versão do machine learning.

horovod.spark em Databricks

Databricks dá suporte ao pacote horovod.spark, que fornece uma API de estimador que você pode usar em ML pipelines com Keras e PyTorch. Para obter detalhes, consulte Horovod on Spark, que inclui uma seção sobre Horovod on Databricks.

Observação

  • Databricks instala o pacote horovod com dependências. Se você fizer upgrade ou downgrade dessas dependências, poderá haver problemas de compatibilidade.

  • Ao usar horovod.spark com callbacks personalizados em 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 ouacima.

Observação

horovod.spark não é compatível com as versões 11.0 e superiores do pyarrow (consulte o problema relevante do GitHub). O Databricks Runtime 15.0 ML inclui a versão 14.0.1 do pyarrow. Para usar horovod.spark com o Databricks Runtime 15.0 ML ou acima, o senhor 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)

Notebooks de exemplo: estimadores Horovod Spark usando Keras e PyTorch

O Notebook a seguir demonstra como usar a API Horovod Spark Estimator com Keras e PyTorch.

Horovod Spark Estimator Keras Notebook

Abra o bloco de anotações em outra guia

Horovod Spark Estimator Notebook PyTorch

Abra o bloco de anotações em outra guia