horovod.spark: aprendizaje profundo distribuido con Horovod

Aprenda a usar el horovod.sparkpaquete para realizar el entrenamiento distribuido de modelos de Machine Learning.

horovod.spark en Azure Databricks

Azure Databricks es compatible con el paquete horovod.spark, que proporciona una API de estimador que se puede usar en canalizaciones ML con Keras y PyTorch. Para obtener más información, consulte Horovod en Spark, que incluye una sección sobre Horovod en Databricks.

Nota:

  • Azure Databricks instala el paquete horovod con dependencias. Si se actualizan estas dependencias o se cambian a una versión anterior, es posible que se produzcan problemas de compatibilidad.
  • Al usar horovod.spark, con devoluciones de llamada personalizadas en Keras, se deben guardar los modelos en el formato SavedModel de TensorFlow.
    • Con TensorFlow 2.x, el nombre de archivo debe contener el sufijo .tf.
    • Con TensorFlow 1.x, se debe establecer la opción save_weights_only=True.

Requisitos

Databricks Runtime ML 7.4 o versiones posteriores.

Nota:

horovod.spark no admite las versiones 11.0 y posteriores de pyarrow (vea el problema de GitHub pertinente). Databricks Runtime 15.0 ML incluye pyarrow versión 14.0.1. Para usar horovod.spark con Databricks Runtime 15.0 ML o superior, debe instalar manualmente pyarrow, especificando una versión inferior a 11.0.

Ejemplo: Función de entrenamiento distribuido

Este es un ejemplo básico para ejecutar una función de entrenamiento distribuida mediante horovod.spark:

def train():
  import horovod.tensorflow as hvd
  hvd.init()

import horovod.spark
horovod.spark.run(train, num_proc=2)

Cuadernos de ejemplo: Estimadores de Spark Horovod mediante Keras y PyTorch

En los cuadernos siguientes se muestra cómo usar la API estimador de Spark Horovod con Keras y PyTorch.

Cuaderno de Keras del estimador de Horovod Spark

Obtener el cuaderno

Cuaderno de PyTorch del estimador de Spark de Horovod

Obtener el cuaderno