Visualización de los resultados del entrenamiento con ejecuciones de MLflow
En este artículo se describe cómo usar ejecuciones de MLflow para ver y analizar los resultados de un experimento de entrenamiento de modelos y cómo administrar y organizar ejecuciones. Para obtener más información sobre los experimentos de MLflow, consulte Organizar ejecuciones de entrenamiento con experimentos de MLflow.
Una ejecución de MLflow corresponde a una única ejecución del código del modelo. Cada ejecución registra información como el cuaderno que inició la ejecución, los modelos creados por la ejecución, los parámetros del modelo y las métricas guardados como pares clave-valor, etiquetas para ejecutar metadatos y cualquier artefacto o archivos de salida, creados por la ejecución.
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 de cuaderno.
Visualización de los detalles de la ejecución
Puede acceder a una ejecución desde su página de detalles del experimento o directamente desde el cuaderno que creó la ejecución.
En la página de detalles del experimento, haz clic en el nombre de ejecución de la tabla de ejecuciones.
En el cuaderno, haz clic en el nombre de ejecución en la barra lateral de Ejecuciones del experimento.
La pantalla de ejecución muestra el identificador de ejecución, los parámetros usados para la ejecución, las métricas resultantes de la ejecución y los detalles sobre la ejecución, incluido un vínculo al cuaderno de origen. Los artefactos guardados desde la ejecución están disponibles en la pestaña Artefactos.
Fragmentos de código para la predicción
Si registras un modelo desde una ejecución, el modelo aparece en la pestaña Artefactos, junto con fragmentos de código que ilustran cómo cargar y usar el modelo para hacer predicciones en Spark y Pandas DataFrames.
Visualización del cuaderno usado para una ejecución
Para ver la versión del cuaderno que creó una ejecución:
- En la página de detalles del experimento, haz clic en el vínculo de la columna Origen.
- En la página de ejecución, haga clic en el vínculo situado junto a Source (Origen).
- En el cuaderno, en la barra lateral Ejecuciones de experimentos, haga clic en el icono Notebook de en el cuadro para esa ejecución del experimento.
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.
Adición de una etiqueta a una ejecución
Las etiquetas son pares clave-valor que puede crear y usar más adelante para buscar ejecuciones.
En la tabla Detalles de la página de ejecución, haz clic en Agregar junto a Etiquetas.
Se abre el cuadro de diálogo Agregar o editar etiquetas. En el campo de la clave , escriba un nombre para la clave y haga clic en Agregar etiqueta.
En el campo Valor, escribe el valor de la etiqueta.
Pulse el signo más para guardar el par clave-valor que acaba de escribir.
Para agregar etiquetas adicionales, repita los pasos del 2 al 4.
Cuando termines, haz clic en Guardar etiquetas.
Edición o eliminación de una etiqueta de una ejecución
En la tabla Detalles de la página de ejecución, haz clic en junto a las etiquetas existentes.
Se abre el cuadro de diálogo Agregar o editar etiquetas.
Para eliminar una etiqueta, haga clic en la X de esa etiqueta.
Para editar una etiqueta, seleccione la clave en el menú desplegable y edite el valor del campo Valor. Haga clic en el signo más para guardar el cambio.
Cuando hayas terminado, haz clic en Guardar etiquetas.
Reproducción del entorno de software de una ejecución
Puede reproducir el entorno de software exacto para la ejecución del proceso haciendo clic en Reproducir el proceso en la esquina superior derecha de la página de ejecución. Aparece el cuadro de diálogo siguiente:
Con la configuración predeterminada, al hacer clic en Confirm (Confirmar):
- El cuaderno se clona en la ubicación que se muestra en el cuadro de diálogo.
- Si el clúster original sigue existiendo, 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 Edit Folder (Editar carpeta).
- Para ver la especificación del clúster, haga clic en View Spec (Ver especificación). Para clonar solo el cuaderno y no el clúster, desactive esta opción.
- Si el clúster original ya no existe, puede ver las bibliotecas instaladas en el clúster original haciendo clic en Ver bibliotecas. Si el clúster original sigue existiendo, esta sección aparece atenuada.
Cambio de nombre de una ejecución
Para cambiar el nombre de una ejecución, haz clic en el menú de kebab en la esquina superior derecha de la página de ejecución (junto al botón Permisos) y selecciona Cambiar nombre.
Selección de columnas para mostrar
Para controlar las columnas que se muestran en la tabla de ejecuciones de la página de detalles del experimento, haz clic en Columnas y selecciona del menú desplegable.
Filtrado de ejecuciones
Puedes buscar ejecuciones en la tabla en la página de detalles del experimento en función de los valores de parámetro o métrica. También puede buscar ejecuciones por etiqueta.
Para buscar ejecuciones que coincidan con una expresión que contenga valores de parámetro y métrica, escriba una consulta en el campo de búsqueda y presione Entrar. 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
MIN(metrics.rmse) <= 1
MAX(metrics.memUsage) > 0.9
LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1
De manera predeterminada, los valores de métrica se filtran en función del último valor registrado. El uso de
MIN
oMAX
permite buscar ejecuciones en función de los valores de métrica mínimo o máximo, respectivamente. Solo las ejecuciones registradas después de agosto de 2024 tienen valores de métrica mínimo y máximo.Para buscar ejecuciones por etiqueta, escriba etiquetas con el formato:
tags.<key>="<value>"
. Los valores de cadena se deben incluir entre comillas, como se muestra.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
Tanto las claves como los valores pueden contener espacios. Si la clave tiene espacios, debe incluirla entre acentos graves, como se muestra.
tags.`my custom tag` = "my value"
También puede filtrar las ejecuciones en función de su estado (Activo o Eliminado), cuando se creó la ejecución y qué conjuntos de datos se usaron. Para ello, realiza tus selecciones en los menús desplegables Tiempo creado, Estado o Conjuntos de datos, respectivamente.
Descarga de ejecuciones
Puede descargar ejecuciones desde la página Detalles del experimento de la manera siguiente:
Haga clic en para abrir el menú kebab.
Para descargar un archivo en formato CSV que contenga todas las ejecuciones mostradas (hasta un máximo de 100), selecciona Descargar
<n>
ejecuciones. MLflow crea y descarga un archivo con una ejecución por fila, que contiene los siguientes campos para cada ejecución:Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
Si desea descargar más de 100 ejecuciones o desea descargar ejecuciones mediante programación, seleccione Descargar todas las ejecuciones. Se abre un cuadro de diálogo que muestra un fragmento de código que puede copiar o abrir en un cuaderno. Después de ejecutar este código en una celda del cuaderno, selecciona Descargar todas las filas en la salida de la celda.
Eliminación de ejecuciones
Puede eliminar ejecuciones de la página de detalles del experimento siguiendo estos pasos:
- En el experimento, seleccione una o varias ejecuciones haciendo clic en la casilla situada a su izquierda.
- Haga clic en Eliminar.
- Si la ejecución es una ejecución primaria, decida si también desea eliminar ejecuciones descendientes. Esta opción se encuentra seleccionada de forma predeterminada.
- Haga clic en Delete (Eliminar) para confirmar. Las ejecuciones eliminadas se guardan durante 30 días. Para mostrar las ejecuciones eliminadas, seleccione Deleted (Eliminado) en el campo State (Estado).
Ejecuciones de eliminación masiva basadas en el tiempo de creación
Puede usar Python para eliminar masivamente las ejecuciones de un experimento creado antes o en una marca de tiempo de UNIX.
Con Databricks Runtime 14.1 o posterior, puede llamar a la API de mlflow.delete_runs
para eliminar ejecuciones y devolver el número de ejecuciones eliminadas.
A continuación se muestran los parámetros mlflow.delete_runs
:
experiment_id
: el identificador del experimento que contiene las ejecuciones que se van a eliminar.max_timestamp_millis
: marca de tiempo de creación máxima en milisegundos desde la época de UNIX para eliminar ejecuciones. Solo se eliminan las ejecuciones creadas antes o en esta marca de tiempo.max_runs
: opcional. Entero positivo que indica el número máximo de ejecuciones que se van a eliminar. El valor máximo permitido para max_runs es 10000. Si no se especifica, el valor predeterminadomax_runs
es 10000.
import mlflow
# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
experiment_id=<experiment_id>,
max_timestamp_millis=<max_timestamp_ms>,
max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
experiment_id="4183847697906956",
max_timestamp_millis=1711990504000,
max_runs=10
)
Con Databricks Runtime 13.3 LTS o versiones anteriores, puede ejecutar el siguiente código de cliente en Azure Databricks Notebook.
from typing import Optional
def delete_runs(experiment_id: str,
max_timestamp_millis: int,
max_runs: Optional[int] = None) -> int:
"""
Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
Deletes at most max_runs per request.
:param experiment_id: The ID of the experiment containing the runs to delete.
:param max_timestamp_millis: The maximum creation timestamp in milliseconds
since the UNIX epoch for deleting runs. Only runs
created prior to or at this timestamp are deleted.
:param max_runs: Optional. A positive integer indicating the maximum number
of runs to delete. The maximum allowed value for max_runs
is 10000. If not specified, max_runs defaults to 10000.
:return: The number of runs deleted.
"""
from mlflow.utils.databricks_utils import get_databricks_host_creds
from mlflow.utils.request_utils import augmented_raise_for_status
from mlflow.utils.rest_utils import http_request
json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
if max_runs is not None:
json_body["max_runs"] = max_runs
response = http_request(
host_creds=get_databricks_host_creds(),
endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
method="POST",
json=json_body,
)
augmented_raise_for_status(response)
return response.json()["runs_deleted"]
Consulte la documentación de la API de experimentos de Azure Databricks para conocer los parámetros y las especificaciones de valor devuelto para eliminar ejecuciones en función del tiempo de creación.
Ejecuciones de restauración
Puede restaurar ejecuciones eliminadas previamente de la interfaz de usuario de la siguiente manera:
- En la página del experimento , en el campo de estado , seleccione Eliminado para mostrar las ejecuciones eliminadas.
- Seleccione una o varias ejecuciones haciendo clic en la casilla situada a la izquierda de la ejecución.
- Haga clic en Restaurar.
- Haga clic en Restaurar para confirmar. Las ejecuciones restauradas aparecen ahora al seleccionar Active en el campo Estado.
Se ejecuta la restauración masiva en función del tiempo de eliminación
También puede usar Python para restaurar masivamente las ejecuciones de un experimento que se eliminaron en o después de una marca de tiempo de UNIX.
Con Databricks Runtime 14.1 o posterior, puede llamar a la API de mlflow.restore_runs
para restaurar ejecuciones y devolver el número de ejecuciones restauradas.
A continuación se muestran los parámetros mlflow.restore_runs
:
experiment_id
: el identificador del experimento que contiene las ejecuciones que se van a restaurar.min_timestamp_millis
: marca de tiempo de eliminación mínima en milisegundos desde la época de UNIX para restaurar ejecuciones. Solo se eliminan las ejecuciones en o después de restaurar esta marca de tiempo.max_runs
: opcional. Entero positivo que indica el número máximo de ejecuciones que se van a restaurar. El valor máximo permitido para max_runs es 10000. Si no se especifica, max_runs el valor predeterminado es 10000.
import mlflow
# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
experiment_id=<experiment_id>,
min_timestamp_millis=<min_timestamp_ms>,
max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
experiment_id="4183847697906956",
min_timestamp_millis=1711990504000,
max_runs=10
)
Con Databricks Runtime 13.3 LTS o versiones anteriores, puede ejecutar el siguiente código de cliente en Azure Databricks Notebook.
from typing import Optional
def restore_runs(experiment_id: str,
min_timestamp_millis: int,
max_runs: Optional[int] = None) -> int:
"""
Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
Restores at most max_runs per request.
:param experiment_id: The ID of the experiment containing the runs to restore.
:param min_timestamp_millis: The minimum deletion timestamp in milliseconds
since the UNIX epoch for restoring runs. Only runs
deleted at or after this timestamp are restored.
:param max_runs: Optional. A positive integer indicating the maximum number
of runs to restore. The maximum allowed value for max_runs
is 10000. If not specified, max_runs defaults to 10000.
:return: The number of runs restored.
"""
from mlflow.utils.databricks_utils import get_databricks_host_creds
from mlflow.utils.request_utils import augmented_raise_for_status
from mlflow.utils.rest_utils import http_request
json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
if max_runs is not None:
json_body["max_runs"] = max_runs
response = http_request(
host_creds=get_databricks_host_creds(),
endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
method="POST",
json=json_body,
)
augmented_raise_for_status(response)
return response.json()["runs_restored"]
Consulte la documentación de la API de experimentos de Azure Databricks para conocer los parámetros y las especificaciones de valor devuelto para restaurar ejecuciones en función del tiempo de eliminación.
comparación de ejecuciones
Puede comparar las ejecuciones tanto de un experimento como de varios. La página Comparación de ejecuciones presenta información sobre las ejecuciones seleccionadas en formato tabular. También puede crear visualizaciones de resultados de ejecución y tablas de información de ejecución, parámetros de ejecución y métricas. Consulte Comparación de ejecuciones de MLflow mediante gráficos y diagramas.
Las tablas Parameters y Metrics muestran los parámetros y métricas de ejecución de todas las ejecuciones seleccionadas. Las columnas de estas tablas se identifican mediante la tabla Run details inmediatamente superior. Para simplificar, puede ocultar parámetros y métricas idénticos en todas las ejecuciones seleccionadas mediante la alternancia de .
Comparación de ejecuciones de un único experimento
- En la página de detalles del experimento , seleccione dos o más ejecuciones haciendo clic en la casilla situada a la izquierda de la ejecución, o seleccione todas las ejecuciones marcando la casilla situada en la parte superior de la columna.
- Haga clic en Compare (Comparar). Aparece la pantalla Comparar
<N>
ejecuciones.
Comparación de ejecuciones de varios experimentos
- En la página de experimentos, seleccione los experimentos que desea comparar, para lo que debe hacer clic en el cuadro situado a la izquierda del nombre del experimento.
- Haga clic en Compare (n) (n es el número de experimentos que ha seleccionado). Aparece una pantalla que muestra todas las ejecuciones de los experimentos seleccionados.
- Seleccione dos o más ejecuciones, para lo que debe hacer clic en la casilla situada a la izquierda de la ejecución, o bien seleccione todas las ejecuciones activando la casilla situada en la parte superior de la columna.
- Haga clic en Compare (Comparar). Aparece la pantalla Comparar
<N>
ejecuciones.
Copia de ejecuciones entre áreas de trabajo
Para importar o exportar ejecuciones de MLflow hacia o desde el área de trabajo de Databricks, puede usar el proyecto de código abierto controlado por la comunidad MLflow Export-Import.