Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um modelo de machine learning é um arquivo treinado para reconhecer determinados tipos de padrões. Você treina um modelo em um conjunto de dados e fornece um algoritmo que usa para raciocinar e aprender com esse conjunto de dados. Depois de treinar o modelo, você pode usá-lo para raciocinar sobre os dados que ele nunca viu antes e fazer previsões sobre esses dados.
No MLflow, um modelo de machine learning pode incluir várias versões de modelo. Aqui, cada versão pode representar uma iteração de modelo.
Neste artigo, você aprenderá a:
- Criar modelos de machine learning no Microsoft Fabric
- Gerenciar e acompanhar versões de modelo
- Comparar o desempenho do modelo entre versões
- Aplicar modelos para pontuação e inferência
Criar um modelo de machine learning
No MLflow, os modelos de machine learning incluem um formato de empacotamento padrão. Esse formato permite o uso desses modelos em várias ferramentas downstream, incluindo inferência em lote no Apache Spark. O formato define uma convenção para salvar um modelo em diferentes "variantes" que diferentes ferramentas subsequentes podem entender.
Você pode criar diretamente um modelo de machine learning com base na interface do usuário do Fabric. A API do MLflow também pode criar diretamente o modelo.
Para criar um modelo de machine learning com base na interface do usuário:
- Selecione um workspace de ciência de dados existente ou crie um novo workspace.
- Crie um novo item por meio do workspace ou usando o botão Criar:
- Após a criação do modelo, você pode começar a adicionar versões de modelo para acompanhar métricas e parâmetros de execução. Registre ou salve execuções de experimento em um modelo existente.
Você também pode criar um modelo de machine learning diretamente de sua experiência de criação com a mlflow.register_model() API. Se um modelo de machine learning registrado com o nome fornecido não existir, a API o criará automaticamente.
import mlflow
model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")
print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))
Gerenciar versões em um modelo de machine learning
Um modelo de machine learning contém uma coleção de versões de modelo para acompanhamento e comparação simplificados. Em um modelo, um cientista de dados pode navegar por várias versões de modelo para explorar os parâmetros e as métricas subjacentes. Os cientistas de dados também podem fazer comparações entre versões de modelo para identificar se modelos mais recentes podem ou não produzir melhores resultados.
Acompanhar modelos de aprendizado de máquina
Uma versão do modelo de machine learning representa um modelo individual registrado para acompanhamento.
Cada versão do modelo inclui as seguintes informações:
- Hora criada: data e hora da criação do modelo.
- Nome da execução: o identificador para as execuções de experimento usadas para criar essa versão de modelo específica.
- Hiperparâmetros: hiperparâmetros são 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.
- Esquema/Assinatura de Modelo: uma descrição das entradas e saídas do modelo.
- Arquivos de log: arquivos de log em qualquer formato. Por exemplo, você pode gravar imagens, ambiente, modelos e arquivos de dados.
- Marcas: metadados como pares chave-valor a serem executados.
Aplicar marcas a modelos de machine learning
A marcação MLflow para versões de modelo permite que os usuários anexem metadados personalizados a versões específicas de um modelo registrado no Registro de Modelo do MLflow. Essas marcas, armazenadas como pares chave-valor, ajudam a organizar, acompanhar e diferenciar entre versões de modelo, facilitando o gerenciamento de ciclos de vida do modelo. As marcas podem ser usadas para indicar a finalidade do modelo, o ambiente de implantação ou qualquer outra informação relevante, facilitando uma gestão mais eficiente de modelos e a tomada de decisões dentro das equipes.
Esse código demonstra como treinar um modelo RandomForestRegressor usando Scikit-learn, registrar o modelo e os parâmetros com o MLflow e registrar o modelo no Registro de Modelo do MLflow com marcas personalizadas. Essas marcas fornecem metadados úteis, como nome do projeto, departamento, equipe e trimestre do projeto, facilitando o gerenciamento e o acompanhamento da versão do modelo.
import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor
# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
# Model parameters
params = {"n_estimators": 3, "random_state": 42}
# Model tags for MLflow
model_tags = {
"project_name": "grocery-forecasting",
"store_dept": "produce",
"team": "stores-ml",
"project_quarter": "Q3-2023"
}
# Log MLflow entities
with mlflow.start_run() as run:
# Train the model
model = RandomForestRegressor(**params).fit(X, y)
# Infer the model signature
signature = infer_signature(X, model.predict(X))
# Log parameters and the model
mlflow.log_params(params)
mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)
# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)
# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")
Depois de aplicar as marcas, você pode exibi-las diretamente na página de detalhes da versão do modelo. Além disso, as tags podem ser adicionadas, atualizadas ou removidas desta página a qualquer momento.
Comparar e filtrar modelos de machine learning
Para comparar e avaliar a qualidade das versões do modelo de machine learning, você pode comparar os parâmetros, as métricas e os metadados entre as versões selecionadas.
Comparar visualmente modelos de machine learning
Você pode comparar graficamente as execuções em um modelo existente. A comparação visual permite uma navegação fácil entre múltiplas versões e o ordenamento entre elas.
Para comparar execuções, você pode:
- Selecione um modelo de machine learning existente que contenha várias versões.
- Selecione a guia Exibir e, em seguida, navegue até a exibição Lista de modelos. Você também pode selecionar a opção para exibir a lista de modelos diretamente na exibição de detalhes.
- Você pode personalizar as colunas dentro da tabela. Expanda o painel Personalizar colunas . A partir daí, você pode selecionar as propriedades, as métricas, as marcas e os hiperparâmetros que deseja ver.
- Por fim, você pode selecionar várias versões, para comparar seus resultados, no painel de comparação de métricas. Neste painel, você pode personalizar os gráficos com alterações no título do gráfico, no tipo de visualização, no eixo X, no eixo Y e muito mais.
Comparar modelos de machine learning usando a API do MLflow
Os cientistas de dados também podem usar o MLflow para pesquisar entre vários modelos salvos no workspace. Visite a documentação do MLflow para explorar outras APIs do MLflow para interação de modelo.
from pprint import pprint
client = MlflowClient()
for rm in client.list_registered_models():
pprint(dict(rm), indent=4)
Aplicar modelos de machine learning
Depois de treinar um modelo em um conjunto de dados, você poderá aplicar esse modelo aos dados que ele nunca viu para gerar previsões. Chamamos essa técnica de uso do modelo de pontuação ou inferência.
Próximas etapas:
- Saiba mais sobre a pontuação em lote no Fabric
- Implantar modelos para pontuação em tempo real
- Saiba mais sobre AS APIs de Experimento do MLflow