Veja os resultados da formação com execuções de MLflow
Este artigo descreve como usar as execuções MLflow para visualizar e analisar os resultados de um experimento de treino de modelo, bem como gerir e organizar execuções. Para obter mais informações sobre os experimentos MLflow, consulte Organizar execuções de treinamento com experimentos MLflow.
Uma execução MLflow corresponde a uma única execução de código de modelo. Cada execução registra informações como o bloco de anotações que iniciou a execução, quaisquer modelos criados pela execução, parâmetros e métricas do modelo salvos como pares chave-valor, tags para metadados de execução e quaisquer artefatos ou arquivos de saída criados pela execução.
Todas as execuções do MLflow são registradas no experimento ativo. Se você não tiver definido explicitamente um experimento como o experimento ativo, as execuções serão registradas no experimento do bloco de anotações.
Ver detalhes da execução
Você pode acessar uma execução na página de detalhes do experimento ou diretamente do bloco de anotações que criou a execução.
Na página de detalhes do experimento , clique no nome da execução na tabela de execuções.
No notebook, clique no nome da execução na barra lateral de Resultados de Experimentos.
O ecrã de execução mostra os parâmetros usados para a execução, as métricas resultantes da execução e detalhes sobre a execução, incluindo um link para o notebook de origem. Os artefatos salvos da corrida estão disponíveis na aba Artefatos.
Trechos de código para previsão
Se você registrar um modelo a partir de uma execução, o modelo aparecerá na guia
Ver o bloco de notas utilizado para uma execução
Para exibir a versão do bloco de anotações que criou uma execução:
- Na página de detalhes do experimento, clique no link na coluna Origem.
- Na página Executar, clique no link ao lado de Origem.
- No bloco de anotações, na barra lateral Execuções de Experimento, clique no ícone Bloco de Anotações na caixa dessa Execução de Experimento.
A versão do bloco de anotações associada à execução aparece na janela principal com uma barra de realce mostrando a data e a hora da execução.
Adicionar uma tag a uma execução
As tags são pares chave-valor que você pode criar e usar posteriormente para pesquisar execuções.
Na tabela Detalhes na página executar, clique Adicionar ao lado de Tags.
A caixa de diálogo Adicionar/Editar tags é aberta. No campo Chave , introduza um nome para a chave e clique em Adicionar etiqueta.
No campo Valor, insira o valor da tag.
Clique no sinal de mais para guardar o par chave-valor que acabaste de inserir.
Para adicionar tags adicionais, repita as etapas 2 a 4.
Quando terminar, clique Salvar tags.
Editar ou excluir uma tag para uma execução
Na tabela Detalhes na página de execução , clique no ícone de lápis
A caixa de diálogo Adicionar/Editar tags é aberta.
Para eliminar uma etiqueta, clique no X nessa etiqueta.
Para editar uma tag, selecione a chave no menu suspenso, e edite o valor no campo Valor. Clique no símbolo de adição para salvar a sua alteração.
Quando terminar, clique Guardar etiquetas.
Reproduzir o ambiente de software de uma execução
Você pode reproduzir o ambiente de software exato para a execução clicando em Reproduzir Executar no canto superior direito da página de execução. A seguinte caixa de diálogo é exibida:
Com as configurações padrão, quando você clica em Confirmar:
- O bloco de anotações é clonado para o local mostrado na caixa de diálogo.
- Se o cluster original ainda existir, o bloco de anotações clonado será anexado ao cluster original e o cluster será iniciado.
- Se o cluster original não existir mais, um novo cluster com a mesma configuração, incluindo quaisquer bibliotecas instaladas, será criado e iniciado. O bloco de notas está ligado ao novo cluster.
Você pode selecionar um local diferente para o bloco de anotações clonado e inspecionar a configuração do cluster e as bibliotecas instaladas:
- Para selecionar uma pasta diferente para salvar o bloco de anotações clonado, clique em Editar pasta.
- Para ver a especificação do cluster, clique em Exibir Especificação. Para clonar apenas o bloco de anotações e não o cluster, desmarque esta opção.
- Se o cluster original não existir mais, você poderá ver as bibliotecas instaladas no cluster original clicando em Exibir Bibliotecas . Se o cluster original ainda existir, esta seção ficará acinzentada.
Renomear execução
Para renomear uma execução, clique no menu kebab no canto superior direito da página de execução (ao lado do botão Permissões) e selecione Renomear.
Selecionar colunas a serem exibidas
Para controlar as colunas exibidas na tabela de execuções na página de detalhes do experimento, clique em Colunas e selecione no menu suspenso.
Execuções de filtro
Você pode pesquisar execuções na tabela na página de detalhes do experimento com base em valores de parâmetros ou métricas. Você também pode pesquisar execuções por tag.
Para procurar execuções que correspondam a uma expressão que contenha valores de parâmetros e métricas, insira uma consulta no campo de pesquisa e pressione Enter. Alguns exemplos de sintaxe de consulta são:
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
Por padrão, os valores de métrica são filtrados com base no último valor registrado. Usar
MIN
ouMAX
permitir que você pesquise execuções com base nos valores mínimos ou máximos da métrica, respectivamente. Apenas as execuções registradas após agosto de 2024 têm valores métricos mínimos e máximos.Para pesquisar execuções por tag, digite tags no formato:
tags.<key>="<value>"
. Os valores de cadeia de caracteres devem ser colocados entre aspas, conforme mostrado.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
Tanto as chaves como os valores podem conter espaços. Se a chave incluir espaços, você deve colocá-la em backticks, conforme mostrado.
tags.`my custom tag` = "my value"
Você também pode filtrar execuções com base em seu estado (Ativo ou Excluído), quando a execução foi criada e quais conjuntos de dados foram usados. Para fazer isso, faça as suas seleções a partir do Tempo criado, Estadoou Conjuntos de dados nos menus suspensos, respectivamente.
Execuções de download
Você pode baixar resultados da página de detalhes do experimento da seguinte forma:
Clique para abrir o menu kebab.
Para descarregar um ficheiro em formato CSV contendo todas as execuções mostradas (até um máximo de 100), selecione Download
<n>
execuções. O MLflow cria e baixa um arquivo com uma execução por linha, contendo os seguintes campos para cada execução:Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
Se quiseres baixar mais de 100 tarefas ou quiseres baixar tarefas de forma automatizada, seleciona Baixar todas as tarefas. Uma caixa de diálogo é aberta mostrando um trecho de código que você pode copiar ou abrir em um bloco de anotações. Depois de executar este código numa célula do notebook, escolha Baixar todas as linhas da saída da célula.
Excluir execuções
Você pode excluir execuções da página de detalhes do experimento seguindo estas etapas:
- No experimento, selecione uma ou mais execuções clicando na caixa de seleção à esquerda da execução.
- Clique em Eliminar.
- Se a execução for pai, decida se você também deseja excluir execuções descendentes. Esta opção está selecionada por predefinição.
- Clique em Excluir para confirmar. As execuções excluídas são salvas por 30 dias. Para exibir execuções excluídas, selecione Excluído no campo Estado.
A exclusão em massa é executada com base no tempo de criação
Você pode usar Python para excluir em massa execuções de um experimento que foram criadas antes ou em um carimbo de data/hora do UNIX.
Usando o Databricks Runtime 14.1 ou posterior, você pode chamar a mlflow.delete_runs
API para excluir execuções e retornar o número de execuções excluídas.
A seguir estão os mlflow.delete_runs
parâmetros:
-
experiment_id
: O ID do experimento que contém as execuções a serem excluídas. -
max_timestamp_millis
: O carimbo de data/hora máximo de criação em milissegundos desde a época do UNIX para excluir execuções. Somente as execuções criadas antes ou neste carimbo de data/hora são excluídas. -
max_runs
: Opcional. Um inteiro positivo que indica o número máximo de execuções a serem excluídas. O valor máximo permitido para max_runs é 10000. Se não for especificado,max_runs
o padrão será 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
)
Usando o Databricks Runtime 13.3 LTS ou anterior, você pode executar o seguinte código de cliente em um Bloco de Anotações do Azure Databricks.
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 a documentação da API de Experimentos do Azure Databricks para obter parâmetros e especificações de valor de retorno para excluir execuções com base no tempo de criação.
A restauração é executada
Você pode restaurar execuções excluídas anteriormente da interface do usuário da seguinte maneira:
- Na página
Experimento, no campo Estado da , selecione Excluído para exibir execuções excluídas. - Selecione uma ou mais execuções clicando na caixa de seleção à esquerda da execução.
- Clique em Restaurar.
- Clique em Restaurar para confirmar. As execuções restauradas agora aparecem quando se seleciona Ativo no campo Estado.
A restauração em massa é executada com base no tempo de exclusão
Você também pode usar Python para restaurar em massa execuções de um experimento que foram excluídas em ou após um carimbo de data/hora do UNIX.
Usando o Databricks Runtime 14.1 ou posterior, você pode chamar a mlflow.restore_runs
API para restaurar execuções e retornar o número de execuções restauradas.
A seguir estão os mlflow.restore_runs
parâmetros:
-
experiment_id
: A ID do experimento que contém as execuções a serem restauradas. -
min_timestamp_millis
: O carimbo de data/hora mínimo de exclusão em milissegundos desde a época do UNIX para restaurar execuções. Somente as execuções excluídas no ou após esse carimbo de data/hora são restauradas. -
max_runs
: Opcional. Um inteiro positivo que indica o número máximo de execuções a restaurar. O valor máximo permitido para max_runs é 10000. Se não for especificado, max_runs padrão será 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
)
Usando o Databricks Runtime 13.3 LTS ou anterior, você pode executar o seguinte código de cliente em um Bloco de Anotações do Azure Databricks.
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 a documentação da API de Experimentos do Azure Databricks para obter parâmetros e especificações de valor de retorno para restaurar execuções com base no tempo de exclusão.
Comparar execuções
Você pode comparar execuções de um único experimento ou de vários experimentos. A página Comparando execuções apresenta informações sobre as execuções selecionadas em formatos gráficos e tabulares. Você também pode criar visualizações de resultados de execução e tabelas de informações de execução, parâmetros de execução e métricas.
Para criar uma visualização:
- Selecione o tipo de gráfico (Gráfico de coordenadas paralelas, Gráfico de dispersão ou Gráfico de contorno).
Para um Gráfico de Coordenadas Paralelas, selecione os parâmetros e métricas a serem plotados. A partir daqui, você pode identificar relações entre os parâmetros e métricas selecionados, o que ajuda a definir melhor o espaço de ajuste de hiperparâmetros para seus modelos.
Para um Gráfico de Dispersão ou Gráfico de Contorno, selecione o parâmetro ou a métrica a ser exibida em cada eixo.
As tabelas Parâmetros e Métricas exibem os parâmetros de execução e as métricas de todas as execuções selecionadas. As colunas nessas tabelas são identificadas pela tabela Detalhes da execução imediatamente acima. Para simplificar, você pode ocultar parâmetros e métricas que são idênticos em todas as execuções selecionadas alternando .
Comparar execuções a partir de um único experimento
- Na página de detalhes do experimento , selecione duas ou mais execuções clicando na caixa de seleção à esquerda de cada execução ou selecione todas as execuções marcando a caixa no topo da coluna.
- Clique em Comparar. A tela Comparando
<N>
execuções é exibida.
Comparar execuções de vários experimentos
- Na página de experimentos, selecione os experimentos que deseja comparar clicando na caixa à esquerda do nome do experimento.
- Clique em Comparar (n) (n é o número de experimentos selecionados). Uma tela é exibida mostrando todas as execuções dos experimentos selecionados.
- Selecione duas ou mais execuções clicando na caixa de seleção à esquerda da execução ou selecione todas as execuções marcando a caixa na parte superior da coluna.
- Clique em Comparar. A tela Comparando
<N>
execuções é exibida.
A cópia é executada entre espaços de trabalho
Para importar ou exportar execuções MLflow de ou para seu espaço de trabalho Databricks, você pode usar o projeto de código aberto orientado pela comunidade MLflow Export-Import.