Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um modelo de aprendizado de máquina é um arquivo treinado para reconhecer certos tipos de padrões. Você treina um modelo sobre um conjunto de dados e fornece a ele 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 dados que nunca viu antes e fazer previsões sobre esses dados.
No MLflow, um modelo de aprendizado de máquina pode incluir várias versões de modelo. Aqui, cada versão pode representar uma iteração de modelo.
Neste artigo, aprende como:
- Criar modelos de aprendizagem automática no Microsoft Fabric
- Gestão e acompanhamento das versões dos modelos
- Compare o desempenho dos modelos entre versões
- Aplicar modelos para pontuação e inferência
Criar um modelo de aprendizagem automática
No MLflow, os modelos de aprendizado de máquina incluem um formato de empacotamento padrão. Este 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 ferramentas subsequentes podem entender.
Você pode criar diretamente um modelo de aprendizado de máquina a partir da interface do usuário do Fabric. A API MLflow também pode criar diretamente o modelo.
Para criar um modelo de aprendizagem automática a partir da interface:
- Selecione um espaço de trabalho de ciência de dados existente, ou crie um novo espaço de trabalho.
- Crie um novo item através do espaço de trabalho ou usando o botão Criar:
- Após a criação do modelo, você pode começar a adicionar versões do modelo para controlar 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 aprendizado de máquina diretamente de sua experiência de criação com a mlflow.register_model() API. Se um modelo de aprendizado de máquina 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 dentro de um modelo de aprendizado de máquina
Um modelo de aprendizado de máquina contém uma coleção de versões de modelo para rastreamento e comparação simplificados. Dentro de um modelo, um cientista de dados pode navegar por várias versões do modelo para explorar os parâmetros e métricas subjacentes. Os cientistas de dados também podem fazer comparações entre versões de modelos para identificar se modelos mais recentes podem ou não produzir melhores resultados.
Rastreie modelos de aprendizado de máquina
Uma versão de modelo de aprendizado de máquina representa um modelo individual que é registrado para rastreamento.
Cada versão do modelo inclui as seguintes informações:
- Hora de criação: Data e hora de criação do modelo.
- Nome da execução: o identificador para as execuções do experimento usado para criar essa versão específica do modelo.
- Hiperparâmetros: Os hiperparâmetros são 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.
- Esquema/assinatura do modelo: uma descrição das entradas e saídas do modelo.
- Arquivos registrados: arquivos registrados em qualquer formato. Por exemplo, você pode gravar imagens, ambiente, modelos e arquivos de dados.
- Tags: Metadados como pares chave-valor para operações.
Aplicar tags a modelos de aprendizado de máquina
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 MLflow. Essas tags, armazenadas como pares chave-valor, ajudam a organizar, rastrear e diferenciar entre as versões do modelo, facilitando o gerenciamento dos ciclos de vida do modelo. As tags podem ser usadas para indicar a finalidade do modelo, o ambiente de implantação ou qualquer outra informação relevante, facilitando o gerenciamento mais eficiente do modelo e a tomada de decisões dentro das equipes.
Este código demonstra como treinar um modelo RandomForestRegressor usando Scikit-learn, registrar o modelo e os parâmetros com MLflow e, em seguida, registrar o modelo no Registro de Modelo MLflow com tags personalizadas. Essas tags 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 tags, você pode visualizá-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 aprendizagem automática
Para comparar e avaliar a qualidade das versões do modelo de aprendizado de máquina, você pode comparar os parâmetros, métricas e metadados entre as versões selecionadas.
Compare visualmente modelos de aprendizado de máquina
Você pode comparar visualmente execuções dentro de um modelo existente. A comparação visual permite uma navegação fácil entre várias versões e ordenações entre elas.
Para comparar execuções, você pode:
- Selecione um modelo de aprendizado de máquina existente que contenha várias versões.
- Selecione o separador Ver e navegue para a vista de lista do modelo. Você também pode selecionar a opção Exibir lista de modelos diretamente na visualização de detalhes.
- Você pode personalizar as colunas dentro da tabela. Expanda o painel Personalizar colunas . A partir daí, você pode selecionar as propriedades, métricas, tags e 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, tipo de visualização, eixo X, eixo Y e muito mais.
Compare modelos de aprendizado de máquina usando a API MLflow
Os cientistas de dados também podem usar o MLflow para pesquisar entre vários modelos salvos no espaço de trabalho. Visite a documentação do MLflow para explorar outras APIs do MLflow para interação do modelo.
from pprint import pprint
client = MlflowClient()
for rm in client.list_registered_models():
pprint(dict(rm), indent=4)
Aplicar modelos de aprendizagem automática
Depois de treinar um modelo em um conjunto de dados, você pode aplicar esse modelo a dados que ele nunca viu para gerar previsões. Chamamos a utilização deste modelo de técnica de pontuação ou de inferência.
Passos seguintes:
- Aprenda sobre a pontuação em lote no Fabric
- Implementar modelos para pontuação em tempo real
- Saiba mais sobre as APIs do MLflow Experiment