Experimentos de machine learning no Microsoft Fabric
Um experimento de machine learning é a principal unidade de organização e controle para todas as execuções de aprendizado de máquina relacionadas. Uma execução corresponde a uma única execução do código do modelo. No MLflow, o acompanhamento é baseado em experimentos e execuções.
Os experimentos de machine learning permitem que os cientistas de dados registrem parâmetros, versões de código, métricas e arquivos de saída ao executar o código de aprendizado de máquina. Os experimentos também permitem visualizar, pesquisar e comparar execuções, bem como baixar arquivos de execução e metadados para análise em outras ferramentas.
Neste artigo, você aprenderá mais sobre como os cientistas de dados podem interagir e usar experimentos de machine learning para organizar seu processo de desenvolvimento e acompanhar várias execuções.
Pré-requisitos
- Uma assinatura Power BI Premium. Se você não tiver uma, consulte Como comprar Power BI Premium.
- Um Workspace do Power BI com capacidade premium atribuída.
Criar uma experiência
Você pode criar um experimento de machine learning diretamente da home page ciência de dados na interface do usuário do Power BI ou escrevendo código que usa a API do MLflow.
Criar um experimento usando a IU
Para criar um experimento de aprendizado de máquina na IU, faça o seguinte:
Crie um novo workspace do OMS ou selecione um existente.
Selecione Experimento na seção "Novo".
Forneça um nome de experimento e selecione Criar. Essa ação cria um experimento vazio em seu workspace.
Depois de criar o experimento, você pode começar a adicionar execuções para acompanhar métricas e parâmetros de execução.
Crie um experimento usando a API do MLflow
Você também pode criar um experimento de machine learning diretamente de sua experiência de criação usando as APIs mlflow.create_experiment()
ou mlflow.set_experiment()
. No código a seguir, substitua <EXPERIMENT_NAME>
pelo nome do 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>")
Gerenciar execuções em um experimento
Um experimento de machine learning contém uma coleção de execuções para acompanhamento e comparação simplificados. Em um experimento, um cientista de dados pode navegar por várias execuções e explorar os parâmetros e as métricas subjacentes. Os cientistas de dados também podem comparar execuções em um experimento de machine learning para identificar qual subconjunto de parâmetros produz um desempenho de modelo desejado.
Acompanhar execuções
Uma execução de aprendizado de máquina corresponde a uma única execução do código do modelo.
Cada execução inclui as seguintes informações:
- Origem: nome do notebook que criou a execução.
- Versão registrada: indica se a execução foi salva como um modelo de machine learning.
- Data de início: hora de início da execução.
- Status: progresso da execução.
- Hiperparâmetros: hiperparâmetros salvos como pares chave-valor. As chaves e os valores são cadeias de caracteres.
- Métricas: Execute métricas salvas como pares de valores-chave. O valor é numérico.
- Arquivos de saída: Arquivos de saída em qualquer formato. Por exemplo, você pode gravar imagens, ambiente, modelos e arquivos de dados.
Ver execuções recentes
Você também pode exibir as execuções recentes de um experimento diretamente no modo de exibição de lista do workspace. Esse modo de exibição permite que você acompanhe as atividades recentes, pule rapidamente para o aplicativo Spark relacionado e aplique filtros com base no status de execução.
Comparar e filtrar execuções
Para comparar e avaliar a qualidade das execuções de aprendizado de máquina, você pode comparar os parâmetros, as métricas e os metadados entre as execuções selecionadas em um experimento.
Comparar visualmente as execuções
Você pode comparar visualmente e filtrar execuções em um experimento existente. A comparação visual permite que você navegue facilmente entre várias execuções e classifique entre elas.
Para comparar execuções:
- Selecione um experimento de machine learning existente que contenha várias execuções.
- Selecione a guia Exibir e, em seguida, vá para o modo de exibição de lista Executar. Como alternativa, você pode selecionar a opção exibir a lista de execução diretamente na exibição Detalhes da execução.
- Personalize as colunas dentro da tabela expandindo o painel Personalizar colunas. Aqui, você pode selecionar as propriedades, as métricas e os hiperparâmetros que deseja ver.
- Expanda o painel Filtro para restringir os resultados com base em determinados critérios selecionados.
- Selecione várias execuções para comparar seus resultados no painel de comparação de métricas. Nesse painel, você pode personalizar os gráficos alterando o título do gráfico, o tipo de visualização, o eixo X, o eixo Y e muito mais.
Comparar execuções usando a API do MLflow
Os cientistas de dados também podem usar o MLflow para consultar e pesquisar entre execuções em um experimento. Você pode explorar mais APIs do MLflow para pesquisar, filtrar e comparar execuções visitando a documentação do MLflow.
Obter todas as execuções
Você pode usar a API mlflow.search_runs()
de pesquisa do MLflow para obter todas as execuções em um experimento substituindo <EXPERIMENT_NAME>
pelo nome do experimento ou <EXPERIMENT_ID>
pela ID do experimento no seguinte código:
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>"])
Dica
Você pode pesquisar em vários experimentos fornecendo uma lista de IDs de experimento para o parâmetro experiment_ids
. Da mesma forma, fornecer uma lista de nomes de experimento para o parâmetro permitirá que o experiment_names
MLflow pesquise em vários experimentos. Isso pode ser útil se você quiser comparar entre execuções em diferentes experimentos.
Execuções de pedido e limite
Use o parâmetro max_results
de search_runs
para limitar o número de execuções retornadas. O order_by
parâmetro permite listar as colunas a serem ordenadas por e pode conter um valor ou DESC
opcionalASC
. Por exemplo, o exemplo a seguir retorna a última execução de um experimento.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Comparar execuções em um notebook do Fabric
Você pode usar o widget de criação do MLFlow nos notebooks do Fabric para acompanhar as execuções de MLflow geradas em cada célula do notebook. O widget permite que você acompanhe suas execuções, métricas associadas, parâmetros e propriedades até o nível de célula individual.
Para obter uma comparação visual, você também pode alternar para a exibição Executar comparação. Essa exibição apresenta os dados graficamente, auxiliando na identificação rápida de padrões ou desvios em diferentes execuções.
Salvar a execução como modelo de machine learning
Depois que uma execução gera o resultado desejado, você pode salvar a execução como um modelo para o acompanhamento de modelo aprimorado e para a implantação do modelo selecionando Salvar como modelo de ML.