Seguimiento de ejecuciones de entrenamiento de aprendizaje automático

El componente de seguimiento de MLflow permite registrar propiedades de origen, parámetros, métricas, etiquetas y artefactos relacionados con el entrenamiento de un modelo de aprendizaje automático. Para empezar a trabajar con MLflow, pruebe uno de los tutoriales de inicio rápido de MLflow.

El seguimiento de MLflow se basa en dos conceptos: experimentos y ejecuciones:

  • Un experimento de MLflow es la unidad principal de organización y control de acceso para las ejecuciones de MLflow. todas las ejecuciones de MLflow pertenecen a un experimento. Los experimentos permiten visualizar, buscar y comparar ejecuciones, así como descargar artefactos de ejecución y metadatos para su análisis en otras herramientas.
  • Una ejecución de MLflow corresponde a una única ejecución de código de modelo. Cada ejecución registra la siguiente información:
    • Origen: nombre del cuaderno que inició la ejecución o el nombre del proyecto y el punto de entrada de la ejecución.
    • Versión: revisión del cuaderno si se ejecuta desde un cuaderno o hash de confirmación de Git si se ejecuta desde un MLflow Project.
    • Iniciar & hora de finalización: hora de inicio y finalización de la ejecución.
    • Parámetros: parámetros de modelo guardados como pares clave-valor. Tanto las claves como los valores son cadenas.
    • Métricas: métricas de evaluación del modelo guardadas como pares clave-valor. El valor es numérico. Cada métrica se puede actualizar a lo largo del transcurso de la ejecución (por ejemplo, para realizar un seguimiento de cómo la función de pérdida del modelo está convergiendo) y registros de MLflow y permite visualizar el historial de la métrica.
    • Etiquetas: ejecute los metadatos guardados como pares clave-valor. Puede actualizar las etiquetas durante y después de que se complete una ejecución. Tanto las claves como los valores son cadenas.
    • Artifacts: archivos de salida en cualquier formato. Por ejemplo, puede grabar imágenes, modelos (por ejemplo, un modelo scikit-learn en pickled) y archivos de datos (por ejemplo, un archivo Parquet) como artefacto.

Use MLflow Tracking API para registrar parámetros, métricas, etiquetas y artefactos de una ejecución de modelo. La API de seguimiento se comunica con un servidor de seguimientode MLflow. Cuando se usa Databricks, un servidor de seguimiento hospedado en Databricks registra los datos. El servidor de seguimiento de MLflow hospedado tiene API de Python, Java y R.

Para obtener información sobre cómo controlar el acceso a los experimentos, vea Permisos de experimentos de MLflow.

Nota

MLflow se instala en Databricks Runtime ML clústeres. Para usar MLflow en un clúster Databricks Runtime, debe instalar la mlflow biblioteca. Para obtener instrucciones sobre cómo instalar una biblioteca en un clúster, consulte Instalación de una biblioteca en un clúster. Los paquetes específicos que se van a instalar para MLflow son:

  • En Python, seleccione PyPI de origen de biblioteca y escriba mlflow en el campo Paquete.
  • En R, seleccione CRAN de origen de biblioteca y escriba en el campo mlflow Paquete.
  • Para Scala, instale estos dos paquetes:
    • Seleccione Library Source Maven (Maven de origen de biblioteca) y escriba en el campo Coordinates org.mlflow:mlflow-client:1.11.0 (Coordenadas).
    • Seleccione PyPI de origen de biblioteca y escriba en el mlflow campo Paquete.

Dónde se registran las ejecuciones de MLflow

Todas las ejecuciones de MLflow se registran en el experimento activo, que se puede establecer mediante cualquiera de las siguientes maneras:

Si no se establece ningún experimento activo, las ejecuciones se registran en el experimento del cuaderno.

Experimentos

Hay dos tipos de experimentos: área de trabajo y cuaderno.

  • Puede crear un experimento de área de trabajo desde la interfaz de usuario Machine Learning Databricks o la API de MLflow. Los experimentos del área de trabajo no están asociados a ningún cuaderno y cualquier cuaderno puede registrar una ejecución en estos experimentos mediante el identificador del experimento o el nombre del experimento.
  • Un experimento de cuaderno está asociado a un cuaderno específico. Azure Databricks crea automáticamente un experimento de cuaderno si no hay ningún experimento activo al iniciar una ejecución mediante mlflow.start_run().

Para obtener información sobre cómo controlar el acceso a los experimentos, consulte Permisos de experimentos de MLflow.

Obtener el nombre del experimento

Para copiar el nombre del experimento, haga clic en el icono  Copiar en la parte superior de la página del experimento. Puede usar este nombre en el comando MLflow set_experiment para establecer el experimento de MLflow activo.

Icono de nombre del experimento

También puede copiar el nombre del experimento de la barra lateral del experimento en un cuaderno.

Experimentos del área de trabajo

En esta sección se describe cómo crear un experimento de área de trabajo mediante la interfaz Azure Databricks usuario. También puede usar la API de MLflow.

Para obtener instrucciones sobre las ejecuciones de registro en experimentos de área de trabajo, consulte Log runs to a notebook or workspace experiment (Registro de ejecuciones en un cuaderno o un experimento de área de trabajo).

Creación de un experimento de área de trabajo

  1. Haga clic  en Workspace Icon Workspace (Área de trabajo icono del área de trabajo) en la barra lateral.

  2. Vaya a la carpeta en la que desea crear el experimento.

  3. Realice una de las siguientes acciones:

    • Junto a cualquier carpeta, haga clic en menú desplegable en el lado derecho del texto y seleccione Crear >  experimento de MLflow.

      Crear un experimento

    • En el área de trabajo o en una carpeta de usuario, haga clic en Down Caret (Flecha abajo) y  seleccione Create > MLflow Experiment (Crear > experimento de MLflow).

  4. En el cuadro de diálogo Crear experimento de MLflow, escriba un nombre para el experimento y una ubicación de artefacto opcional. Si no especifica una ubicación de artefacto, los artefactos se almacenan en dbfs:/databricks/mlflow-tracking/<experiment-id> .

    Azure Databricks dbfs y ubicaciones de artefactos de Azure Blob Storage.

    Para almacenar artefactos en Azure Blob Storage, especifique un URI con el formato wasbs://<container>@<storage-account>.blob.core.windows.net/<path> . Artifacts almacenados en Azure Blob Storage no aparecen en la interfaz de usuario de MLflow; debe descargarlos mediante un cliente de Blob Storage.

    Nota

    Cuando se almacena un artefacto en una ubicación que no sea DBFS, el artefacto no aparece en la interfaz de usuario de MLflow. Los modelos almacenados en ubicaciones distintas de DBFS no se pueden registrar en el Registro de modelos.

  5. Haga clic en Crear. Se muestra un experimento vacío.

Visualización del experimento del área de trabajo

  1. Haga clic  en Workspace Icon Workspace (Área de trabajo icono del área de trabajo) en la barra lateral.
  2. Vaya a la carpeta que contiene el experimento.
  3. Haga clic en el nombre del experimento.

Eliminación del experimento del área de trabajo

  1. Haga clic  en Workspace Icon Workspace (Área de trabajo icono del área de trabajo) en la barra lateral.
  2. Vaya a la carpeta que contiene el experimento.
  3. Haga clic  en menú desplegable en el lado derecho del experimento y seleccione Mover a la papelera.

Experimentos de cuadernos

Cuando se usa el comando mlflow.start_run() en un cuaderno, la ejecución registra métricas y parámetros en el experimento activo. Si no hay ningún experimento activo, Azure Databricks un experimento de cuaderno. Un experimento de cuaderno comparte el mismo nombre e identificador que su cuaderno correspondiente. El identificador del cuaderno es el identificador numérico al final de una dirección URL del cuaderno y el identificador.

Para obtener instrucciones sobre las ejecuciones de registro en experimentos de cuadernos, consulte Log runs to a notebook or workspace experiment (Registro de ejecuciones en un cuaderno o un experimento de área de trabajo).

Nota

Si elimina un experimento de cuaderno mediante la API (por ejemplo, en Python), el propio cuaderno se mueve a MlflowClient.tracking.delete_experiment() la carpeta Papelera.

Visualización del experimento de cuaderno

El icono Experimento icono de experimento en la barra de herramientas del cuaderno le proporciona acceso a las  ejecuciones creadas por el cuaderno.

Barra de herramientas de los cuaderno

Haga clic en él para mostrar la barra lateral Ejecuciones de experimentos. En la parte superior de la barra lateral se encuentra el nombre del experimento en el que se ejecuta el cuaderno registrado más recientemente (ya sea un experimento de cuaderno o un experimento de área de trabajo). La barra lateral muestra un resumen de cada ejecución asociada a ese experimento, incluidos los parámetros de ejecución y las métricas.

Visualización de parámetros y métricas de ejecución

En la barra lateral, puede ir a la página del experimento o directamente a una ejecución.

  • Para ver el experimento, haga clic en el icono Vínculo externo situado en el  extremo derecho, junto a Ejecuciones de experimento.

    Visualización de un experimento

    En la página del experimento se enumeran todas las ejecuciones asociadas al experimento. En la tabla , puede abrir la página de ejecución de cualquier ejecución asociada al experimento haciendo clic en su hora de inicio. La columna Origen proporciona acceso a la versión del cuaderno que creó la ejecución. También puede buscar y filtrar ejecuciones por métricas o configuración de parámetros.

  • Para ver una ejecución, haga clic en el icono Vínculo externo junto a la fecha y hora de la ejecución en la barra lateral  Ejecuciones de experimento. Se muestra la página de ejecuciones. Para obtener más información sobre esta página, vea Mostrar detalles de ejecución.

    Visualización de la ejecución

Para ver la versión del cuaderno que creó una ejecución, también puede realizar una de las siguientes acciones:

  • En la barra lateral Ejecuciones de experimento, haga clic en el icono notebook Icono de versión  del cuaderno en el cuadro correspondiente a la ejecución del experimento.
  • En la página Ejecutar, haga clic en el vínculo situado junto a Origen.

La versión del cuaderno asociada a la ejecución aparece en la ventana principal con una barra de resaltado que muestra la fecha y hora de la ejecución.

Eliminación de un experimento de cuaderno

Los experimentos de cuaderno forman parte del cuaderno y no se pueden eliminar por separado. Si elimina el cuaderno, se elimina el experimento del cuaderno. Si elimina un experimento de cuaderno mediante la API (por ejemplo, MlflowClient.tracking.delete_experiment() en Python), también se elimina el cuaderno.

Ejecuciones

Todas las ejecuciones de MLflow se registran en el experimento activo. Si no ha establecido explícitamente un experimento como experimento activo, las ejecuciones se registran en el experimento del cuaderno.

El registro se ejecuta en un cuaderno o un experimento de área de trabajo

En este cuaderno se muestran ejemplos de cómo registrar ejecuciones en un experimento de cuaderno y en un experimento de área de trabajo. Solo las ejecuciones de MLflow iniciadas dentro de un cuaderno se pueden registrar en el experimento del cuaderno. Las ejecuciones de MLflow iniciadas desde cualquier cuaderno o desde las API se pueden registrar en un experimento de área de trabajo. Para obtener información sobre cómo ver las ejecuciones registradas, vea Ver experimento de cuaderno y Ver experimento de área de trabajo.

Cuaderno de ejecuciones de MLflow de registro

Obtener el cuaderno

Puede usar las API de Python, Java o Scala y R de MLflow para iniciar ejecuciones y registrar datos de ejecución. Para más información, consulte los cuadernos de inicio rápido de MLflow.

Visualización y administración de ejecuciones en experimentos

Dentro de un experimento puede realizar muchas operaciones en sus ejecuciones contenidas.

Ejecuciones de filtro

Puede buscar ejecuciones en función de los valores de parámetro o métrica. Para buscar ejecuciones que coincidan con una expresión que contiene valores de parámetro y métrica, escriba una consulta en el campo de búsqueda y haga clic en Buscar. Algunos ejemplos de sintaxis de consulta son:

metrics.r2 > 0.3

params.elasticNetParam = 0.5

params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

También puede filtrar las ejecuciones en función de su estado (Activo o Eliminado) y en función de si una versión del modelo está asociada a la ejecución. Para ello, haga clic en Filtrar a la derecha del cuadro Buscar. Aparecen los menús desplegables Estado y Modelos vinculados. Realice las selecciones en los menús desplegables.

Ejecuciones de filtro

Descarga de ejecuciones

  1. Seleccione una o varias ejecuciones.

  2. Haga clic en Descargar CSV. Se descarga un archivo CSV que contiene los campos siguientes:

    Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
    

Visualización de los detalles de la ejecución

Haga clic en el vínculo de fecha de una ejecución. Se muestra la pantalla de detalles de ejecución. En esta pantalla se muestran los parámetros usados para la ejecución, las métricas resultantes de la ejecución y las etiquetas o notas. También tiene acceso a los artefactos guardados de una ejecución en esta pantalla.

Visualización del cuaderno o el proyecto de Git usado para una ejecución

Para ver la versión específica del cuaderno o el proyecto de Git que se usa para una ejecución:

  • Si la ejecución se inició localmente en un cuaderno o trabajo de Azure Databricks, haga clic en el vínculo del campo Origen para abrir la versión específica del cuaderno usada en la ejecución.
  • Si la ejecución se inició de forma remota desde un proyecto de Git,haga clic en el vínculo del campo Confirmación de Git para abrir la versión específica del proyecto que se usa en la ejecución. El vínculo del campo Origen abre la rama principal del proyecto de Git que se usa en la ejecución.
Reproducir el entorno de software de una ejecución

Puede reproducir el entorno de software exacto para la ejecución haciendo clic en Reproducir ejecutar. Aparecerá el siguiente cuadro de diálogo:

Cuadro de diálogo Reproducir ejecución

Con la configuración predeterminada, al hacer clic en Confirmar:

  • El cuaderno se clona en la ubicación que se muestra en el cuadro de diálogo.
  • Si el clúster original todavía existe, el cuaderno clonado se asocia al clúster original y se inicia el clúster.
  • Si el clúster original ya no existe, se crea e inicia un nuevo clúster con la misma configuración, incluidas las bibliotecas instaladas. El cuaderno está asociado al nuevo clúster.

Puede seleccionar una ubicación diferente para el cuaderno clonado e inspeccionar la configuración del clúster y las bibliotecas instaladas:

  • Para seleccionar otra carpeta para guardar el cuaderno clonado, haga clic en Editar carpeta.
  • Para ver la especificación del clúster, haga clic en Ver especificación. Para clonar solo el cuaderno y no el clúster, desactive esta opción.
  • Para ver las bibliotecas instaladas en el clúster original, haga clic en Ver bibliotecas. Si no le interesa instalar las mismas bibliotecas que en el clúster original, desactive esta opción.
Visualización de fragmentos de código para la predicción

Si ha registrado un modelo desde una ejecución, el modelo aparece en la Artifacts de esta página. Para mostrar fragmentos de código que ilustran cómo cargar y usar el modelo para realizar predicciones en DataFrames de Spark y Pandas, haga clic en el nombre del modelo.

predecir fragmentos de código

Comparación de ejecuciones

  1. En el experimento, seleccione dos o más ejecuciones haciendo clic en la casilla situada a la izquierda de la ejecución.
  2. Haga clic en Comparar. Se muestra la pantalla Comparar ejecuciones.
  3. Realice una de las siguientes acciones:
    • Seleccione un nombre de métrica para mostrar un gráfico de la métrica.

    • Seleccione parámetros y métricas en las listas desplegables eje X e Y para generar un gráfico de dispersión.

      gráfico de dispersión

Eliminación de ejecuciones

  1. En el experimento, seleccione una o varias ejecuciones haciendo clic en la casilla situada a la izquierda de la ejecución.
  2. Haga clic en Eliminar.
  3. Si la ejecución es una ejecución primaria, decida si también desea eliminar ejecuciones descendientes. Esta opción está seleccionada de forma predeterminada.
  4. Haga clic en Eliminar para confirmar o Cancelar para cancelar. Las ejecuciones eliminadas se guardan durante 30 días. Para mostrar las ejecuciones eliminadas, seleccione Eliminado en el campo Estado.

Acceda al servidor de seguimiento de MLflow desde fuera Azure Databricks

También puede escribir en el servidor de seguimiento y leerlo desde fuera Azure Databricks, por ejemplo, mediante la CLI de MLflow.

Análisis de ejecuciones de MLflow mediante DataFrames

Puede acceder a los datos de ejecución de MLflow mediante programación mediante las dos API de DataFrame siguientes:

  • El cliente de Python de MLflow search_runs API devuelve un dataframe de Pandas.
  • El origen de datos del experimento de MLflow devuelve un Apache Spark DataFrame.

En este ejemplo se muestra cómo usar el cliente de Python de MLflow para crear un panel que visualice los cambios en las métricas de evaluación a lo largo del tiempo, realice un seguimiento del número de ejecuciones iniciadas por un usuario específico y mida el número total de ejecuciones en todos los usuarios:

Ejemplos

En los cuadernos siguientes se muestra cómo entrenar varios tipos de modelos y realizar un seguimiento de los datos de entrenamiento en MLflow y cómo almacenar datos de seguimiento en Delta Lake.