Compartilhar via


Experimentos de machine learning no Microsoft Fabric

Um experimento de aprendizado de máquina é a principal unidade de organização e controle para todas as execuções de machine learning 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 do Power BI Premium. Se você não tiver um, veja o que é o 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 interface do usuário (interface do usuário) da malha ou escrevendo um código que usa a API do MLflow.

Criar um experimento usando a interface do usuário

Para criar um experimento de machine learning com base na interface do usuário:

  1. Crie um novo workspace ou selecione um existente.

  2. No canto superior esquerdo do workspace, selecione Novo item. Em Analisar e treinar dados, selecione Experimento .

    Captura de tela mostrando onde selecionar Experimento em seu workspace. OU

  3. Selecione Criar, que pode ser encontrado em ... no menu vertical.

    Captura de tela do botão Criar.

  4. Em Ciência de Dados, selecione Experimento.

    Captura de tela mostrando onde selecionar Experimento depois de selecionar criar.

  5. 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.

Criar 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 ou mlflow.create_experiment() as mlflow.set_experiment() APIs. 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 dentro de um experimento

Um experimento de aprendizado de máquina 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 métricas subjacentes. Os cientistas de dados também podem comparar execuções em um experimento de aprendizado de máquina para identificar qual subconjunto de parâmetros produz um desempenho de modelo desejado.

Para exibir as execuções de um experimento, selecione Executar lista na exibição do experimento.

Captura de tela das execuções recentes do machine learning.

Na lista de execuções, você pode navegar até os detalhes de uma execução específica selecionando o nome da execução.

Acompanhar detalhes da execução

Uma execução de machine learning corresponde a uma única execução do código do modelo. Você pode acompanhar as seguintes informações para cada execução:

Captura de tela da página de detalhes da execução do machine learning.

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. Chaves e valores são cadeias de caracteres.
  • Métricas: executar métricas salvas como pares chave-valor. 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.
  • Marcas: metadados como pares chave-valor a serem executados.

Captura de tela da página de detalhes da execução do machine learning.

Exibir a lista de execuções

Você pode exibir todas as execuções em um experimento no modo de exibição Executar lista . Essa 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.

Exibir a lista de execuções

Você pode exibir todas as execuções em um experimento no modo de exibição Executar lista . Essa 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.

Captura de tela das execuções recentes do machine learning.

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.

Aplicar marcas a execuções

A marcação MLflow para execuções de experimento permite que os usuários adicionem metadados personalizados na forma de pares chave-valor às suas execuções. Essas marcas ajudam a categorizar, filtrar e pesquisar execuções com base em atributos específicos, facilitando o gerenciamento e a análise de experimentos na plataforma MLflow. Os usuários podem utilizar marcas para rotular execuções com informações como tipos de modelo, parâmetros ou qualquer identificador relevante, aprimorando a organização geral e a rastreabilidade de experimentos.

Esse snippet de código inicia uma execução de MLflow, registra alguns parâmetros e métricas e adiciona marcas para categorizar e fornecer contexto adicional para a execução.

import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing

# Autologging
mlflow.autolog()

# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Start an MLflow run
with mlflow.start_run() as run:

    # Train the model
    model = LinearRegression()
    model.fit(X_train, y_train)

    # Predict and evaluate
    y_pred = model.predict(X_test)
    
    # Add tags
    mlflow.set_tag("model_type", "Linear Regression")
    mlflow.set_tag("dataset", "California Housing")
    mlflow.set_tag("developer", "Bob")

Depois que as marcas forem aplicadas, você poderá exibir os resultados diretamente do widget do MLflow embutido ou da página de detalhes da execução.

Captura de tela mostrando marcas aplicadas a uma execução na página de detalhes.

Aviso

Aviso: limitações na aplicação de marcas a execuções de experimento do MLflow no Fabric

  • Marcas não vazias: nomes de marca ou valores não podem estar vazios. Se você tentar aplicar uma marca com um nome ou valor vazio, a operação falhará.
  • Nomes de marca: os nomes de marca podem ter até 250 caracteres de comprimento.
  • Valores de marcação: os valores de marca podem ter até 5.000 caracteres de comprimento.
  • Nomes de marca restritos: não há suporte para nomes de marca que começam com determinados prefixos. Especificamente, nomes de marcas começando com synapseml, mlflowou trident são restritos e não serão aceitos.

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-as.

Captura de tela mostrando uma lista de execuções e o modo de exibição do gráfico.

Para comparar execuções:

  1. Selecione um experimento de machine learning existente que contenha várias execuções.
  2. Selecione a guia Exibir e vá para o modo de exibição Executar lista . Como alternativa, você pode selecionar a opção para exibir a lista de execuções diretamente no modo de exibição Executar detalhes .
  3. Personalize as colunas dentro da tabela expandindo o painel Personalizar colunas . Aqui, você pode selecionar as propriedades, as métricas, as marcas e os hiperparâmetros que deseja ver.
  4. Expanda o painel Filtro para restringir seus resultados com base em determinados critérios selecionados.
  5. 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 dentro de 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 experiment_ids parâmetro. 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 ordem e limite

Use o max_results parâmetro a partir do search_runs qual limitar o número de execuções retornadas. O order_by parâmetro permite listar as colunas a serem ordenadas 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 bloco de anotações 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 o modo de comparação Executar . Essa exibição apresenta os dados graficamente, auxiliando na identificação rápida de padrões ou desvios em diferentes execuções.

Captura de tela mostrando como usar o widget de criação do MLFlow.

Salvar a execução como um modelo de machine learning

Depois que uma execução gera o resultado desejado, você pode salvar a execução como um modelo para controle de modelo aprimorado e para implantação de modelo selecionando Salvar como um modelo de ML.

Captura de tela mostrando onde selecionar Criar um novo modelo.

Monitorar experimentos de ML (versão prévia)

Os experimentos de ML são integrados diretamente ao Monitor. Essa funcionalidade foi projetada para fornecer mais informações sobre seus aplicativos Spark e os experimentos de ML que eles geram, facilitando o gerenciamento e a depuração desses processos.

Acompanhar execuções do monitor

Os usuários podem acompanhar as execuções de experimento diretamente do monitor, fornecendo uma exibição unificada de todas as atividades deles. Essa integração inclui opções de filtragem, permitindo que os usuários se concentrem em experimentos ou execuções criadas nos últimos 30 dias ou em outros períodos especificados.

Captura de tela mostrando onde o modo de exibição é executado na guia monitor.

O Experimento de ML é integrado diretamente ao Monitor, onde você pode selecionar um aplicativo Spark específico e acessar Instantâneos de Item. Aqui, você encontrará uma lista de todos os experimentos e execuções geradas por esse aplicativo.