- ID ou nome do experimento
- ID de execução
- Parâmetros e Valores
- Métricas e Valores
- Tag
- Outros atributos associados às execuções
As execuções podem ser filtradas por status, hora de início, hora de término e duração com o uso da API de pesquisa MLflow. Torna mais fácil filtrar muitas execuções e encontrar execuções específicas nas quais os usuários estão interessados.
Função de pesquisa MLflow
Use a função mlflow.search_runs() para acessar a API de pesquisa MLflow. Esta função aceita uma variedade de argumentos como os seguintes:
- O ID ou nome do experimento
- Filtrar string ou texto
- O número máximo de execuções a serem retornadas é especificado pelo argumento max_results
Uma variante simplificada da cláusula SQL (Structured Query Language) WHERE é a string ou texto do filtro. Pode ser usado para indicar os critérios pelos quais queremos classificar as execuções.
Sintaxe da função MLflow Search_Runs()
O ID ou nome real do experimento que queremos pesquisar deve ser substituído por “experiment_id ou experiment_name” no exemplo a seguir. A variável search_criteria permite inserir os critérios de pesquisa conforme desejado. Esses critérios podem ser determinados por métricas, tags, parâmetros ou características adicionais. A sintaxe básica da função search_runs() é a seguinte:
# Importe a API de pesquisa mlflow para usar a função search_runs
importar fluxo ml
# Forneça algum ID ou nome do experimento (é opcional;)
exp_id = 'ID ou NOME da experiência'
# Defina os critérios de pesquisa para execuções
seqüência de pesquisa = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' AND params.efficiency_rate > '80''
# Realize a pesquisa
corre = mlfluxo. pesquisa_execuções ( experiment_ids = exp_id , string_filtro = seqüência de pesquisa )
#Exibe os resultados
imprimir ( 'Procurar Resultados:' )
imprimir ( corre )
Execute uma pesquisa usando vários critérios
1. Pesquise por valor métrico
As execuções podem ser filtradas pelos valores de métricas específicas usando o campo de métricas na API de pesquisa do MLflow. Uma coleção de nomes de métricas separados por vírgulas aparece no campo de métricas. Por exemplo, a sequência de filtro a seguir localiza todas as execuções com um valor de precisão superior a 0,9:
Métricas. precisão > 0,9
A lista completa de métricas disponíveis para uso no campo de métricas é fornecida a seguir:
- precisão
- auc
- f1
- precisão
- lembrar
- mapa
- perda de log
- erro_classificação
- multi_class_logloss
Além disso, os usuários podem filtrar as execuções por intervalo de valores de uma métrica usando o campo de métricas. Por exemplo, a próxima sequência de filtro localiza todas as execuções que possuem uma medida de precisão com um valor entre 0,4 e 0,8:
Métricas. precisão ENTRE 0,4 E 0,8
No campo de métricas, os operadores AND e OR combinam as métricas para encontrar as execuções com precisão de métricas e valores f1 acima de 0,3 e 0,8:
Métricas. precisão > 0,3 E métricas. f1 > 0,82. Pesquise por valor de parâmetro
Use o campo params na API de pesquisa do MLflow para realizar uma pesquisa por um valor de parâmetro. Os nomes e valores dos parâmetros são listados no campo params usando vírgulas. Neste exemplo, a string de filtro mencionada acima localiza todas as execuções com o parâmetro num_boost_round que possuem o valor 100:
parâmetros. num_boost_round = '100'Mais alguns exemplos de strings de pesquisa para valores de parâmetros:
- params.num_boost_round = 900
- params.learning_rate ENTRE 0,001 E 0,01
- params.num_boost_round=’70’ E params.learning_rate=’0,01′
3. Pesquise por tags
Aqui está um exemplo de pesquisa empregando tags:
critérios de pesquisa = 'tags.mlflow.source.type = 'dicionário''Exemplo de valores de matriz e parâmetro para executar a função Mlflow.search_runs()
Vamos trabalhar em um exemplo de configuração de um experimento MLflow, registrar execuções e, em seguida, usar mlflow.search_runs() para iniciar uma pesquisa. Para entender completamente o código, siga estas etapas:
Etapa 1: criar um experimento MLflow
Começamos configurando um experimento MLflow. Ele busca o experimento existente se o experimento já existir. Caso contrário, ele cria um novo.
Explicação do código:
A biblioteca MLflow é importada na primeira linha do código e experiment_name é definido como “My First MLflow Experiment” na próxima linha. Quando o experiment_name é passado para a função “mlflow.get_experiment_by_name”, essa função retorna “None” se o experimento não existir e um objeto do experimento caso contrário.
Verifique a existência do experimento na declaração condicional. Se o experimento já existir, defina experiment_id. Caso contrário, use “mlflow.create_experiment” para criar um novo experimento. O ID do experimento é retornado por esta função. Exiba o ID do experimento no console ou na tela do terminal no final do experimento. Copie o seguinte código no bloco de notas e salve o arquivo com o nome desejado e com extensão “.py”:
#importar biblioteca mlflowimportar fluxo ml
# Crie ou busque o experimento
nome_exp = 'Minha primeira experiência com MLflow'
# Busque o experimento por nome usando a função mlflow get_experiment_by_name
experiência = mlfluxo. get_experiment_by_name ( nome_exp )
# Verifica se o experimento ainda não existe
se experiência é Nenhum :
# Crie um novo experimento e passe o nome do experimento para a função mlflow.create_experiment
exp_id = mlfluxo. criar_experiência ( nome_exp )
#Mostra a mensagem de sucesso na tela
imprimir ( 'A experiência não existe. Experiência criada com sucesso!' )
outro :
#Busca o experiment_id do experimento existente
exp_id = exp. experimento_id
imprimir ( “A experiência já existe!” )
# Exibir ID do experimento
imprimir ( 'ID do experimento:' , exp_id )
Agora, inicie o programa no prompt de comando ou janela de terminal usando o compilador Python e digite “Python” e a seguir o nome do arquivo que, neste caso, é “MyFirstMlflowExperiment.py”. Quando o experimento é executado pela primeira vez, ele ainda não existe. Assim, o MLFlow cria um e imprime o ID do experimento na tela do console:
Execute novamente o código para verificar se ele não está criando novos experimentos e para exibir o ID dos que já existem. A captura de tela a seguir mostra que o experimento já existe:
Etapa 2: registrar as execuções com métricas e parâmetros
Vamos agora tentar registrar algumas execuções com as métricas e parâmetros do experimento recém-estabelecido. Num cenário real, desenvolvemos os modelos de machine learning e registamos as informações relevantes, como métricas e parâmetros, no final de cada execução. Aqui, a precisão é usada como um valor matricial e, neste caso, é 0,95. Os valores dos parâmetros para aprendizagem e taxa de eficiência são 0,01 e 90, respectivamente. Aqui está o código:
# Iniciar uma execução do MLflow para registrar métricas e parâmetroscom mlfluxo. Comece a correr ( experimento_id = exp_id ) :
# Seu código de aprendizado de máquina aqui (este é apenas um exemplo simulado)
precisão_modelo = 0,95
taxa_de_aprendizagem_máquina = 0,01
taxa_de_eficiência = 90
# Registrar métricas e parâmetros
mlfluxo. log_metric ( 'precisão' , precisão_modelo )
mlfluxo. log_param ( 'taxa de Aprendizagem' , taxa_de_aprendizagem_máquina )
mlfluxo. log_param ( 'taxa_de eficiência' , taxa_de_eficiência )
O resultado, quando o referido código é executado, é visto aqui. O resultado é o mesmo de antes:
Etapa 3: execute uma pesquisa usando Mlflow.search_runs()
Por fim, fazemos uma pesquisa nas execuções que foram registradas usando alguns parâmetros e mostramos os resultados na tela do terminal:
# Defina os critérios de pesquisa para execuçõesdefine_search_criteria = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' AND params.efficiency_rate = '90''
# Realize a pesquisa
corre = mlfluxo. pesquisa_execuções ( experiment_ids = exp_id , string_filtro = define_search_criteria )
#Exibe os resultados
imprimir ( 'Procurar Resultados:' )
imprimir ( corre )
Um aviso pertencente à ferramenta Git é produzido pela execução da função search_runs:
Adicione algum código no topo do arquivo Python para desativar este aviso. Aqui está uma pequena seção do código:
importar os
os . aproximadamente [ 'GIT_PYTHON_REFRESH' ] = 'quieto'
A função “mlflow.search_runs” é executada com sucesso assim que estas linhas de código são adicionadas:
Conclusão
A função “mlflow.search_runs” permite que os usuários explorem e avaliem rapidamente os experimentos de aprendizado de máquina, analisem muitas execuções e identifiquem as variações ou modelos ideais de hiperparâmetros que resultam nos resultados desejados. É uma ferramenta eficaz para supervisionar, planejar e analisar o fluxo de trabalho de aprendizado de máquina.