Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un experimento de de aprendizaje automático es la unidad principal de la organización y el control de todas las ejecuciones de aprendizaje automático relacionadas. Una ejecución corresponde a una sola ejecución de modelo de código. En MLflow, el seguimiento se basa en experimentos y ejecuciones.
Los experimentos de aprendizaje automático permiten a los científicos de datos registrar parámetros, versiones de código, métricas y archivos de salida al ejecutar su código de aprendizaje automático. Los experimentos también permiten visualizar, buscar y comparar ejecuciones, así como descargar archivos de ejecución y metadatos para su análisis en otras herramientas.
En este artículo, obtendrá más información sobre cómo los científicos de datos pueden interactuar y usar experimentos de aprendizaje automático para organizar su proceso de desarrollo y realizar un seguimiento de varias ejecuciones.
Prerrequisitos
- Una suscripción a Power BI Premium. Si no tiene una, consulte ¿Qué es Power BI Premium?
- Un área de trabajo de Power BI con capacidad premium asignada.
Creación de un experimento
Puede crear un experimento de aprendizaje automático directamente desde la interfaz de usuario (UI) del tejido o escribiendo código que use la API de MLflow.
Creación de un experimento mediante la interfaz de usuario
Para crear un experimento de aprendizaje automático a partir de la interfaz de usuario:
Cree una nueva área de trabajo o seleccione una existente.
En la parte superior izquierda del área de trabajo, seleccione Nuevo elemento. En Analizar y entrenar datos, seleccione Experimento .
Seleccione Crear, que se puede encontrar en ... en el menú vertical.
En Ciencia de datos, seleccione Experimento.
Proporcione un nombre de experimento y seleccione Crear. Esta acción crea un experimento vacío dentro del área de trabajo.
Después de crear el experimento, puede empezar a agregar ejecuciones para realizar un seguimiento de las métricas y los parámetros de ejecución.
Creación de un experimento mediante la API de MLflow
También puede crear un experimento de aprendizaje automático directamente desde la experiencia de creación mediante las mlflow.create_experiment() API o mlflow.set_experiment() . En el código siguiente, reemplace <EXPERIMENT_NAME> por el nombre del experimento.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
Administración de ejecuciones dentro de un experimento
Un experimento de aprendizaje automático contiene una colección de ejecuciones para el seguimiento simplificado y la comparación. Dentro de un experimento, un científico de datos puede navegar por varias ejecuciones y explorar los parámetros y métricas subyacentes. Los científicos de datos también pueden comparar ejecuciones dentro de un experimento de aprendizaje automático para identificar qué subconjunto de parámetros producen un rendimiento de modelo deseado.
Para ver las ejecuciones de un experimento, seleccione Ejecutar lista en la vista del experimento.
En la lista de ejecución, puede ir a los detalles de una ejecución específica seleccionando el nombre de la ejecución.
Seguimiento de los detalles de ejecución
Una ejecución de aprendizaje automático corresponde a una sola ejecución de código de modelo. Puede realizar un seguimiento de la siguiente información para cada ejecución:
Cada ejecución incluye la siguiente información:
- Origen: nombre del cuaderno que creó la ejecución.
- Versión registrada: indica si la ejecución se guardó como un modelo de aprendizaje automático.
- Fecha de inicio: hora de inicio de la ejecución.
- Estado: progreso de la ejecución.
- Hiperparámetros: hiperparámetros guardados como pares clave-valor. Las claves y los valores son cadenas.
- Métricas: ejecute las métricas guardadas como pares clave-valor. El valor es numérico.
- Archivos de salida: archivos de salida en cualquier formato. Por ejemplo, puede grabar imágenes, entornos, modelos y archivos de datos.
- Etiquetas: metadatos como pares clave-valor que se van a ejecutar.
Visualización de la lista de ejecución
Puede ver todas las ejecuciones de un experimento en la vista Lista de ejecución . Esta vista permite realizar un seguimiento de la actividad reciente, saltar rápidamente a la aplicación Spark relacionada y aplicar filtros en función del estado de ejecución.
Visualización de la lista de ejecución
Puede ver todas las ejecuciones de un experimento en la vista Lista de ejecución . Esta vista permite realizar un seguimiento de la actividad reciente, saltar rápidamente a la aplicación Spark relacionada y aplicar filtros en función del estado de ejecución.
Comparación y filtrado de ejecuciones
Para comparar y evaluar la calidad de las ejecuciones de aprendizaje automático, puede comparar los parámetros, las métricas y los metadatos entre ejecuciones seleccionadas dentro de un experimento.
Aplicación de etiquetas a ejecuciones
El etiquetado de MLflow para las ejecuciones de experimentos permite a los usuarios agregar metadatos personalizados en forma de pares clave-valor a sus ejecuciones. Estas etiquetas ayudan a clasificar, filtrar y buscar ejecuciones basadas en atributos específicos, lo que facilita la administración y el análisis de experimentos dentro de la plataforma MLflow. Los usuarios pueden usar etiquetas para etiquetar ejecuciones con información como tipos de modelo, parámetros o cualquier identificador relevante, lo que mejora la organización general y la rastreabilidad de los experimentos.
Este fragmento de código inicia una ejecución de MLflow, registra algunos parámetros y métricas, y agrega etiquetas para clasificar y proporcionar contexto adicional para la ejecución.
import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing
# Autologging
mlflow.autolog()
# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Start an MLflow run
with mlflow.start_run() as run:
# Train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Predict and evaluate
y_pred = model.predict(X_test)
# Add tags
mlflow.set_tag("model_type", "Linear Regression")
mlflow.set_tag("dataset", "California Housing")
mlflow.set_tag("developer", "Bob")
Una vez aplicadas las etiquetas, puede ver los resultados directamente desde el widget MLflow insertado o desde la página de detalles de ejecución.
Advertencia
Advertencia: Limitaciones en la aplicación de etiquetas a las ejecuciones del experimento de MLflow en Fabric
- Etiquetas no vacías: los nombres de etiqueta o los valores no pueden estar vacíos. Si intenta aplicar una etiqueta con un nombre o valor vacíos, se producirá un error en la operación.
- Nombres de etiqueta: los nombres de etiqueta pueden tener hasta 250 caracteres de longitud.
- Valores de etiqueta: los valores de etiqueta pueden tener hasta 5000 caracteres de longitud.
-
Nombres de etiquetas restringidas: no se admiten nombres de etiqueta que comiencen con determinados prefijos. En concreto, los nombres de etiqueta que comienzan por
synapseml,mlflowotridentestán restringidos y no se aceptarán.
Comparación visual de ejecuciones
Puede comparar visualmente y filtrar ejecuciones dentro de un experimento existente. La comparación visual le permite navegar fácilmente entre varias ejecuciones y ordenarlas entre ellas.
Para comparar ejecuciones:
- Seleccione un experimento de aprendizaje automático existente que contenga varias ejecuciones.
- Seleccione la pestaña Ver y, a continuación, vaya a la vista de lista Ejecutar . Como alternativa, puede seleccionar la opción ver la lista de ejecución directamente desde la vista Detalles de ejecución .
- Para personalizar las columnas de la tabla, expanda el panel Personalizar columnas . Aquí puede seleccionar las propiedades, las métricas, las etiquetas y los hiperparámetros que desea ver.
- Expanda el panel Filtro para restringir los resultados en función de determinados criterios seleccionados.
- Seleccione varias ejecuciones para comparar sus resultados en el panel de comparación de métricas. En este panel, puede personalizar los gráficos cambiando el título del gráfico, el tipo de visualización, el eje X, el eje Y, etc.
Comparación de ejecuciones mediante la API de MLflow
Los científicos de datos también pueden usar MLflow para consultar y buscar entre ejecuciones dentro de un experimento. Puede explorar más API de MLflow para buscar, filtrar y comparar ejecuciones visitando la documentación de MLflow.
Obtener todas las ejecuciones
Puede usar la API mlflow.search_runs() de búsqueda de MLflow para obtener todas las ejecuciones de un experimento reemplazando <EXPERIMENT_NAME> por el nombre del experimento o <EXPERIMENT_ID> por el identificador del experimento en el código siguiente:
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
Sugerencia
Puede buscar en varios experimentos proporcionando una lista de identificadores de experimento al experiment_ids parámetro . Del mismo modo, proporcionar una lista de nombres de experimentos al experiment_names parámetro permitirá que MLflow busque en varios experimentos. Esto puede ser útil si desea comparar entre ejecuciones dentro de diferentes experimentos.
Ordenar y limitar ejecuciones
Use el max_results parámetro de search_runs para limitar el número de ejecuciones devueltas. El order_by parámetro permite enumerar las columnas para ordenar por y puede contener un valor o DESC opcionalASC. Por ejemplo, en el ejemplo siguiente se devuelve la última ejecución de un experimento.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Comparación de ejecuciones dentro de un cuaderno de Fabric
Puede usar el widget de creación de MLFlow en cuadernos de Fabric para realizar un seguimiento de las ejecuciones de MLflow generadas dentro de cada celda del cuaderno. El widget permite realizar un seguimiento de las ejecuciones, las métricas asociadas, los parámetros y las propiedades directamente hasta el nivel de celda individual.
Para obtener una comparación visual, también puede cambiar a la vista Comparación de ejecución . Esta vista presenta los datos gráficamente, lo que ayuda en la identificación rápida de patrones o desviaciones en diferentes ejecuciones.
Guardar la ejecución como un modelo de Machine Learning
Una vez que una ejecución produce el resultado deseado, puede guardar la ejecución como un modelo para el seguimiento mejorado de modelos y para la implementación de modelos seleccionando Guardar como modelo de ML.
Supervisión de experimentos de ML (versión preliminar)
Los experimentos de APRENDIZAJE automático se integran directamente en Monitor. Esta funcionalidad está diseñada para proporcionar más información sobre las aplicaciones spark y los experimentos de ML que generan, lo que facilita la administración y depuración de estos procesos.
Seguimiento de ejecuciones desde el monitor
Los usuarios pueden realizar un seguimiento de las ejecuciones de experimentos directamente desde el monitor, lo que proporciona una vista unificada de todas sus actividades. Esta integración incluye opciones de filtrado, lo que permite a los usuarios centrarse en experimentos o ejecuciones creadas en los últimos 30 días u otros períodos especificados.
Seguimiento de las ejecuciones del experimento de ML relacionadas desde la aplicación Spark
El experimento de ML se integra directamente en Monitor, donde puede seleccionar una aplicación spark específica y acceder a instantáneas de elementos. Aquí encontrará una lista de todos los experimentos y ejecuciones generados por esa aplicación.