Compartir a través de


Apache Spark MLlib y seguimiento de MLflow automatizado

Importante

Esta documentación se ha retirado y es posible que no se actualice. Los productos, servicios o tecnologías mencionados en este contenido ya no se admiten.

Nota:

El seguimiento de MLflow automatizado de MLlib está en desuso en los clústeres que ejecutan Databricks Runtime 10.1 ML y posteriores, y está deshabilitado de manera predeterminada en clústeres que ejecutan Databricks Runtime 10.2 ML y posteriores. En su lugar, use el registro automático de MLflow PySpark ML mediante una llamada a mlflow.pyspark.ml.autolog(), que está habilitado de manera predeterminada con el registro automático de Databricks.

Para usar el antiguo seguimiento de MLflow automatizado de MLlib en Databricks Runtime 10.2 ML, o cualquier versión posterior, habilítelo estableciendo las configuraciones de Spark spark.databricks.mlflow.trackMLlib.enabled true y spark.databricks.mlflow.autologging.enabled false.

MLflow es una plataforma de código abierto para administrar el ciclo de vida completo del aprendizaje automático. MLflow admite el seguimiento para el ajuste de modelos de Machine Learning en Python, R y Scala. Solo para cuadernos de Python, Versiones y compatibilidad de las notas de la versión de Databricks Runtime y Databricks Runtime para Machine Learning admiten seguimiento de MLflow automatizadopara el ajuste de modelos de Apache Spark MLlib.

Con el seguimiento de MLflow automatizado de MLlib, al ejecutar código de ajuste que usa CrossValidator o TrainValidationSplit, los hiperparámetros y las métricas de evaluación se registran automáticamente en MLflow. Sin el seguimiento de MLflow automatizado, debe realizar llamadas API explícitas para registrarse en MLflow.

Administración de ejecuciones de MLflow

Resultados de ajuste de registro CrossValidator o TrainValidationSplit, como ejecuciones de MLflow anidadas:

  • Ejecución principal o primaria: la información de CrossValidator o TrainValidationSplit se registra en la ejecución principal. Si ya hay una ejecución activa, la información se registra en esta ejecución activa, que no se detiene. Si no hay ninguna ejecución activa, MLflow crea una ejecución, se registra en ella y la finaliza antes de volver.
  • Ejecuciones secundarias: cada configuración de hiperparámetro probada y la métrica de evaluación correspondiente se registran en una ejecución secundaria, que depende de la ejecución principal.

Al llamar a fit(), Azure Databricks recomienda la administración de ejecuciones activas de MLflow; es decir, ajustar la llamada a fit() dentro de una instrucción "with mlflow.start_run():". Esto garantiza que la información se registra en su propia ejecución principal de MLflow, y facilita el registro de etiquetas, parámetros o métricas adicionales en esa ejecución.

Nota:

Cuando se llama a fit() varias veces dentro de la misma ejecución activa de MLflow, registra esas ejecuciones en la misma ejecución principal. Para resolver conflictos de nombres de etiquetas y parámetros de MLflow, este anexa un UUID a los nombres con conflictos.

En el siguiente cuaderno de Python se muestra el seguimiento automatizado de MLflow.

Cuaderno de seguimiento de MLflow automatizado

Obtener el cuaderno

Después de llevar a cabo las acciones en la última celda del cuaderno, la interfaz de usuario de MLflow debe mostrar esto:

Demo de MLlib-MLflow