Partilhar via


Experiências de aprendizagem automática no Microsoft Fabric

Um experimento de de aprendizado de máquina é 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. Em MLflow, o rastreamento é baseado em experimentos e execuções.

Os experimentos de aprendizado de máquina permitem que os cientistas de dados registrem parâmetros, versões de código, métricas e arquivos de saída ao executar seu 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 aprendizado de máquina para organizar seu processo de desenvolvimento e rastrear várias execuções.

Pré-requisitos

  • Uma subscrição do Power BI Premium. Se você não tiver um, consulte O que é o Power BI Premium?
  • Um Espaço de Trabalho do Power BI com capacidade premium atribuída.

Criar uma experiência

Você pode criar um experimento de aprendizagem automática diretamente na interface de utilizador da plataforma ou escrevendo código que utiliza a API MLflow.

Criar um experimento usando a interface do usuário

Para criar um experimento de aprendizado de máquina a partir da interface do usuário:

  1. Crie um novo espaço de trabalho ou selecione um existente.

  2. No canto superior esquerdo do espaço de trabalho, selecione Novo item. Em Analisar e treinar dados, selecione Experimentar .

    Captura de ecrã a mostrar onde selecionar Experiência na área de trabalho. OU

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

    Captura de tela do botão de criação.

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

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

  5. Forneça um nome de experimento e selecione Criar. Esta ação cria uma experiência vazia no seu espaço de trabalho.

Depois de criar o experimento, você pode começar a adicionar execuções para controlar métricas e parâmetros de execução.

Criar um experimento usando a API MLflow

Você também pode criar um experimento de aprendizado de máquina diretamente de sua experiência de criação usando as mlflow.create_experiment() APIs 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 dentro de um experimento

Um experimento de aprendizado de máquina contém uma coleção de execuções para rastreamento e comparação simplificados. Dentro de um experimento, um cientista de dados pode navegar entre várias execuções e analisar os parâmetros e métricas subjacentes. Os cientistas de dados também podem comparar execuções dentro de 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 visualização do experimento.

Captura de tela de execuções recentes de aprendizado de máquina.

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

Acompanhe os detalhes da corrida

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

Captura de tela da página de detalhes da execução do aprendizado de máquina.

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 aprendizado de máquina.
  • Data de início: Hora de início da execução.
  • Estado: Progresso da execução.
  • Hiperparâmetros: Hiperparâmetros salvos como pares chave-valor. Tanto as chaves quanto os valores são cadeias de caracteres.
  • Métricas: Executar métricas guardadas 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.
  • Tags: Metadados como pares chave-valor para processos.

Captura de tela da página de detalhes da execução do aprendizado de máquina.

Ver a lista de execução

Você pode exibir todas as execuções em um experimento no modo de exibição de lista Executar . Esta vista permite-lhe controlar a atividade recente, saltar rapidamente para a aplicação Spark relacionada e aplicar filtros com base no estado de execução.

Ver a lista de execução

Você pode exibir todas as execuções em um experimento no modo de exibição de lista Executar . Esta vista permite-lhe controlar a atividade recente, saltar rapidamente para a aplicação Spark relacionada e aplicar filtros com base no estado de execução.

Captura de tela de execuções recentes de aprendizado de máquina.

Comparar e filtrar testes

Para comparar e avaliar a qualidade de suas execuções de aprendizado de máquina, você pode comparar os parâmetros, métricas e metadados entre as execuções selecionadas em um experimento.

Aplicar tags 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 tags 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 tags para rotular execuções com informações como tipos de modelo, parâmetros ou quaisquer identificadores relevantes, melhorando a organização geral e a rastreabilidade dos experimentos.

Esse trecho de código inicia uma execução MLflow, registra alguns parâmetros e métricas e adiciona tags 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 tags forem aplicadas, você poderá visualizar os resultados diretamente do widget MLflow embutido ou da página de detalhes da execução.

Captura de ecrã que mostra tags aplicadas a uma execução na página de detalhes.

Advertência

Aviso: Limitações na aplicação de tags às execuções de experimentos MLflow no Fabric

  • Tags não vazias: os nomes ou valores das tags não podem estar vazios. Se você tentar aplicar uma tag com um nome ou valor vazio, a operação falhará.
  • Nomes de tag: os nomes de tags podem ter até 250 caracteres.
  • Valores de tag: Os valores de tag podem ter até 5000 caracteres de comprimento.
  • Nomes de tags restritos: nomes de tags que começam com determinados prefixos não são suportados. Especificamente, nomes de tags que comecem com synapseml, mlflowou trident são restritos e não serão aceitos.

Compare visualmente os resultados

Você pode comparar visualmente e filtrar execuções dentro de um experimento existente. A comparação visual permite navegar facilmente entre várias execuções e ordená-las entre si.

Captura de ecrã a mostrar uma lista de execuções e a vista do gráfico.

Para comparar corridas:

  1. Selecione um experimento de aprendizado de máquina existente que contenha várias execuções.
  2. Selecione o separador Exibir e depois vá para a vista Lista de Execução. Como alternativa, você pode selecionar a opção Exibir lista de execução diretamente na visualização Detalhes da execução .
  3. Personalize as colunas da tabela ao expandir o painel Personalizar colunas. Aqui, você pode selecionar as propriedades, métricas, tags e hiperparâmetros que gostaria de ver.
  4. Expanda o painel Filtro para restringir os 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. Neste 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 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.

Obtenha todos os resultados

Você pode usar a API mlflow.search_runs() de pesquisa MLflow para obter todas as execuções em um experimento substituindo <EXPERIMENT_NAME> pelo nome do experimento ou <EXPERIMENT_ID> pelo ID do experimento no código a seguir:

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>"])

Sugestão

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

Ordenar e limitar processos.

Use o parâmetro max_results do search_runs para limitar o número de resultados retornados. O order_by parâmetro permite listar as colunas por ordem e pode conter um opcional DESC ou ASC valor. 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 dentro de um notebook Fabric

Você pode usar o widget de criação MLFlow nos blocos de anotações do Fabric para acompanhar as execuções do MLflow geradas em cada célula do bloco de anotações. 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, também podes alternar para o modo Executar comparação. Esta visão apresenta os dados graficamente, auxiliando na rápida identificação de padrões ou desvios em diferentes execuções.

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

Salvar execução como um modelo de aprendizado de máquina

Quando uma execução produz o resultado desejado, você pode salvá-la como um modelo para rastreamento de modelo aprimorado e para implantação de modelo selecionando Salvar como um modelo de ML.

Captura de ecrã a mostrar onde selecionar Criar um novo modelo.

Monitorizar experiências de machine learning (pré-visualização)

Os experimentos de ML são integrados diretamente no 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.

Acompanhe os processos pelo monitor

Os usuários podem acompanhar as execuções de experimentos diretamente do monitor, fornecendo uma visão unificada de todas as suas atividades. 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 ecrã a mostrar onde a visualização é executada no separador do monitor.

Experimentos de ML estão integrados diretamente no Monitor, onde pode selecionar uma aplicação Spark específica e aceder a capturas de itens. Aqui, você encontrará uma lista de todos os experimentos e execuções gerados por esse aplicativo.