MLflow: primeiros passos em MLOps

Published: (February 17, 2026 at 03:25 PM EST)
5 min read
Source: Dev.to

Source: Dev.to

Introdução

Alcançar uma métrica excelente em um modelo de Machine Learning não é uma tarefa fácil. Imagine não conseguir reproduzir os resultados porque não lembra quais hiperparâmetros foram utilizados.

A ideia é sair do “treinei um modelo e deu certo” e entrar no mundo de MLOps, onde é possível:

  • Rastrear experimentos
  • Comparar execuções
  • Armazenar artefatos
  • Repetir o processo com confiança

MLOps é a prática de aplicar princípios de DevOps em projetos de ML. Ele envolve gerenciar o lifecycle de projetos de ML, desde a reprodutibilidade no desenvolvimento e treinamento até o deploy e monitoramento.

No desenvolvimento de software tradicional, o controle de versão de código (por exemplo, Git) costuma ser suficiente. Em ML, o resultado depende de Código + Dados + Hiperparâmetros.

Uma ferramenta dedicada pode facilitar a auditoria e colaboração dos modelos antes que o processo de experimentação se torne caótico. A ausência de um histórico estruturado impede a reprodutibilidade e a escalabilidade de qualquer projeto de IA.


O que é o MLflow?

O MLflow ajuda a aplicar MLOps para organizar o ciclo de vida de projetos de ML. Mesmo em um projeto simples, ele já cria um histórico de tudo o que foi feito em cada treino.

Na prática, o MLflow permite responder perguntas como:

  • Qual conjunto de parâmetros gerou a melhor métrica?
  • Quando eu rodei o treinamento e qual foi o resultado?
  • Onde está salvo o modelo treinado daquela execução?

O MLflow surge para padronizar essa gestão. Neste documento focaremos nos três tipos de registros fundamentais:

TipoDescrição
ParâmetrosInputs de configuração (ex.: learning_rate, n_estimators)
MétricasResultados de performance (ex.: accuracy, log_loss)
ArtefatosOutput binário (ex.: modelo salvo em .pkl ou .onnx)

O MLflow transforma experimentação ad‑hoc em um sistema de registro auditável e padronizado.


Configuração simples do MLflow

Backend Store

SQLite (mlflow.db) – guarda metadados (experimentos, runs, parâmetros, métricas).

Artifact Store

File store (mlruns/) – guarda artefatos (modelos, plots, etc.).

Instalação

pip install mlflow

Inicialização do servidor

mlflow server \
    --backend-store-uri sqlite:///mlflow.db \
    --default-artifact-root ./mlruns \
    --host 0.0.0.0 \
    --port 5000

Explicação dos parâmetros

ParâmetroDescrição
mlflow serverInicia o serviço do MLflow
--backend-store-uriSQLite é leve, ideal para a primeira iteração
--default-artifact-rootDiretório onde serão armazenados os artefatos
--host e --portEndereço onde o servidor ficará disponível (também usado pela UI)

Quando usamos SQLite + file store, dois componentes principais aparecem no diretório do MLflow:

  • mlflow.db – banco SQLite com metadados (experimentos, runs, parâmetros, métricas).
  • mlruns/ – pasta com os artefatos e o conteúdo das runs (modelos, plots, etc.).

Integração com Python

A biblioteca mlflow permite conectar ao servidor com pouco impacto no código. Basta definir a URI e usar mlflow.start_run().

import mlflow
import mlflow.sklearn
from sklearn.metrics import accuracy_score, recall_score

# Conecta ao tracking server
mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("Customer_Churn_Experiment")

with mlflow.start_run():
    # ----- Treinamento do modelo -----
    # model = ... (seu código de treinamento aqui)

    # Log de parâmetros
    mlflow.log_param("max_depth", 10)
    mlflow.log_param("n_estimators", 100)

    # Avaliação
    y_pred = model.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    rec = recall_score(y_test, y_pred)

    # Log de métricas
    mlflow.log_metric("accuracy", acc)
    mlflow.log_metric("recall", rec)

    # Log do artefato (modelo)
    mlflow.sklearn.log_model(model, "random_forest_model")

O que acontece na primeira execução?

  • O experimento Customer_Churn_Experiment é criado automaticamente.
  • Uma run é registrada.
  • Parâmetros, métricas e artefatos são enviados para o tracking server.

Visualizando os resultados

Na UI do MLflow você verá:

  • Params e Metrics rastreados
  • Lista de runs com seus respectivos artefatos

Exemplo de parâmetros e métricas que registrei:

ParâmetroValor
n_estimators100
max_depth10
MétricaValor
accuracy0.85
recall0.78

Isso permite comparar execuções diferentes sem depender de print no terminal.


Caso de uso: comparação de hiperparâmetros

Realizei uma segunda interação alterando max_depth e n_estimators. Embora esperasse melhora, ao inspecionar a UI percebi que a métrica de accuracy caiu.

Lições aprendidas

PilarO que o MLflow mostrou
RastreabilidadeProva empírica de que a mudança de hiperparâmetros gerou overfitting
Comparação TécnicaUI permite comparar visualmente as duas execuções
ReprodutibilidadeArtefato da versão anterior está registrado e pronto para deploy

Benefícios gerais

  • Divisor de águas: transforma a forma como gerenciamos a rastreabilidade no ciclo de vida de modelos.
  • Facilidade de inspeção: é possível consultar o SQLite diretamente pela linha de comando.
  • Base para MLOps avançado: o tracking é apenas o primeiro passo; em seguida vêm o Model Registry e o Model Serving.

Dominar o rastreamento de experimentos é o alicerce para implementar Continuous Training (CT) no futuro.


Repositório

O código completo deste projeto está disponível no meu GitHub:
mlops‑tel (substitua SEU_USUARIO pelo seu nome de usuário).


co-churn-predict

E você: já utiliza o MLflow no seu dia a dia? Na sua visão, qual é o maior desafio para garantir a reprodutibilidade total dos modelos?

Vamos debater nos comentários!

0 views
Back to Blog

Related posts

Read more »