Modelo de Machine Learning en Microsoft Fabric

Un modelo de Machine Learning es un archivo entrenado para reconocer determinados tipos de patrones. Puede entrenar un modelo a través de un conjunto de datos y proporcionarle un algoritmo que use para razonar y aprender de ese conjunto de datos. Después de entrenar el modelo, puede usarlo para razonar sobre datos que nunca antes había visto, y hacer predicciones sobre esos datos.

En MLflow, un modelo de Machine Learning puede incluir varias versiones del modelo. Aquí, cada versión puede representar una iteración de modelo. En este artículo, aprenderá a interactuar con los modelos de ML para realizar un seguimiento y comparar las versiones del modelo.

Creación de un modelo de Machine Learning

En MLflow, los modelos de Machine Learning incluyen un formato de empaquetado estándar. Este formato permite el uso de esos modelos en varias herramientas de bajada, incluida la inferencia por lotes en Apache Spark. El formato define una convención para guardar un modelo en diferentes "tipos" que las distintas herramientas de bajada pueden comprender.

Puede crear directamente un modelo de Machine Learning desde la interfaz de usuario de Fabric. La API de MLflow también puede crear directamente el modelo.

Para crear un modelo de Machine Learning a partir de la interfaz de usuario, puede hacer lo siguiente:

  1. Cree un área de trabajo de ciencia de datos o seleccione un área de trabajo de ciencia de datos existente.

  2. En la lista desplegable + Nuevo, seleccione Modelo para crear un modelo vacío en el área de trabajo de ciencia de datos.

    Screenshot showing the New drop-down menu.

  3. Después de la creación del modelo, puede empezar a agregar versiones de modelo para realizar un seguimiento de las métricas y los parámetros de ejecución. Registre o guarde ejecuciones de experimentos en un modelo existente.

También puede crear un experimento de aprendizaje automático directamente desde la experiencia de creación con la API mlflow.register_model(). Si no existe un modelo de Machine Learning registrado con el nombre especificado, la API lo crea automáticamente.

import mlflow

model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")

print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))

Administración de versiones en un modelo de Machine Learning

Un modelo de Machine Learning contiene una colección de versiones de modelo para el seguimiento y la comparación simplificados. Dentro de un modelo, un científico de datos puede navegar por varias versiones del modelo para explorar los parámetros y las métricas subyacentes. Los científicos de datos también pueden realizar comparaciones entre versiones del modelo para identificar si los modelos más recientes podrían producir mejores resultados.

Seguimiento de modelos de Machine Learning

Una versión del modelo de Machine Learning representa un modelo individual que se ha registrado para el seguimiento.

Screenshot showing the details screen of a model.

Cada versión del modelo incluye la siguiente información:

  • Hora de creación: fecha y hora de creación del modelo.
  • Nombre de la ejecución: el identificador de las ejecuciones del experimento usadas para crear esta versión específica del modelo.
  • Hiperparámetros: los hiperparámetros se guardan como pares clave-valor. Tanto las claves como los valores son cadenas.
  • Métricas: métricas de ejecución guardadas como pares clave-valor. El valor es "numérico".
  • Esquema/firma del modelo: una descripción de las entradas y salidas del modelo.
  • Archivos registrados: archivos registrados en cualquier formato. Por ejemplo, puede grabar imágenes, entornos, modelos y archivos de datos.

Comparación y filtrado de modelos de Machine Learning

Para comparar y evaluar la calidad de las versiones del modelo de Machine Learning, puede comparar los parámetros, las métricas y los metadatos entre las versiones seleccionadas.

Comparación visual de modelos de Machine Learning

Puede comparar visualmente las ejecuciones dentro de un modelo existente. La comparación visual permite navegar fácilmente entre varias versiones y ordenarlas.

Screenshot showing a list of runs for comparison.

Para comparar ejecuciones, puede hacer lo siguiente:

  1. Seleccione un modelo de Machine Learning existente que contenga varias versiones.
  2. Seleccione la pestaña Vista y después navegue hasta la vista Lista de modelos. También puede seleccionar la opción Ver lista de modelos directamente desde la vista de detalles.
  3. Puede personalizar las columnas dentro de la tabla. Expanda el panel Personalizar columnas. Desde allí, puede seleccionar las propiedades, las métricas y los hiperparámetros que desea ver.
  4. Por último, puede seleccionar varias versiones para comparar sus resultados, en el panel de comparación de métricas. En este panel, puede personalizar los gráficos con cambios en el título del gráfico, el tipo de visualización, el eje X, el eje Y, etc.

Comparación de modelos de Machine Learning mediante la API de MLflow

Los científicos de datos también pueden usar MLflow para buscar entre varios modelos guardados dentro del área de trabajo. Visite la documentación de MLflow para explorar otras API de MLflow para la interacción del modelo.

from pprint import pprint

client = MlflowClient()
for rm in client.list_registered_models():
    pprint(dict(rm), indent=4)

Aplicación de modelos de Machine Learning

Una vez entrenado un modelo en un conjunto de datos, puede aplicar ese modelo a los datos que nunca vio para generar predicciones. Llamamos a esta técnica de uso del modelo puntuación o inferencia. Para más información sobre la puntuación de modelos de Microsoft Fabric, consulte la sección siguiente.