Compartir a través de


Entrenamiento de modelos de Spark ML en Databricks Connect con pyspark.ml.connect

En este artículo se proporciona un ejemplo que muestra cómo usar el pyspark.ml.connect módulo para realizar el entrenamiento distribuido para entrenar modelos de Spark ML y ejecutar la inferencia de modelos.

¿Qué es pyspark.ml.connect?

Spark 3.5 presenta pyspark.ml.connect, que está diseñado para admitir el modo de conexión de Spark y Databricks Connect. Obtenga más información sobre Databricks Connect.

El módulo pyspark.ml.connect consta de algoritmos y utilidades de aprendizaje comunes, como la clasificación, los transformadores de características, las canalizaciones de ML y la validación cruzada. Este módulo proporciona interfaces similares al módulo heredado pyspark.ml, pero actualmente el módulo pyspark.ml.connect solo contiene un subconjunto de los algoritmos de pyspark.ml. A continuación, se enumeran los algoritmos admitidos:

  • Algoritmo de clasificación: pyspark.ml.connect.classification.LogisticRegression
  • Transformadores de características: pyspark.ml.connect.feature.MaxAbsScaler y pyspark.ml.connect.feature.StandardScaler
  • Evaluador: pyspark.ml.connect.RegressionEvaluator, pyspark.ml.connect.BinaryClassificationEvaluator y MulticlassClassificationEvaluator
  • Canalización: pyspark.ml.connect.pipeline.Pipeline
  • Ajuste de modelos: pyspark.ml.connect.tuning.CrossValidator

Requisitos

En Databricks Runtime 17.0 y versiones posteriores, Spark ML en Spark connect está habilitado de forma predeterminada en los recursos de proceso con el modo de acceso estándar con algunas limitaciones. Consulte Limitaciones de Databricks Runtime 17.0 en proceso estándar. Utilice Spark ML en computación estándar si necesita una distribución de Spark para los datos que no entran en la memoria de un solo nodo o si necesita realizar el ajuste de los hiperparámetros de manera distribuida.

Para Databricks Runtime 14.0 ML y versiones posteriores (incluido Databricks Runtime 17.0 en recursos de proceso mediante el modo de acceso dedicado ), hay requisitos adicionales para usar Spark ML:

Cuaderno de ejemplo

En el cuaderno siguiente, se muestra cómo usar Distributed ML en Databricks Connect:

Distributed ML en Databricks Connect

Obtener el cuaderno

Para obtener información de referencia sobre las API en pyspark.ml.connect, Databricks recomienda la referencia de la API de Apache Spark

Limitaciones de Databricks Runtime 17.0 en proceso estándar

  • Solo Python: Spark ML en proceso estándar solo admite Python. R y Scala no se admiten.
  • Compatibilidad con la biblioteca: solo se admite el pyspark.ml paquete. No se admite el pyspark.mllib paquete.
  • Restricciones de tamaño del modelo: el tamaño máximo del modelo es de 1 GB, por lo que es posible que el entrenamiento de modelos extremadamente grandes no sea factible. El entrenamiento del modelo de árbol se detendrá temprano si el tamaño del modelo está a punto de superar los 1 GB.
  • Restricciones de memoria: aunque los datos se pueden distribuir entre el clúster, el propio modelo entrenado se almacena en caché en el nodo de controlador, que se comparte entre otros usuarios. El tamaño máximo de caché del modelo por sesión es de 10 GB y el tamaño máximo de caché del modelo en memoria por sesión es de 25% de la memoria JVM del controlador spark.
  • Tiempos de espera de sesión: el modelo almacenado en caché en el proceso estándar agota automáticamente el tiempo de espera después de 15 minutos de inactividad. Para evitar perder el modelo, guárdelo en el disco en un plazo de 15 minutos después de completar el entrenamiento o mantenga activa la sesión con un uso frecuente.
  • Contención de recursos: En entornos de proceso estándar, los recursos se comparten entre usuarios y trabajos dentro del espacio de trabajo. Ejecutar varios trabajos grandes simultáneamente puede llevar a un rendimiento más lento o a la competencia por los espacios del ejecutor.
  • Sin compatibilidad con GPU: los entornos de proceso estándar no admiten la aceleración de GPU. En el caso de las cargas de trabajo de aprendizaje automático acelerados por GPU, se recomiendan clústeres de GPU dedicados.
  • Modelos de SparkML limitados: no se admiten los siguientes modelos de SparkML:
    • DistributedLDAModel
    • FPGrowthModel