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, parameters e métricas do modelo salvas 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 set 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 nas execuções table.
No notebook, clique no nome da execução na barra lateral de Resultados de Experimentos.
A tela de execução mostra o ID de execução, o parameters usado para a execução, as métricas resultantes da execução e detalhes da 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 Origemcolumn.
- 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 Notebook Version Iconícone Bloco de Anotações na caixa dessa Execução de Experimento.
A versão do notebook associada à execução aparece na window 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.
No
Detalhes do na página executar , cliqueAdicionar ao lado deTags .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
No
Detalhes na página executar , clique em ao lado das tags existentes.í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 etiqueta, selecione a chave no menu pendente select, e edite o valor no campo Valor. Clique no símbolo de adição para salvar a sua alteração.
Quando terminar, clique Salvar tags.
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 select um local diferente para o bloco de anotações clonado e inspecionar a configuração do cluster e as bibliotecas instaladas:
- Para escolher select 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 corrida, clique no menu kebab
Select columns para exibir
Para controlar os columns exibidos nas execuções table na página de detalhes do experimento, clique em Columns e select a partir do menu suspenso.
Execuções de filtro
Você pode pesquisar execuções no table na página de detalhes do experimento com base no parâmetro ou na métrica values. Você também pode pesquisar execuções por tag.
Para procurar execuções que correspondam a uma expressão que contenha parâmetros e métricas values, 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, a métrica values é filtrada com base no último valor registado. O uso de
MIN
ouMAX
permite pesquisar execuções com base na métrica mínima ou máxima values, respectivamente. Apenas execuções registadas após agosto de 2024 têm métricas mínimas e máximas values.Para pesquisar execuções por tag, digite tags no formato:
tags.<key>="<value>"
. O String values deve ser colocado entre aspas, conforme mostrado.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
Tanto as chaves como values 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 baixar um arquivo em formato CSV contendo todas as execuções mostradas (até um máximo de 100), selectDownload
<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 quiser descarregar mais de 100 corridas ou quiser descarregar corridas programaticamente, selectDescarregar todas as corridas. 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 caderno, selectDescarregar todas as linhas do resultado da célula.
Excluir execuções
Você pode excluir execuções da página de detalhes do experimento seguindo estas etapas:
- No experimento, select 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 eliminadas, selectEliminado 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.
Seguem-se os mlflow.delete_runs
parameters:
-
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 parameters e retornar especificações de valor para excluir execuções com base no tempo de criação.
Restore execuções
Você pode restore execuções excluídas anteriormente da interface do usuário da seguinte maneira:
- Na página
Experimento, no campo Estado , Excluído para exibir execuções excluídas. - Select selecionar uma ou mais corridas ao clicar na caixa de seleção à esquerda da corrida.
- Clique em Restore.
- Clique Restore para confirmar. As execuções restauradas agora aparecem quando você selectAtive no campo Estado.
Execução em massa restore com base no tempo de eliminação
Você também pode usar Python para executar em massa restore execuções de um experimento que foram excluídas em ou depois de um carimbo de data/hora do UNIX.
Usando o Databricks Runtime 14.1 ou posterior, você pode chamar a API mlflow.restore_runs
para restore execuções e retornar o número de execuções restauradas.
Seguem-se os mlflow.restore_runs
parameters:
-
experiment_id
: O ID do experimento que contém as execuções para restore. -
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 iterações a restore. 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 parameters e retornar especificações de valor 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 Comparação de Execuções apresenta informações sobre as execuções selecionadas em formato tabular. Você também pode criar visualizações dos resultados da execução, das informações da execução tables, da execução parameterse das métricas. Consulte Comparar execuções do MLflow usando gráficos e tabelas.
As métricas Parameters e tables exibem a execução parameters e as métricas de todas as execuções selecionadas. Os columns nestes tables são identificados pelos detalhes de execução table imediatamente acima. Para simplificar, pode ocultar parameters e métricas que são idênticas em todas as execuções selecionadas, ativando o botão Mostrar somente comparação .
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 verificação à esquerda da execução, ou todas as execuções marcando a caixa no topo do . - 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 select.
- Clique em Comparar (n) (n é o número de experimentos selecionados). Uma tela é exibida mostrando todas as execuções dos experimentos selecionados.
- Select duas ou mais corridas clicando na caixa de seleção à esquerda das corridas, ou select todas as corridas marcando a caixa de seleção no topo do column.
- 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.